Skip to content

Commit 0ef1113

Browse files
committed
docs: Clearly specify required GitHub token permissions per action (#128)
1 parent 2bfcb8f commit 0ef1113

File tree

1 file changed

+56
-23
lines changed

1 file changed

+56
-23
lines changed

README.md

Lines changed: 56 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,39 @@ automation and interaction capabilities for developers and tools.
1616

1717
1. To run the server in a container, you will need to have [Docker](https://www.docker.com/) installed.
1818
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
2252

2353
## Installation
2454

@@ -144,23 +174,24 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
144174

145175
- **get_me** - Get details of the authenticated user
146176
- No parameters required
177+
- Required permissions: `read:user`
147178

148179
### Issues
149180

150181
- **get_issue** - Gets the contents of an issue within a repository
151-
182+
- Required permissions: `repo` (private repos) or none (public repos)
152183
- `owner`: Repository owner (string, required)
153184
- `repo`: Repository name (string, required)
154185
- `issue_number`: Issue number (number, required)
155186

156187
- **get_issue_comments** - Get comments for a GitHub issue
157-
188+
- Required permissions: `repo` (private repos) or none (public repos)
158189
- `owner`: Repository owner (string, required)
159190
- `repo`: Repository name (string, required)
160191
- `issue_number`: Issue number (number, required)
161192

162193
- **create_issue** - Create a new issue in a GitHub repository
163-
194+
- Required permissions: `repo` (private repos) or `public_repo` (public repos)
164195
- `owner`: Repository owner (string, required)
165196
- `repo`: Repository name (string, required)
166197
- `title`: Issue title (string, required)
@@ -169,14 +200,14 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
169200
- `labels`: Labels to apply to this issue (string[], optional)
170201

171202
- **add_issue_comment** - Add a comment to an issue
172-
203+
- Required permissions: `repo` (private repos) or `public_repo` (public repos)
173204
- `owner`: Repository owner (string, required)
174205
- `repo`: Repository name (string, required)
175206
- `issue_number`: Issue number (number, required)
176207
- `body`: Comment text (string, required)
177208

178209
- **list_issues** - List and filter repository issues
179-
210+
- Required permissions: `repo` (private repos) or none (public repos)
180211
- `owner`: Repository owner (string, required)
181212
- `repo`: Repository name (string, required)
182213
- `state`: Filter by state ('open', 'closed', 'all') (string, optional)
@@ -188,7 +219,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
188219
- `perPage`: Results per page (number, optional)
189220

190221
- **update_issue** - Update an existing issue in a GitHub repository
191-
222+
- Required permissions: `repo` (private repos) or `public_repo` (public repos)
192223
- `owner`: Repository owner (string, required)
193224
- `repo`: Repository name (string, required)
194225
- `issue_number`: Issue number to update (number, required)
@@ -209,23 +240,25 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
209240
### Pull Requests
210241

211242
- **get_pull_request** - Get details of a specific pull request
212-
243+
- Required permissions: `repo` (private repos) or none (public repos)
213244
- `owner`: Repository owner (string, required)
214245
- `repo`: Repository name (string, required)
215246
- `pullNumber`: Pull request number (number, required)
216247

217248
- **list_pull_requests** - List and filter repository pull requests
218-
249+
- Required permissions: `repo` (private repos) or none (public repos)
219250
- `owner`: Repository owner (string, required)
220251
- `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)
224257
- `perPage`: Results per page (number, optional)
225258
- `page`: Page number (number, optional)
226259

227260
- **merge_pull_request** - Merge a pull request
228-
261+
- Required permissions: `repo` (private repos) or `public_repo` (public repos)
229262
- `owner`: Repository owner (string, required)
230263
- `repo`: Repository name (string, required)
231264
- `pullNumber`: Pull request number (number, required)
@@ -234,7 +267,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
234267
- `merge_method`: Merge method (string, optional)
235268

236269
- **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)
238271
- `owner`: Repository owner (string, required)
239272
- `repo`: Repository name (string, required)
240273
- `pullNumber`: Pull request number (number, required)
@@ -287,10 +320,10 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
287320
- `draft`: Create as draft PR (boolean, optional)
288321
- `maintainer_can_modify`: Allow maintainer edits (boolean, optional)
289322

290-
### Repositories
323+
### Repository
291324

292325
- **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)
294327
- `owner`: Repository owner (string, required)
295328
- `repo`: Repository name (string, required)
296329
- `path`: File path (string, required)
@@ -300,34 +333,34 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
300333
- `sha`: File SHA if updating (string, optional)
301334

302335
- **push_files** - Push multiple files in a single commit
303-
336+
- Required permissions: `repo` (private repos) or `public_repo` (public repos)
304337
- `owner`: Repository owner (string, required)
305338
- `repo`: Repository name (string, required)
306339
- `branch`: Branch to push to (string, required)
307340
- `files`: Files to push, each with path and content (array, required)
308341
- `message`: Commit message (string, required)
309342

310343
- **search_repositories** - Search for GitHub repositories
311-
344+
- Required permissions: No permissions required for public repos, `repo` for private repos
312345
- `query`: Search query (string, required)
313346
- `sort`: Sort field (string, optional)
314347
- `order`: Sort order (string, optional)
315348
- `page`: Page number (number, optional)
316349
- `perPage`: Results per page (number, optional)
317350

318351
- **create_repository** - Create a new GitHub repository
319-
352+
- Required permissions: `repo` (private repos) or `public_repo` (public repos)
320353
- `name`: Repository name (string, required)
321354
- `description`: Repository description (string, optional)
322355
- `private`: Whether the repository is private (boolean, optional)
323356
- `autoInit`: Auto-initialize with README (boolean, optional)
324357

325358
- **get_file_contents** - Get contents of a file or directory
326-
359+
- Required permissions: `repo` (private repos) or none (public repos)
327360
- `owner`: Repository owner (string, required)
328361
- `repo`: Repository name (string, required)
329362
- `path`: File path (string, required)
330-
- `ref`: Git reference (string, optional)
363+
- `ref`: Git reference (branch, tag, commit) (string, optional)
331364

332365
- **fork_repository** - Fork a repository
333366

0 commit comments

Comments
 (0)