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
Copy file name to clipboardExpand all lines: README.md
+21-6Lines changed: 21 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -550,7 +550,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
550
550
<summary>Context</summary>
551
551
552
552
-**get_me** - Get my user profile
553
-
-`reason`: Optional: the reason for requesting the user information (string, optional)
553
+
-No parameters required
554
554
555
555
</details>
556
556
@@ -870,7 +870,7 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
870
870
-`owner`: Repository owner (username or organization) (string, required)
871
871
-`path`: Path where to create/update the file (string, required)
872
872
-`repo`: Repository name (string, required)
873
-
-`sha`: SHA of file being replaced (for updates) (string, optional)
873
+
-`sha`: Required if updating an existing file. The blob SHA of the file being replaced. (string, optional)
874
874
875
875
-**create_repository** - Create repository
876
876
-`autoInit`: Initialize with README (boolean, optional)
@@ -899,10 +899,10 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
899
899
900
900
-**get_file_contents** - Get file or directory contents
901
901
-`owner`: Repository owner (username or organization) (string, required)
902
-
-`path`: Path to file/directory (directories must end with a slash '/') (string, required)
902
+
-`path`: Path to file/directory (directories must end with a slash '/') (string, optional)
903
903
-`ref`: Accepts optional git refs such as `refs/tags/{tag}`, `refs/heads/{branch}` or `refs/pull/{pr_number}/head` (string, optional)
904
904
-`repo`: Repository name (string, required)
905
-
-`sha`: Accepts optional git sha, if sha is specified it will be used instead of ref (string, optional)
905
+
-`sha`: Accepts optional commit SHA. If specified, it will be used instead of ref (string, optional)
906
906
907
907
-**get_tag** - Get tag details
908
908
-`owner`: Repository owner (string, required)
@@ -916,12 +916,12 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
916
916
-`repo`: Repository name (string, required)
917
917
918
918
-**list_commits** - List commits
919
-
-`author`: Author username or email address (string, optional)
919
+
-`author`: Author username or email address to filter commits by (string, optional)
920
920
-`owner`: Repository owner (string, required)
921
921
-`page`: Page number for pagination (min 1) (number, optional)
922
922
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
923
923
-`repo`: Repository name (string, required)
924
-
-`sha`: The commit SHA, branch name, or tag name to list commits from. If not specified, defaults to the repository's default branch. (string, optional)
924
+
-`sha`: Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA. (string, optional)
925
925
926
926
-**list_tags** - List tags
927
927
-`owner`: Repository owner (string, required)
@@ -982,6 +982,21 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
982
982
</details>
983
983
<!-- END AUTOMATED TOOLS -->
984
984
985
+
### Additional Tools in Remote Github MCP Server
986
+
987
+
<details>
988
+
989
+
<summary>Copilot coding agent</summary>
990
+
991
+
-**create_pull_request_with_copilot** - Perform task with GitHub Copilot coding agent
992
+
-`owner`: Repository owner. You can guess the owner, but confirm it with the user before proceeding. (string, required)
993
+
-`repo`: Repository name. You can guess the repository name, but confirm it with the user before proceeding. (string, required)
994
+
-`problem_statement`: Detailed description of the task to be performed (e.g., 'Implement a feature that does X', 'Fix bug Y', etc.) (string, required)
995
+
-`title`: Title for the pull request that will be created (string, required)
996
+
-`base_ref`: Git reference (e.g., branch) that the agent will start its work from. If not specified, defaults to the repository's default branch (string, optional)
997
+
998
+
</details>
999
+
985
1000
## Library Usage
986
1001
987
1002
The exported Go API of this module should currently be considered unstable, and subject to breaking changes. In the future, we may offer stability; please file an issue if there is a use case where this would be valuable.
Copy file name to clipboardExpand all lines: docs/host-integration.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,7 +64,7 @@ flowchart LR
64
64
-**Local MCP Server**: An MCP Server running locally, side-by-side with the Application.
65
65
-**Remote MCP Server**: An MCP Server running remotely, accessed via the internet. Most Remote MCP Servers require authentication via OAuth.
66
66
67
-
For more detail, see the [official MCP specification](https://modelcontextprotocol.io/specification/draft).
67
+
For more detail, see the [official MCP specification](https://modelcontextprotocol.io/specification/2025-06-18).
68
68
69
69
> [!NOTE]
70
70
> GitHub offers both a Local MCP Server and a Remote MCP Server.
@@ -84,7 +84,7 @@ For the Remote GitHub MCP Server, the recommended way to obtain a valid access t
84
84
> The Remote GitHub MCP Server itself does not provide Authentication services.
85
85
> Your client application must obtain valid GitHub access tokens through one of the supported methods.
86
86
87
-
The expected flow for obtaining a valid access token via OAuth is depicted in the [MCP Specification](https://modelcontextprotocol.io/specification/draft/basic/authorization#authorization-flow-steps). For convenience, we've embedded a copy of the authorization flow below. Please study it carefully as the remainder of this document is written with this flow in mind.
87
+
The expected flow for obtaining a valid access token via OAuth is depicted in the [MCP Specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#authorization-flow-steps). For convenience, we've embedded a copy of the authorization flow below. Please study it carefully as the remainder of this document is written with this flow in mind.
Copy file name to clipboardExpand all lines: docs/remote-server.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ Easily connect to the GitHub MCP Server using the hosted version – no local se
10
10
11
11
The remote GitHub MCP server is built using this repository as a library, and binding it into GitHub server infrastructure with an internal repository. You can open issues and propose changes in this repository, and we regularly update the remote server to include the latest version of this code.
12
12
13
+
The remote server has [additional tools](#toolsets-only-available-in-the-remote-mcp-server) that are not available in the local MCP server, such as the `create_pull_request_with_copilot` tool for invoking Copilot coding agent.
14
+
13
15
## Remote MCP Toolsets
14
16
15
17
Below is a table of available toolsets for the remote GitHub MCP Server. Each toolset is provided as a distinct URL so you can mix and match to create the perfect combination of tools for your use-case. Add `/readonly` to the end of any URL to restrict the tools in the toolset to only those that enable read access. We also provide the option to use [headers](#headers) instead.
@@ -33,6 +35,14 @@ Below is a table of available toolsets for the remote GitHub MCP Server. Each to
33
35
34
36
<!-- END AUTOMATED TOOLSETS -->
35
37
38
+
### Additional _Remote_ Server Toolsets
39
+
40
+
These toolsets are only available in the remote GitHub MCP Server and are not included in the local MCP server.
41
+
42
+
| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |
Copy file name to clipboardExpand all lines: pkg/github/__toolsnaps__/get_me.snap
+2-7Lines changed: 2 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -3,14 +3,9 @@
3
3
"title": "Get my user profile",
4
4
"readOnlyHint": true
5
5
},
6
-
"description": "Get details of the authenticated GitHub user. Use this when a request includes \"me\", \"my\". The output will not change unless the user changes their profile, so only call this once.",
6
+
"description": "Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.",
7
7
"inputSchema": {
8
-
"properties": {
9
-
"reason": {
10
-
"description": "Optional: the reason for requesting the user information",
Copy file name to clipboardExpand all lines: pkg/github/__toolsnaps__/list_commits.snap
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
"inputSchema": {
8
8
"properties": {
9
9
"author": {
10
-
"description": "Author username or email address",
10
+
"description": "Author username or email address to filter commits by",
11
11
"type": "string"
12
12
},
13
13
"owner": {
@@ -30,7 +30,7 @@
30
30
"type": "string"
31
31
},
32
32
"sha": {
33
-
"description": "The commit SHA, branch name, or tag name to list commits from. If not specified, defaults to the repository's default branch.",
33
+
"description": "Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA.",
Copy file name to clipboardExpand all lines: pkg/github/__toolsnaps__/list_pull_requests.snap
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
"title": "List pull requests",
4
4
"readOnlyHint": true
5
5
},
6
-
"description": "List pull requests in a GitHub repository.",
6
+
"description": "List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.",
Copy file name to clipboardExpand all lines: pkg/github/context_tools.go
+1-4Lines changed: 1 addition & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -35,14 +35,11 @@ type UserDetails struct {
35
35
// GetMe creates a tool to get details of the authenticated user.
36
36
funcGetMe(getClientGetClientFn, t translations.TranslationHelperFunc) (mcp.Tool, server.ToolHandlerFunc) {
37
37
tool:=mcp.NewTool("get_me",
38
-
mcp.WithDescription(t("TOOL_GET_ME_DESCRIPTION", "Get details of the authenticated GitHub user. Use this when a request includes \"me\", \"my\". The output will not change unless the user changes their profile, so only call this once.")),
38
+
mcp.WithDescription(t("TOOL_GET_ME_DESCRIPTION", "Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls.")),
39
39
mcp.WithToolAnnotation(mcp.ToolAnnotation{
40
40
Title: t("TOOL_GET_ME_USER_TITLE", "Get my user profile"),
41
41
ReadOnlyHint: ToBoolPtr(true),
42
42
}),
43
-
mcp.WithString("reason",
44
-
mcp.Description("Optional: the reason for requesting the user information"),
0 commit comments