issue-scribe-mcp 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 gay00ung
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,16 +1,59 @@
1
1
  # issue-scribe-mcp
2
2
 
3
- GitHub Issue/PR 컨텍스트를 수집하는 MCP 서버
3
+ [![한국어](https://img.shields.io/badge/lang-한국어-blue.svg)](README.md)
4
+ [![English](https://img.shields.io/badge/lang-English-red.svg)](README_EN.md)
4
5
 
5
- ## 설치
6
+ ![npm version](https://img.shields.io/npm/v/issue-scribe-mcp.svg)
7
+ ![License](https://img.shields.io/badge/license-MIT-green.svg)
8
+ ![GitHub stars](https://img.shields.io/github/stars/gay00ung/issue-scribe-mcp.svg)
9
+
10
+ > GitHub Issue와 Pull Request의 전체 컨텍스트를 수집하고 관리하는 MCP(Model Context Protocol) 서버입니다. Claude Desktop과 같은 AI 어시스턴트에서 GitHub 저장소의 Issue와 PR을 손쉽게 조회하고 생성할 수 있습니다.
11
+
12
+ ## ✨ 주요 기능
13
+
14
+ - 🔍 **컨텍스트 조회**: Issue와 PR의 상세 정보, 댓글, 커밋 내역 등 전체 컨텍스트 수집
15
+ - 📝 **Issue 관리**: 새로운 Issue 생성 및 기존 Issue 업데이트
16
+ - 🔀 **PR 생성**: Pull Request 자동 생성 및 Draft PR 지원
17
+ - 🤖 **AI 통합**: Claude Desktop 등 MCP를 지원하는 AI 도구와 완벽 통합
18
+ - 🔐 **간편 인증**: GitHub Personal Access Token을 통한 안전한 API 접근
19
+
20
+ ## 📋 사전 준비
21
+
22
+ ### GitHub Personal Access Token 발급
23
+
24
+ 1. GitHub에서 [Personal Access Token 생성 페이지](https://github.com/settings/tokens/new)로 이동
25
+ 2. Token 설정:
26
+ - **Note**: `issue-scribe-mcp` (또는 원하는 이름)
27
+ - **Expiration**: 원하는 만료 기간 선택
28
+ - **Select scopes**: 다음 권한 체크
29
+ - ✅ `repo` (전체 저장소 접근)
30
+ - ✅ `read:org` (조직 정보 읽기, 선택사항)
31
+ 3. `Generate token` 클릭
32
+ 4. **생성된 토큰을 안전하게 복사** (다시 볼 수 없습니다!)
33
+
34
+ ### 환경 변수 설정
35
+
36
+ 프로젝트 루트에 `.env` 파일 생성:
37
+
38
+ ```bash
39
+ GITHUB_TOKEN=your_github_personal_access_token_here
40
+ ```
41
+
42
+ ## 🚀 설치
43
+
44
+ ### NPM을 통한 전역 설치
6
45
 
7
46
  ```bash
8
47
  npm install -g issue-scribe-mcp
9
48
  ```
10
49
 
11
- ## 로컬 개발
50
+ ### 로컬 개발
12
51
 
13
52
  ```bash
53
+ # 저장소 클론
54
+ git clone https://github.com/gay00ung/issue-scribe-mcp.git
55
+ cd issue-scribe-mcp
56
+
14
57
  # 의존성 설치
15
58
  npm install
16
59
 
@@ -18,15 +61,37 @@ npm install
18
61
  npm run build
19
62
 
20
63
  # 환경변수 설정
21
- export GITHUB_TOKEN=your_github_token_here
64
+ cp .env.example .env
65
+ # .env 파일에 GitHub Token 입력
22
66
 
23
67
  # 직접 실행
24
68
  node dist/index.js
25
69
  ```
26
70
 
27
- ## MCP 클라이언트 설정
71
+ ### MCP Inspector로 테스트
72
+
73
+ 로컬에서 MCP 서버를 테스트할 수 있는 간편한 스크립트를 제공합니다:
74
+
75
+ ```bash
76
+ ./test-local.sh
77
+ ```
78
+
79
+ 이 스크립트가 자동으로:
80
+ - ✅ `.env` 파일 로드
81
+ - ✅ `GITHUB_TOKEN` 확인
82
+ - ✅ 빌드 상태 확인
83
+ - ✅ **MCP Inspector 실행** (브라우저 자동 열림)
84
+
85
+ MCP Inspector에서 GUI로 모든 Tool을 테스트하고 API 응답을 확인할 수 있습니다!
86
+
87
+ ## ⚙️ MCP 클라이언트 설정
88
+
89
+ ### Claude Desktop 설정
28
90
 
29
- Claude Desktop 등의 MCP 클라이언트에서 사용:
91
+ Claude Desktop 설정 파일(`claude_desktop_config.json`)에 다음 내용 추가:
92
+
93
+ **Mac**: `~/Library/Application Support/Claude/claude_desktop_config.json`
94
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
30
95
 
31
96
  ```json
32
97
  {
@@ -42,56 +107,189 @@ Claude Desktop 등의 MCP 클라이언트에서 사용:
42
107
  }
43
108
  ```
44
109
 
45
- ## 제공 Tools
110
+ 설정 Claude Desktop을 재시작하세요.
111
+
112
+ ## 🛠️ 제공 Tools
46
113
 
47
114
  ### github_get_issue_context
48
- GitHub Issue의 전체 컨텍스트 조회
115
+ GitHub Issue의 전체 컨텍스트를 조회합니다.
49
116
 
50
- - owner: 저장소 소유자
51
- - repo: 저장소 이름
52
- - issue_number: 이슈 번호
117
+ **파라미터:**
118
+ - `owner` (string, 필수): 저장소 소유자
119
+ - `repo` (string, 필수): 저장소 이름
120
+ - `issue_number` (number, 필수): 이슈 번호
121
+
122
+ **반환 정보:**
123
+ - Issue 제목, 본문, 상태
124
+ - 작성자 및 담당자 정보
125
+ - 라벨, 마일스톤
126
+ - 모든 댓글 및 반응
53
127
 
54
128
  ### github_get_pr_context
55
- GitHub Pull Request의 전체 컨텍스트 조회 (커밋 포함)
129
+ GitHub Pull Request의 전체 컨텍스트를 조회합니다 (커밋 포함).
130
+
131
+ **파라미터:**
132
+ - `owner` (string, 필수): 저장소 소유자
133
+ - `repo` (string, 필수): 저장소 이름
134
+ - `pull_number` (number, 필수): PR 번호
56
135
 
57
- - owner: 저장소 소유자
58
- - repo: 저장소 이름
59
- - pull_number: PR 번호
136
+ **반환 정보:**
137
+ - PR 제목, 본문, 상태
138
+ - 소스/타겟 브랜치
139
+ - 커밋 목록 및 변경 파일
140
+ - 리뷰 댓글 및 승인 상태
60
141
 
61
142
  ### github_create_issue
62
- 새로운 GitHub Issue 생성
143
+ 새로운 GitHub Issue 생성합니다.
63
144
 
64
- - owner: 저장소 소유자
65
- - repo: 저장소 이름
66
- - title: 이슈 제목 (필수)
67
- - body: 이슈 본문 (옵션)
68
- - labels: 라벨 배열 (옵션)
69
- - assignees: 담당자 배열 (옵션)
145
+ **파라미터:**
146
+ - `owner` (string, 필수): 저장소 소유자
147
+ - `repo` (string, 필수): 저장소 이름
148
+ - `title` (string, 필수): 이슈 제목
149
+ - `body` (string, 옵션): 이슈 본문
150
+ - `labels` (string[], 옵션): 라벨 배열
151
+ - `assignees` (string[], 옵션): 담당자 배열
70
152
 
71
153
  ### github_update_issue
72
- 기존 GitHub Issue 수정
154
+ 기존 GitHub Issue 수정합니다.
73
155
 
74
- - owner: 저장소 소유자
75
- - repo: 저장소 이름
76
- - issue_number: 이슈 번호
77
- - title: 제목 (옵션)
78
- - body: 새 본문 (옵션)
79
- - state: "open" 또는 "closed" (옵션)
80
- - labels: 라벨 배열 (옵션)
81
- - assignees: 새 담당자 배열 (옵션)
156
+ **파라미터:**
157
+ - `owner` (string, 필수): 저장소 소유자
158
+ - `repo` (string, 필수): 저장소 이름
159
+ - `issue_number` (number, 필수): 이슈 번호
160
+ - `title` (string, 옵션): 새 제목
161
+ - `body` (string, 옵션): 본문
162
+ - `state` (string, 옵션): `"open"` 또는 `"closed"`
163
+ - `labels` (string[], 옵션): 새 라벨 배열
164
+ - `assignees` (string[], 옵션): 새 담당자 배열
82
165
 
83
166
  ### github_create_pr
84
- 새로운 GitHub Pull Request 생성
167
+ 새로운 GitHub Pull Request 생성합니다.
168
+
169
+ **파라미터:**
170
+ - `owner` (string, 필수): 저장소 소유자
171
+ - `repo` (string, 필수): 저장소 이름
172
+ - `title` (string, 필수): PR 제목
173
+ - `body` (string, 옵션): PR 설명
174
+ - `head` (string, 필수): 병합할 브랜치 (예: `"feature-branch"`)
175
+ - `base` (string, 필수): 병합 대상 브랜치 (예: `"main"`)
176
+ - `draft` (boolean, 옵션): Draft PR로 생성 여부
177
+ - `maintainer_can_modify` (boolean, 옵션): 메인테이너 수정 허용 여부
178
+
179
+ ### github_add_comment
180
+ GitHub Issue 또는 Pull Request에 댓글을 추가합니다.
181
+
182
+ **파라미터:**
183
+ - `owner` (string, 필수): 저장소 소유자
184
+ - `repo` (string, 필수): 저장소 이름
185
+ - `issue_number` (number, 필수): Issue 또는 PR 번호
186
+ - `body` (string, 필수): 댓글 내용
187
+
188
+ **반환 정보:**
189
+ - 댓글 ID, 내용, 작성자
190
+ - 댓글 URL 및 생성 시간
191
+
192
+ ### github_update_comment
193
+ 기존 댓글을 수정합니다.
194
+
195
+ **파라미터:**
196
+ - `owner` (string, 필수): 저장소 소유자
197
+ - `repo` (string, 필수): 저장소 이름
198
+ - `comment_id` (number, 필수): 수정할 댓글 ID
199
+ - `body` (string, 필수): 새로운 댓글 내용
200
+
201
+ ### github_delete_comment
202
+ 댓글을 삭제합니다.
203
+
204
+ **파라미터:**
205
+ - `owner` (string, 필수): 저장소 소유자
206
+ - `repo` (string, 필수): 저장소 이름
207
+ - `comment_id` (number, 필수): 삭제할 댓글 ID
208
+
209
+ ### github_add_reaction
210
+ 댓글 또는 Issue/PR에 이모지 반응을 추가합니다.
211
+
212
+ **파라미터:**
213
+ - `owner` (string, 필수): 저장소 소유자
214
+ - `repo` (string, 필수): 저장소 이름
215
+ - `comment_id` (number, 옵션): 반응을 추가할 댓글 ID
216
+ - `issue_number` (number, 옵션): 반응을 추가할 Issue/PR 번호
217
+ - `reaction` (string, 필수): 반응 종류
218
+ - `thumbs_up` 👍, `thumbs_down` 👎, `laugh` 😄, `confused` 😕, `heart` ❤️, `hooray` 🎉, `rocket` 🚀, `eyes` 👀
219
+
220
+ **참고**: `comment_id` 또는 `issue_number` 중 하나를 반드시 제공해야 합니다.
221
+
222
+ ## 💡 사용 예시
223
+
224
+ ### Claude Desktop에서 사용하기
225
+
226
+ 설정이 완료되면 Claude Desktop에서 다음과 같이 사용할 수 있습니다:
227
+
228
+ ```
229
+ "gay00ung/issue-scribe-mcp 저장소의 5번 Issue를 확인해줘"
230
+
231
+ "issue-scribe-mcp에 새로운 Issue를 만들어줘.
232
+ 제목은 'README 개선' 이고 본문은 'Features 섹션 추가 필요'"
233
+
234
+ "PR #3의 커밋 내역을 보여줘"
235
+ ```
236
+
237
+ Claude가 자동으로 적절한 MCP Tool을 호출하여 정보를 가져옵니다!
238
+
239
+ ## 🔧 문제 해결
240
+
241
+ ### "GITHUB_TOKEN is not set" 오류
242
+
243
+ **원인**: GitHub Personal Access Token이 환경 변수로 설정되지 않았습니다.
244
+
245
+ **해결**:
246
+ 1. `.env` 파일이 프로젝트 루트에 있는지 확인
247
+ 2. `.env` 파일에 `GITHUB_TOKEN=your_token` 형식으로 작성되어 있는지 확인
248
+ 3. Token이 유효한지 [GitHub Settings](https://github.com/settings/tokens)에서 확인
249
+
250
+ ### "Bad credentials" 오류
251
+
252
+ **원인**: GitHub Token이 만료되었거나 잘못되었습니다.
253
+
254
+ **해결**:
255
+ 1. GitHub에서 새 Personal Access Token 발급
256
+ 2. `.env` 파일의 토큰을 업데이트
257
+ 3. 필요한 권한(`repo` scope)이 부여되었는지 확인
258
+
259
+ ### MCP 서버가 Claude Desktop에서 인식되지 않음
260
+
261
+ **원인**: 설정 파일 경로가 잘못되었거나 JSON 형식 오류가 있습니다.
262
+
263
+ **해결**:
264
+ 1. `claude_desktop_config.json` 파일 위치 확인
265
+ 2. JSON 형식이 올바른지 검증 ([JSONLint](https://jsonlint.com/) 사용)
266
+ 3. 파일 경로가 절대 경로로 정확히 입력되었는지 확인
267
+ 4. Claude Desktop 재시작
268
+
269
+ ### "Cannot find module" 오류
270
+
271
+ **원인**: 의존성이 설치되지 않았거나 빌드가 되지 않았습니다.
272
+
273
+ **해결**:
274
+ ```bash
275
+ npm install
276
+ npm run build
277
+ ```
278
+
279
+ ## 📝 라이선스
280
+
281
+ MIT License
282
+
283
+ ## 🤝 기여
284
+
285
+ 이슈 리포트와 Pull Request를 환영합니다!
85
286
 
86
- - owner: 저장소 소유자
87
- - repo: 저장소 이름
88
- - title: PR 제목 (필수)
89
- - body: PR 설명 (옵션)
90
- - head: 병합할 브랜치 (필수, 예: "feature-branch")
91
- - base: 병합 대상 브랜치 (필수, 예: "main")
92
- - draft: Draft PR로 생성 (옵션)
93
- - maintainer_can_modify: 메인테이너 수정 허용 (옵션)
287
+ 1. Fork the Project
288
+ 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
289
+ 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
290
+ 4. Push to the Branch (`git push origin feature/AmazingFeature`)
291
+ 5. Open a Pull Request
94
292
 
95
- ## 라이선스
293
+ ## 📮 문의
96
294
 
97
- ISC
295
+ 프로젝트 링크: [https://github.com/gay00ung/issue-scribe-mcp](https://github.com/gay00ung/issue-scribe-mcp)
package/README_EN.md ADDED
@@ -0,0 +1,297 @@
1
+ # issue-scribe-mcp
2
+
3
+ [![한국어](https://img.shields.io/badge/lang-한국어-blue.svg)](README.md)
4
+ [![English](https://img.shields.io/badge/lang-English-red.svg)](README_EN.md)
5
+
6
+ ![npm version](https://img.shields.io/npm/v/issue-scribe-mcp.svg)
7
+ ![License](https://img.shields.io/badge/license-MIT-green.svg)
8
+ ![GitHub stars](https://img.shields.io/github/stars/gay00ung/issue-scribe-mcp.svg)
9
+
10
+ > An MCP (Model Context Protocol) server for collecting and managing GitHub Issue and Pull Request contexts. Easily query and create Issues and PRs from AI assistants like Claude Desktop.
11
+
12
+ ## ✨ Features
13
+
14
+ - 🔍 **Context Retrieval**: Collect complete context including issue/PR details, comments, and commit history
15
+ - 📝 **Issue Management**: Create new issues and update existing ones
16
+ - 🔀 **PR Creation**: Automatically create Pull Requests with Draft PR support
17
+ - 🤖 **AI Integration**: Seamless integration with MCP-compatible AI tools like Claude Desktop
18
+ - 🔐 **Simple Authentication**: Secure API access via GitHub Personal Access Token
19
+
20
+ ## 📋 Prerequisites
21
+
22
+ ### GitHub Personal Access Token Setup
23
+
24
+ 1. Navigate to [GitHub Personal Access Token creation page](https://github.com/settings/tokens/new)
25
+ 2. Configure token settings:
26
+ - **Note**: `issue-scribe-mcp` (or your preferred name)
27
+ - **Expiration**: Select desired expiration period
28
+ - **Select scopes**: Check the following permissions
29
+ - ✅ `repo` (Full repository access)
30
+ - ✅ `read:org` (Read organization info, optional)
31
+ 3. Click `Generate token`
32
+ 4. **Safely copy the generated token** (you won't be able to see it again!)
33
+
34
+ ### Environment Variable Setup
35
+
36
+ Create a `.env` file in the project root:
37
+
38
+ ```bash
39
+ GITHUB_TOKEN=your_github_personal_access_token_here
40
+ ```
41
+
42
+ ## 🚀 Installation
43
+
44
+ ### Global Installation via NPM
45
+
46
+ ```bash
47
+ npm install -g issue-scribe-mcp
48
+ ```
49
+
50
+ ### Local Development
51
+
52
+ ```bash
53
+ # Clone repository
54
+ git clone https://github.com/gay00ung/issue-scribe-mcp.git
55
+ cd issue-scribe-mcp
56
+
57
+ # Install dependencies
58
+ npm install
59
+
60
+ # Build
61
+ npm run build
62
+
63
+ # Set up environment variables
64
+ cp .env.example .env
65
+ # Add your GitHub Token to .env file
66
+
67
+ # Run directly
68
+ node dist/index.js
69
+ ```
70
+
71
+ ### Test with MCP Inspector
72
+
73
+ We provide a convenient script to test the MCP server locally:
74
+
75
+ ```bash
76
+ ./test-local.sh
77
+ ```
78
+
79
+ This script automatically:
80
+ - ✅ Loads `.env` file
81
+ - ✅ Verifies `GITHUB_TOKEN`
82
+ - ✅ Checks build status
83
+ - ✅ **Launches MCP Inspector** (opens browser automatically)
84
+
85
+ You can test all Tools with a GUI and inspect API responses in MCP Inspector!
86
+
87
+ ## ⚙️ MCP Client Configuration
88
+
89
+ ### Claude Desktop Setup
90
+
91
+ Add the following to Claude Desktop's configuration file (`claude_desktop_config.json`):
92
+
93
+ **Mac**: `~/Library/Application Support/Claude/claude_desktop_config.json`
94
+ **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
95
+
96
+ ```json
97
+ {
98
+ "mcpServers": {
99
+ "issue-scribe": {
100
+ "command": "node",
101
+ "args": ["/path/to/issue-scribe-mcp/dist/index.js"],
102
+ "env": {
103
+ "GITHUB_TOKEN": "your_github_token_here"
104
+ }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ Restart Claude Desktop after configuration.
111
+
112
+ ## 🛠️ Available Tools
113
+
114
+ ### github_get_issue_context
115
+ Retrieve full context of a GitHub Issue.
116
+
117
+ **Parameters:**
118
+ - `owner` (string, required): Repository owner
119
+ - `repo` (string, required): Repository name
120
+ - `issue_number` (number, required): Issue number
121
+
122
+ **Returns:**
123
+ - Issue title, body, state
124
+ - Author and assignee information
125
+ - Labels, milestones
126
+ - All comments and reactions
127
+
128
+ ### github_get_pr_context
129
+ Retrieve full context of a GitHub Pull Request (including commits).
130
+
131
+ **Parameters:**
132
+ - `owner` (string, required): Repository owner
133
+ - `repo` (string, required): Repository name
134
+ - `pull_number` (number, required): PR number
135
+
136
+ **Returns:**
137
+ - PR title, body, state
138
+ - Source/target branches
139
+ - Commit list and changed files
140
+ - Review comments and approval status
141
+
142
+ ### github_create_issue
143
+ Create a new GitHub Issue.
144
+
145
+ **Parameters:**
146
+ - `owner` (string, required): Repository owner
147
+ - `repo` (string, required): Repository name
148
+ - `title` (string, required): Issue title
149
+ - `body` (string, optional): Issue body
150
+ - `labels` (string[], optional): Array of labels
151
+ - `assignees` (string[], optional): Array of assignees
152
+
153
+ ### github_update_issue
154
+ Update an existing GitHub Issue.
155
+
156
+ **Parameters:**
157
+ - `owner` (string, required): Repository owner
158
+ - `repo` (string, required): Repository name
159
+ - `issue_number` (number, required): Issue number
160
+ - `title` (string, optional): New title
161
+ - `body` (string, optional): New body
162
+ - `state` (string, optional): `"open"` or `"closed"`
163
+ - `labels` (string[], optional): New labels array
164
+ - `assignees` (string[], optional): New assignees array
165
+
166
+ ### github_create_pr
167
+ Create a new GitHub Pull Request.
168
+
169
+ **Parameters:**
170
+ - `owner` (string, required): Repository owner
171
+ - `repo` (string, required): Repository name
172
+ - `title` (string, required): PR title
173
+ - `body` (string, optional): PR description
174
+ - `head` (string, required): Branch to merge from (e.g., `"feature-branch"`)
175
+ - `base` (string, required): Branch to merge into (e.g., `"main"`)
176
+ - `draft` (boolean, optional): Create as draft PR
177
+ - `maintainer_can_modify` (boolean, optional): Allow maintainer modifications
178
+
179
+ ---
180
+
181
+ ### github_add_comment
182
+ Add a comment to a GitHub Issue or Pull Request.
183
+
184
+ **Parameters:**
185
+ - `owner` (string, required): Repository owner
186
+ - `repo` (string, required): Repository name
187
+ - `issue_number` (number, required): Issue or PR number
188
+ - `body` (string, required): Comment body text
189
+
190
+ **Returns:**
191
+ - Comment ID, body, author
192
+ - Comment URL and creation time
193
+
194
+ ### github_update_comment
195
+ Update an existing comment.
196
+
197
+ **Parameters:**
198
+ - `owner` (string, required): Repository owner
199
+ - `repo` (string, required): Repository name
200
+ - `comment_id` (number, required): Comment ID to update
201
+ - `body` (string, required): New comment body text
202
+
203
+ ### github_delete_comment
204
+ Delete a comment.
205
+
206
+ **Parameters:**
207
+ - `owner` (string, required): Repository owner
208
+ - `repo` (string, required): Repository name
209
+ - `comment_id` (number, required): Comment ID to delete
210
+
211
+ ### github_add_reaction
212
+ Add an emoji reaction to a comment or directly to an issue/PR.
213
+
214
+ **Parameters:**
215
+ - `owner` (string, required): Repository owner
216
+ - `repo` (string, required): Repository name
217
+ - `comment_id` (number, optional): Comment ID to react to
218
+ - `issue_number` (number, optional): Issue/PR number to react to
219
+ - `reaction` (string, required): Reaction type
220
+ - `thumbs_up` 👍, `thumbs_down` 👎, `laugh` 😄, `confused` 😕, `heart` ❤️, `hooray` 🎉, `rocket` 🚀, `eyes` 👀
221
+
222
+ **Note**: Either `comment_id` OR `issue_number` must be provided.
223
+
224
+ ## 💡 Usage Examples
225
+
226
+ ### Using with Claude Desktop
227
+
228
+ Once configured, you can use it in Claude Desktop like this:
229
+
230
+ ```
231
+ "Check issue #5 in the gay00ung/issue-scribe-mcp repository"
232
+
233
+ "Create a new issue in issue-scribe-mcp.
234
+ Title is 'Improve README' and body is 'Need to add Features section'"
235
+
236
+ "Show me the commit history of PR #3"
237
+ ```
238
+
239
+ Claude will automatically call the appropriate MCP tools to fetch the information!
240
+
241
+ ## 🔧 Troubleshooting
242
+
243
+ ### "GITHUB_TOKEN is not set" Error
244
+
245
+ **Cause**: GitHub Personal Access Token is not set as an environment variable.
246
+
247
+ **Solution**:
248
+ 1. Check if `.env` file exists in project root
249
+ 2. Verify `.env` file is formatted as `GITHUB_TOKEN=your_token`
250
+ 3. Confirm token is valid in [GitHub Settings](https://github.com/settings/tokens)
251
+
252
+ ### "Bad credentials" Error
253
+
254
+ **Cause**: GitHub Token is expired or invalid.
255
+
256
+ **Solution**:
257
+ 1. Generate a new Personal Access Token from GitHub
258
+ 2. Update the token in `.env` file
259
+ 3. Verify required permissions (`repo` scope) are granted
260
+
261
+ ### MCP Server Not Recognized in Claude Desktop
262
+
263
+ **Cause**: Configuration file path is incorrect or JSON format error.
264
+
265
+ **Solution**:
266
+ 1. Verify `claude_desktop_config.json` file location
267
+ 2. Validate JSON format using [JSONLint](https://jsonlint.com/)
268
+ 3. Ensure file paths are absolute and correct
269
+ 4. Restart Claude Desktop
270
+
271
+ ### "Cannot find module" Error
272
+
273
+ **Cause**: Dependencies are not installed or build has not been run.
274
+
275
+ **Solution**:
276
+ ```bash
277
+ npm install
278
+ npm run build
279
+ ```
280
+
281
+ ## 📝 License
282
+
283
+ MIT License
284
+
285
+ ## 🤝 Contributing
286
+
287
+ Issue reports and Pull Requests are welcome!
288
+
289
+ 1. Fork the Project
290
+ 2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
291
+ 3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
292
+ 4. Push to the Branch (`git push origin feature/AmazingFeature`)
293
+ 5. Open a Pull Request
294
+
295
+ ## 📮 Contact
296
+
297
+ Project Link: [https://github.com/gay00ung/issue-scribe-mcp](https://github.com/gay00ung/issue-scribe-mcp)