You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -86,7 +86,17 @@ Alternatively, to manually configure VS Code, choose the appropriate JSON block
86
86
> **Note:** Each MCP host application needs to configure a GitHub App or OAuth App to support remote access via OAuth. Any host application that supports remote MCP servers should support the remote GitHub server with PAT authentication. Configuration details and support levels vary by host. Make sure to refer to the host application's documentation for more info.
87
87
88
88
### Configuration
89
-
See [Remote Server Documentation](/docs/remote-server.md) on how to pass additional configuration settings to the remote GitHub MCP Server.
89
+
90
+
#### Default toolset configuration
91
+
92
+
The default configuration is:
93
+
- context
94
+
- repos
95
+
- issues
96
+
- pull_requests
97
+
- users
98
+
99
+
See [Remote Server Documentation](docs/remote-server.md) for full details on remote server configuration, toolsets, headers, and advanced usage. This file provides comprehensive instructions and examples for connecting, customizing, and installing the remote GitHub MCP Server in VS Code and other MCP hosts.
90
100
91
101
---
92
102
@@ -271,6 +281,50 @@ The GitHub MCP Server supports enabling or disabling specific groups of function
271
281
272
282
_Toolsets are not limited to Tools. Relevant MCP Resources and Prompts are also included where applicable._
273
283
284
+
The Local GitHub MCP Server follows the same [default toolset configuration](#default-toolset-configuration) as the remote version.
285
+
286
+
#### Specifying Toolsets
287
+
288
+
To specify toolsets you want available to the LLM, you can pass an allow-list in two ways:
The special toolset `all` can be provided to enable all available toolsets regardless of any other configuration:
317
+
318
+
```bash
319
+
./github-mcp-server --toolsets all
320
+
```
321
+
322
+
Or using the environment variable:
323
+
324
+
```bash
325
+
GITHUB_TOOLSETS="all" ./github-mcp-server
326
+
```
327
+
274
328
### Available Toolsets
275
329
276
330
The following sets of tools are available (all are on by default):
@@ -286,19 +340,20 @@ The following sets of tools are available (all are on by default):
286
340
|`experiments`| Experimental features that are not considered stable yet |
287
341
|`gists`| GitHub Gist related tools |
288
342
|`issues`| GitHub Issues related tools |
343
+
|`labels`| GitHub Labels related tools |
289
344
|`notifications`| GitHub Notifications related tools |
290
345
|`orgs`| GitHub Organization related tools |
291
346
|`projects`| GitHub Projects related tools |
292
347
|`pull_requests`| GitHub Pull Request related tools |
293
348
|`repos`| GitHub Repository related tools |
294
349
|`secret_protection`| Secret protection related tools, such as GitHub Secret Scanning |
295
350
|`security_advisories`| Security advisories related tools |
351
+
|`stargazers`| GitHub Stargazers related tools |
296
352
|`users`| GitHub User related tools |
297
353
<!-- END AUTOMATED TOOLSETS -->
298
354
299
355
## Tools
300
356
301
-
302
357
<!-- START AUTOMATED TOOLS -->
303
358
<details>
304
359
@@ -545,6 +600,11 @@ The following sets of tools are available (all are on by default):
545
600
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
546
601
-`repo`: Repository name (string, required)
547
602
603
+
-**get_label** - Get a specific label from a repository.
604
+
-`name`: Label name. (string, required)
605
+
-`owner`: Repository owner (username or organization name) (string, required)
606
+
-`repo`: Repository name (string, required)
607
+
548
608
-**list_issue_types** - List available issue types
549
609
-`owner`: The organization owner of the repository (string, required)
550
610
@@ -559,6 +619,11 @@ The following sets of tools are available (all are on by default):
559
619
-`since`: Filter by date (ISO 8601 timestamp) (string, optional)
560
620
-`state`: Filter by state, by default both open and closed issues are returned when not provided (string, optional)
561
621
622
+
-**list_label** - List labels from a repository or an issue
623
+
-`issue_number`: Issue number - if provided, lists labels on the specific issue (number, optional)
624
+
-`owner`: Repository owner (username or organization name) - required for all operations (string, required)
625
+
-`repo`: Repository name - required for all operations (string, required)
626
+
562
627
-**list_sub_issues** - List sub-issues
563
628
-`issue_number`: Issue number (number, required)
564
629
-`owner`: Repository owner (string, required)
@@ -607,6 +672,31 @@ The following sets of tools are available (all are on by default):
607
672
608
673
<details>
609
674
675
+
<summary>Labels</summary>
676
+
677
+
-**get_label** - Get a specific label from a repository.
678
+
-`name`: Label name. (string, required)
679
+
-`owner`: Repository owner (username or organization name) (string, required)
680
+
-`repo`: Repository name (string, required)
681
+
682
+
-**label_write** - Write operations on repository labels.
683
+
-`color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional)
684
+
-`description`: Label description text. Optional for 'create' and 'update'. (string, optional)
685
+
-`method`: Operation to perform: 'create', 'update', or 'delete' (string, required)
686
+
-`name`: Label name - required for all operations (string, required)
687
+
-`new_name`: New name for the label (used only with 'update' method to rename) (string, optional)
688
+
-`owner`: Repository owner (username or organization name) (string, required)
689
+
-`repo`: Repository name (string, required)
690
+
691
+
-**list_label** - List labels from a repository or an issue
692
+
-`issue_number`: Issue number - if provided, lists labels on the specific issue (number, optional)
693
+
-`owner`: Repository owner (username or organization name) - required for all operations (string, required)
694
+
-`repo`: Repository name - required for all operations (string, required)
695
+
696
+
</details>
697
+
698
+
<details>
699
+
610
700
<summary>Notifications</summary>
611
701
612
702
-**dismiss_notification** - Dismiss notification
@@ -707,6 +797,13 @@ The following sets of tools are available (all are on by default):
707
797
-`per_page`: Number of results per page (max 100, default: 30) (number, optional)
708
798
-`query`: Filter projects by a search query (matches title and description) (string, optional)
709
799
800
+
-**update_project_item** - Update project item
801
+
-`item_id`: The unique identifier of the project item. This is not the issue or pull request ID. (number, required)
802
+
-`owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required)
803
+
-`owner_type`: Owner type (string, required)
804
+
-`project_number`: The project's number. (number, required)
805
+
-`updated_field`: Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set "value" to null. Example: {"id": 123456, "value": "New Value"} (object, required)
806
+
710
807
</details>
711
808
712
809
<details>
@@ -754,38 +851,6 @@ The following sets of tools are available (all are on by default):
754
851
-`pullNumber`: Pull request number (number, required)
755
852
-`repo`: Repository name (string, required)
756
853
757
-
-**get_pull_request** - Get pull request details
758
-
-`owner`: Repository owner (string, required)
759
-
-`pullNumber`: Pull request number (number, required)
760
-
-`repo`: Repository name (string, required)
761
-
762
-
-**get_pull_request_diff** - Get pull request diff
763
-
-`owner`: Repository owner (string, required)
764
-
-`pullNumber`: Pull request number (number, required)
765
-
-`repo`: Repository name (string, required)
766
-
767
-
-**get_pull_request_files** - Get pull request files
768
-
-`owner`: Repository owner (string, required)
769
-
-`page`: Page number for pagination (min 1) (number, optional)
770
-
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
771
-
-`pullNumber`: Pull request number (number, required)
772
-
-`repo`: Repository name (string, required)
773
-
774
-
-**get_pull_request_review_comments** - Get pull request review comments
775
-
-`owner`: Repository owner (string, required)
776
-
-`pullNumber`: Pull request number (number, required)
777
-
-`repo`: Repository name (string, required)
778
-
779
-
-**get_pull_request_reviews** - Get pull request reviews
780
-
-`owner`: Repository owner (string, required)
781
-
-`pullNumber`: Pull request number (number, required)
782
-
-`repo`: Repository name (string, required)
783
-
784
-
-**get_pull_request_status** - Get pull request status checks
785
-
-`owner`: Repository owner (string, required)
786
-
-`pullNumber`: Pull request number (number, required)
787
-
-`repo`: Repository name (string, required)
788
-
789
854
-**list_pull_requests** - List pull requests
790
855
-`base`: Filter by base branch (string, optional)
791
856
-`direction`: Sort direction (string, optional)
@@ -805,6 +870,22 @@ The following sets of tools are available (all are on by default):
805
870
-`pullNumber`: Pull request number (number, required)
806
871
-`repo`: Repository name (string, required)
807
872
873
+
-**pull_request_read** - Get details for a single pull request
874
+
-`method`: Action to specify what pull request data needs to be retrieved from GitHub.
875
+
Possible options:
876
+
1. get - Get details of a specific pull request.
877
+
2. get_diff - Get the diff of a pull request.
878
+
3. get_status - Get status of a head commit in a pull request. This reflects status of builds and checks.
879
+
4. get_files - Get the list of files changed in a pull request. Use with pagination parameters to control the number of results returned.
880
+
5. get_review_comments - Get the review comments on a pull request. Use with pagination parameters to control the number of results returned.
881
+
6. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method.
882
+
(string, required)
883
+
-`owner`: Repository owner (string, required)
884
+
-`page`: Page number for pagination (min 1) (number, optional)
885
+
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
886
+
-`pullNumber`: Pull request number (number, required)
-`pullNumber`: Pull request number (number, required)
@@ -933,13 +1014,6 @@ The following sets of tools are available (all are on by default):
933
1014
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
934
1015
-`repo`: Repository name (string, required)
935
1016
936
-
-**list_starred_repositories** - List starred repositories
937
-
-`direction`: The direction to sort the results by. (string, optional)
938
-
-`page`: Page number for pagination (min 1) (number, optional)
939
-
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
940
-
-`sort`: How to sort the results. Can be either 'created' (when the repository was starred) or 'updated' (when the repository was last pushed to). (string, optional)
941
-
-`username`: Username to list starred repositories for. Defaults to the authenticated user. (string, optional)
942
-
943
1017
-**list_tags** - List tags
944
1018
-`owner`: Repository owner (string, required)
945
1019
-`page`: Page number for pagination (min 1) (number, optional)
@@ -962,17 +1036,11 @@ The following sets of tools are available (all are on by default):
962
1036
963
1037
-**search_repositories** - Search repositories
964
1038
-`minimal_output`: Return minimal repository information (default: true). When false, returns full GitHub API repository objects. (boolean, optional)
1039
+
-`order`: Sort order (string, optional)
965
1040
-`page`: Page number for pagination (min 1) (number, optional)
966
1041
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
-`sort`: Sort repositories by field, defaults to best match (string, optional)
976
1044
977
1045
</details>
978
1046
@@ -1031,6 +1099,27 @@ The following sets of tools are available (all are on by default):
1031
1099
1032
1100
<details>
1033
1101
1102
+
<summary>Stargazers</summary>
1103
+
1104
+
-**list_starred_repositories** - List starred repositories
1105
+
-`direction`: The direction to sort the results by. (string, optional)
1106
+
-`page`: Page number for pagination (min 1) (number, optional)
1107
+
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
1108
+
-`sort`: How to sort the results. Can be either 'created' (when the repository was starred) or 'updated' (when the repository was last pushed to). (string, optional)
1109
+
-`username`: Username to list starred repositories for. Defaults to the authenticated user. (string, optional)
1110
+
1111
+
-**star_repository** - Star repository
1112
+
-`owner`: Repository owner (string, required)
1113
+
-`repo`: Repository name (string, required)
1114
+
1115
+
-**unstar_repository** - Unstar repository
1116
+
-`owner`: Repository owner (string, required)
1117
+
-`repo`: Repository name (string, required)
1118
+
1119
+
</details>
1120
+
1121
+
<details>
1122
+
1034
1123
<summary>Users</summary>
1035
1124
1036
1125
-**search_users** - Search users
@@ -1069,48 +1158,6 @@ The following sets of tools are available (all are on by default):
1069
1158
-**list_copilot_spaces** - List Copilot Spaces
1070
1159
</details>
1071
1160
1072
-
#### Specifying Toolsets
1073
-
1074
-
To specify toolsets you want available to the LLM, you can pass an allow-list in two ways:
The special toolset `all` can be provided to enable all available toolsets regardless of any other configuration:
1103
-
1104
-
```bash
1105
-
./github-mcp-server --toolsets all
1106
-
```
1107
-
1108
-
Or using the environment variable:
1109
-
1110
-
```bash
1111
-
GITHUB_TOOLSETS="all" ./github-mcp-server
1112
-
```
1113
-
1114
1161
## Dynamic Tool Discovery
1115
1162
1116
1163
**Note**: This feature is currently in beta and may not be available in all environments. Please test it out and let us know if you encounter any issues.
// Add global flags that will be shared by all commands
72
-
rootCmd.PersistentFlags().StringSlice("toolsets", github.DefaultTools, "An optional comma separated list of groups of tools to allow, defaults to enabling all")
0 commit comments