@@ -16,9 +16,39 @@ automation and interaction capabilities for developers and tools.
16
16
17
17
1 . To run the server in a container, you will need to have [ Docker] ( https://www.docker.com/ ) installed.
18
18
2 . [ Create a GitHub Personal Access Token] ( https://github.com/settings/personal-access-tokens/new ) .
19
- The MCP server can use many of the GitHub APIs, so enable the permissions that you feel comfortable granting your AI tools (to learn more about access tokens, please check out the [ documentation] ( https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens ) ).
20
-
21
-
19
+ The MCP server requires specific permissions for different tools. Here are the required permissions for each tool:
20
+
21
+ ### User Tools
22
+ - ** get_me** - Get details of the authenticated user
23
+ - Required permissions: ` read:user `
24
+
25
+ ### Issues Tools
26
+ - ** get_issue** , ** get_issue_comments** , ** list_issues** - Read issue data
27
+ - Required permissions: ` repo ` (for private repos) or no permissions (for public repos)
28
+
29
+ - ** create_issue** , ** add_issue_comment** , ** update_issue** - Create/modify issues
30
+ - Required permissions: ` repo ` (for private repos) or ` public_repo ` (for public repos)
31
+
32
+ ### Pull Request Tools
33
+ - ** get_pull_request** , ** list_pull_requests** , ** get_pull_request_files** , ** get_pull_request_status** , ** get_pull_request_comments** , ** get_pull_request_reviews** - Read PR data
34
+ - Required permissions: ` repo ` (for private repos) or no permissions (for public repos)
35
+
36
+ - ** merge_pull_request** , ** update_pull_request_branch** , ** create_pull_request_review** , ** create_pull_request** - Create/modify PRs
37
+ - Required permissions: ` repo ` (for private repos) or ` public_repo ` (for public repos)
38
+
39
+ ### Repository Tools
40
+ - ** search_repositories** - Search repositories
41
+ - Required permissions: No permissions required for public repos, ` repo ` for private repos
42
+
43
+ - ** get_file_contents** , ** list_commits** , ** list_branches** - Read repository data
44
+ - Required permissions: ` repo ` (for private repos) or no permissions (for public repos)
45
+
46
+ - ** create_or_update_file** , ** push_files** , ** create_repository** - Create/modify repository content
47
+ - Required permissions: ` repo ` (for private repos) or ` public_repo ` (for public repos)
48
+
49
+ ### Search Tools
50
+ - ** search_issues** - Search issues and pull requests
51
+ - Required permissions: No permissions required for public data, ` repo ` for private data
22
52
23
53
## Installation
24
54
@@ -144,23 +174,24 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
144
174
145
175
- ** get_me** - Get details of the authenticated user
146
176
- No parameters required
177
+ - Required permissions: ` read:user `
147
178
148
179
### Issues
149
180
150
181
- ** get_issue** - Gets the contents of an issue within a repository
151
-
182
+ - Required permissions: ` repo ` (private repos) or none (public repos)
152
183
- ` owner ` : Repository owner (string, required)
153
184
- ` repo ` : Repository name (string, required)
154
185
- ` issue_number ` : Issue number (number, required)
155
186
156
187
- ** get_issue_comments** - Get comments for a GitHub issue
157
-
188
+ - Required permissions: ` repo ` (private repos) or none (public repos)
158
189
- ` owner ` : Repository owner (string, required)
159
190
- ` repo ` : Repository name (string, required)
160
191
- ` issue_number ` : Issue number (number, required)
161
192
162
193
- ** create_issue** - Create a new issue in a GitHub repository
163
-
194
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
164
195
- ` owner ` : Repository owner (string, required)
165
196
- ` repo ` : Repository name (string, required)
166
197
- ` title ` : Issue title (string, required)
@@ -169,14 +200,14 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
169
200
- ` labels ` : Labels to apply to this issue (string[ ] , optional)
170
201
171
202
- ** add_issue_comment** - Add a comment to an issue
172
-
203
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
173
204
- ` owner ` : Repository owner (string, required)
174
205
- ` repo ` : Repository name (string, required)
175
206
- ` issue_number ` : Issue number (number, required)
176
207
- ` body ` : Comment text (string, required)
177
208
178
209
- ** list_issues** - List and filter repository issues
179
-
210
+ - Required permissions: ` repo ` (private repos) or none (public repos)
180
211
- ` owner ` : Repository owner (string, required)
181
212
- ` repo ` : Repository name (string, required)
182
213
- ` state ` : Filter by state ('open', 'closed', 'all') (string, optional)
@@ -188,7 +219,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
188
219
- ` perPage ` : Results per page (number, optional)
189
220
190
221
- ** update_issue** - Update an existing issue in a GitHub repository
191
-
222
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
192
223
- ` owner ` : Repository owner (string, required)
193
224
- ` repo ` : Repository name (string, required)
194
225
- ` issue_number ` : Issue number to update (number, required)
@@ -209,23 +240,25 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
209
240
### Pull Requests
210
241
211
242
- ** get_pull_request** - Get details of a specific pull request
212
-
243
+ - Required permissions: ` repo ` (private repos) or none (public repos)
213
244
- ` owner ` : Repository owner (string, required)
214
245
- ` repo ` : Repository name (string, required)
215
246
- ` pullNumber ` : Pull request number (number, required)
216
247
217
248
- ** list_pull_requests** - List and filter repository pull requests
218
-
249
+ - Required permissions: ` repo ` (private repos) or none (public repos)
219
250
- ` owner ` : Repository owner (string, required)
220
251
- ` repo ` : Repository name (string, required)
221
- - ` state ` : PR state (string, optional)
222
- - ` sort ` : Sort field (string, optional)
223
- - ` direction ` : Sort direction (string, optional)
252
+ - ` state ` : Filter by state ('open', 'closed', 'all') (string, optional)
253
+ - ` head ` : Filter by head user/org and branch (string, optional)
254
+ - ` base ` : Filter by base branch (string, optional)
255
+ - ` sort ` : Sort by ('created', 'updated', 'popularity', 'long-running') (string, optional)
256
+ - ` direction ` : Sort direction ('asc', 'desc') (string, optional)
224
257
- ` perPage ` : Results per page (number, optional)
225
258
- ` page ` : Page number (number, optional)
226
259
227
260
- ** merge_pull_request** - Merge a pull request
228
-
261
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
229
262
- ` owner ` : Repository owner (string, required)
230
263
- ` repo ` : Repository name (string, required)
231
264
- ` pullNumber ` : Pull request number (number, required)
@@ -234,7 +267,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
234
267
- ` merge_method ` : Merge method (string, optional)
235
268
236
269
- ** get_pull_request_files** - Get the list of files changed in a pull request
237
-
270
+ - Required permissions: ` repo ` (private repos) or none (public repos)
238
271
- ` owner ` : Repository owner (string, required)
239
272
- ` repo ` : Repository name (string, required)
240
273
- ` pullNumber ` : Pull request number (number, required)
@@ -287,10 +320,10 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
287
320
- ` draft ` : Create as draft PR (boolean, optional)
288
321
- ` maintainer_can_modify ` : Allow maintainer edits (boolean, optional)
289
322
290
- ### Repositories
323
+ ### Repository
291
324
292
325
- ** create_or_update_file** - Create or update a single file in a repository
293
-
326
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
294
327
- ` owner ` : Repository owner (string, required)
295
328
- ` repo ` : Repository name (string, required)
296
329
- ` path ` : File path (string, required)
@@ -300,34 +333,34 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
300
333
- ` sha ` : File SHA if updating (string, optional)
301
334
302
335
- ** push_files** - Push multiple files in a single commit
303
-
336
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
304
337
- ` owner ` : Repository owner (string, required)
305
338
- ` repo ` : Repository name (string, required)
306
339
- ` branch ` : Branch to push to (string, required)
307
340
- ` files ` : Files to push, each with path and content (array, required)
308
341
- ` message ` : Commit message (string, required)
309
342
310
343
- ** search_repositories** - Search for GitHub repositories
311
-
344
+ - Required permissions: No permissions required for public repos, ` repo ` for private repos
312
345
- ` query ` : Search query (string, required)
313
346
- ` sort ` : Sort field (string, optional)
314
347
- ` order ` : Sort order (string, optional)
315
348
- ` page ` : Page number (number, optional)
316
349
- ` perPage ` : Results per page (number, optional)
317
350
318
351
- ** create_repository** - Create a new GitHub repository
319
-
352
+ - Required permissions: ` repo ` (private repos) or ` public_repo ` (public repos)
320
353
- ` name ` : Repository name (string, required)
321
354
- ` description ` : Repository description (string, optional)
322
355
- ` private ` : Whether the repository is private (boolean, optional)
323
356
- ` autoInit ` : Auto-initialize with README (boolean, optional)
324
357
325
358
- ** get_file_contents** - Get contents of a file or directory
326
-
359
+ - Required permissions: ` repo ` (private repos) or none (public repos)
327
360
- ` owner ` : Repository owner (string, required)
328
361
- ` repo ` : Repository name (string, required)
329
362
- ` path ` : File path (string, required)
330
- - ` ref ` : Git reference (string, optional)
363
+ - ` ref ` : Git reference (branch, tag, commit) ( string, optional)
331
364
332
365
- ** fork_repository** - Fork a repository
333
366
0 commit comments