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
+37-4Lines changed: 37 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -140,7 +140,7 @@ When no toolsets are specified, [default toolsets](#default-toolset) are used.
140
140
</tr>
141
141
</table>
142
142
143
-
See [Remote Server Documentation](docs/remote-server.md#insiders-mode) for more details and examples.
143
+
See [Remote Server Documentation](docs/remote-server.md#insiders-mode) for more details and examples, and [Insiders Features](docs/insiders-features.md) for a full list of what's available.
144
144
145
145
#### GitHub Enterprise
146
146
@@ -459,7 +459,7 @@ You can also configure specific tools using the `--tools` flag. Tools can be use
459
459
- Tools, toolsets, and dynamic toolsets can all be used together
460
460
- Read-only mode takes priority: write tools are skipped if `--read-only` is set, even if explicitly requested via `--tools`
461
461
- Tool names must match exactly (e.g., `get_file_contents`, not `getFileContents`). Invalid tool names will cause the server to fail at startup with an error message
462
-
- When tools are renamed, old names are preserved as aliases for backward compatibility. See [Deprecated Tool Aliases](docs/deprecated-tool-aliases.md) for details.
462
+
- When tools are renamed, old names are preserved as aliases for backward compatibility. See [Tool Renaming](docs/tool-renaming.md) for details.
463
463
464
464
### Using Toolsets With Docker
465
465
@@ -1097,11 +1097,12 @@ The following sets of tools are available:
1097
1097
Possible options:
1098
1098
1. get - Get details of a specific pull request.
1099
1099
2. get_diff - Get the diff of a pull request.
1100
-
3. get_status - Get status of a head commit in a pull request. This reflects status of builds and checks.
1100
+
3. get_status - Get combined commit status of a head commit in a pull request.
1101
1101
4. get_files - Get the list of files changed in a pull request. Use with pagination parameters to control the number of results returned.
1102
1102
5. get_review_comments - Get review threads on a pull request. Each thread contains logically grouped review comments made on the same code location during pull request reviews. Returns threads with metadata (isResolved, isOutdated, isCollapsed) and their associated comments. Use cursor-based pagination (perPage, after) to control results.
1103
1103
6. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method.
1104
1104
7. get_comments - Get comments on a pull request. Use this if user doesn't specifically want review comments. Use with pagination parameters to control the number of results returned.
1105
+
8. get_check_runs - Get check runs for the head commit of a pull request. Check runs are the individual CI/CD jobs and checks that run on the PR.
1105
1106
(string, required)
1106
1107
-`owner`: Repository owner (string, required)
1107
1108
-`page`: Page number for pagination (min 1) (number, optional)
@@ -1118,6 +1119,7 @@ The following sets of tools are available:
1118
1119
-`owner`: Repository owner (string, required)
1119
1120
-`pullNumber`: Pull request number (number, required)
1120
1121
-`repo`: Repository name (string, required)
1122
+
-`threadId`: The node ID of the review thread (e.g., PRRT_kwDOxxx). Required for resolve_thread and unresolve_thread methods. Get thread IDs from pull_request_read with method get_review_comments. (string, optional)
1121
1123
1122
1124
-**search_pull_requests** - Search pull requests
1123
1125
-**Required OAuth Scopes**: `repo`
@@ -1170,7 +1172,7 @@ The following sets of tools are available:
1170
1172
-`owner`: Repository owner (username or organization) (string, required)
1171
1173
-`path`: Path where to create/update the file (string, required)
1172
1174
-`repo`: Repository name (string, required)
1173
-
-`sha`: The blob SHA of the file being replaced. (string, optional)
1175
+
-`sha`: The blob SHA of the file being replaced. Required if the file already exists. (string, optional)
1174
1176
1175
1177
-**create_repository** - Create repository
1176
1178
-**Required OAuth Scopes**: `repo`
@@ -1240,9 +1242,12 @@ The following sets of tools are available:
1240
1242
-`author`: Author username or email address to filter commits by (string, optional)
1241
1243
-`owner`: Repository owner (string, required)
1242
1244
-`page`: Page number for pagination (min 1) (number, optional)
1245
+
-`path`: Only commits containing this file path will be returned (string, optional)
1243
1246
-`perPage`: Results per page for pagination (min 1, max 100) (number, optional)
1244
1247
-`repo`: Repository name (string, required)
1245
1248
-`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)
1249
+
-`since`: Only commits after this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD) (string, optional)
1250
+
-`until`: Only commits before this date will be returned (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DD) (string, optional)
1246
1251
1247
1252
-**list_releases** - List releases
1248
1253
-**Required OAuth Scopes**: `repo`
@@ -1535,6 +1540,34 @@ set the following environment variable:
1535
1540
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
1536
1541
```
1537
1542
1543
+
### Overriding Server Name and Title
1544
+
1545
+
The same override mechanism can be used to customize the MCP server's `name` and
1546
+
`title` fields in the initialization response. This is useful when running
1547
+
multiple GitHub MCP Server instances (e.g., one for github.com and one for
1548
+
GitHub Enterprise Server) so that agents can distinguish between them.
For example, to configure a server instance for GitHub Enterprise Server:
1556
+
1557
+
```json
1558
+
{
1559
+
"SERVER_NAME": "ghes-mcp-server",
1560
+
"SERVER_TITLE": "GHES MCP Server"
1561
+
}
1562
+
```
1563
+
1564
+
Or using environment variables:
1565
+
1566
+
```sh
1567
+
export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
1568
+
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"
1569
+
```
1570
+
1538
1571
## Library Usage
1539
1572
1540
1573
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.
Insiders Mode gives you access to experimental features in the GitHub MCP Server. These features may change, evolve, or be removed based on community feedback.
4
+
5
+
We created this mode to have a way to roll out experimental features and collect feedback. So if you are using Insiders, please don't hesitate to share your feedback with us!
6
+
7
+
> [!NOTE]
8
+
> Features in Insiders Mode are experimental.
9
+
10
+
## Enabling Insiders Mode
11
+
12
+
| Method | Remote Server | Local Server |
13
+
|--------|---------------|--------------|
14
+
| URL path | Append `/insiders` to the URL | N/A |
For configuration examples, see the [Server Configuration Guide](./server-configuration.md#insiders-mode).
20
+
21
+
---
22
+
23
+
## MCP Apps
24
+
25
+
[MCP Apps](https://modelcontextprotocol.io/docs/extensions/apps) is an extension to the Model Context Protocol that enables servers to deliver interactive user interfaces to end users. Instead of returning plain text that the LLM must interpret and relay, tools can render forms, profiles, and dashboards right in the chat using MCP Apps.
26
+
27
+
This means you can interact with GitHub visually: fill out forms to create issues, see user profiles with avatars, open pull requests — all without leaving your agent chat.
28
+
29
+
### Supported tools
30
+
31
+
The following tools have MCP Apps UIs:
32
+
33
+
| Tool | Description |
34
+
|------|-------------|
35
+
|`get_me`| Displays your GitHub user profile with avatar, bio, and stats in a rich card |
36
+
|`issue_write`| Opens an interactive form to create or update issues |
37
+
|`create_pull_request`| Provides a full PR creation form to create a pull request (or a draft pull request) |
38
+
39
+
### Client requirements
40
+
41
+
MCP Apps requires a host that supports the [MCP Apps extension](https://modelcontextprotocol.io/docs/extensions/apps). Currently tested and working with:
42
+
43
+
-**VS Code Insiders** — enable via the `chat.mcp.apps.enabled` setting
44
+
-**Visual Studio Code** — enable via the `chat.mcp.apps.enabled` setting
[Cline](https://github.com/cline/cline) is an AI coding assistant that runs in VS Code-compatible editors (VS Code, Cursor, Windsurf, etc.). For general setup information (prerequisites, Docker installation, security best practices), see the [Installation Guides README](./README.md).
4
+
5
+
## Remote Server
6
+
7
+
Cline stores MCP settings in `cline_mcp_settings.json`. To edit it, click the Cline icon in your editor's sidebar, open the menu in the top right corner of the Cline panel, and select **"MCP Servers"**. You can add a remote server through the **"Remote Servers"** tab, or click **"Configure MCP Servers"** to edit the JSON directly.
8
+
9
+
```json
10
+
{
11
+
"mcpServers": {
12
+
"github": {
13
+
"url": "https://api.githubcopilot.com/mcp/",
14
+
"type": "streamableHttp",
15
+
"disabled": false,
16
+
"headers": {
17
+
"Authorization": "Bearer <YOUR_GITHUB_PAT>"
18
+
},
19
+
"autoApprove": []
20
+
}
21
+
}
22
+
}
23
+
```
24
+
25
+
Replace `YOUR_GITHUB_PAT` with your [GitHub Personal Access Token](https://github.com/settings/tokens). To customize toolsets, add server-side headers like `X-MCP-Toolsets` or `X-MCP-Readonly` to the `headers` object — see [Server Configuration Guide](../server-configuration.md).
26
+
27
+
> **Important:** The transport type must be `"streamableHttp"` (camelCase, no hyphen). Using `"streamable-http"` or omitting the type will cause Cline to fall back to SSE, resulting in a `405` error.
28
+
29
+
## Local Server (Docker)
30
+
31
+
1. Click the Cline icon in your editor's sidebar (or open the command palette and search for "Cline"), then click the **MCP Servers** icon (server stack icon at the top of the Cline panel), and click **"Configure MCP Servers"** to open `cline_mcp_settings.json`.
32
+
2. Add the configuration below, replacing `YOUR_GITHUB_PAT` with your [GitHub Personal Access Token](https://github.com/settings/tokens).
33
+
34
+
```json
35
+
{
36
+
"mcpServers": {
37
+
"github": {
38
+
"command": "docker",
39
+
"args": [
40
+
"run", "-i", "--rm",
41
+
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
42
+
"ghcr.io/github/github-mcp-server"
43
+
],
44
+
"env": {
45
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
46
+
}
47
+
}
48
+
}
49
+
}
50
+
```
51
+
52
+
## Troubleshooting
53
+
54
+
-**SSE error 405 with remote server**: Ensure `"type"` is set to `"streamableHttp"` (camelCase, no hyphen) in `cline_mcp_settings.json`. Using `"streamable-http"` or omitting `"type"` causes Cline to fall back to SSE, which this server does not support.
55
+
-**Authentication failures**: Verify your PAT has the required scopes
56
+
-**Docker issues**: Ensure Docker Desktop is installed and running
0 commit comments