Skip to content

Commit 01ad26c

Browse files
Merge branch 'main' into patch-1
2 parents f50cb5e + 95726ad commit 01ad26c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+4759
-1970
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
name: Insiders Feedback
3+
about: Give feedback related to a GitHub MCP Server Insiders feature
4+
title: "Insiders Feedback: "
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
Version: Insiders
11+
12+
Feature:
13+
14+
Feedback:

.github/workflows/code-scanning.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ jobs:
3535
category: /language:go
3636
build-mode: autobuild
3737
runner: '["ubuntu-22.04"]'
38+
- language: javascript
39+
category: /language:javascript
40+
build-mode: none
41+
runner: '["ubuntu-22.04"]'
3842
steps:
3943
- name: Checkout repository
4044
uses: actions/checkout@v6
@@ -75,7 +79,7 @@ jobs:
7579
cache: false
7680

7781
- name: Set up Node.js
78-
if: matrix.language == 'go'
82+
if: matrix.language == 'go' || matrix.language == 'javascript'
7983
uses: actions/setup-node@v4
8084
with:
8185
node-version: "20"

.github/workflows/docker-publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
# https://github.com/sigstore/cosign-installer
4747
- name: Install cosign
4848
if: github.event_name != 'pull_request'
49-
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad #v4.0.0
49+
uses: sigstore/cosign-installer@ba7bc0a3fef59531c69a25acd34668d6d3fe6f22 #v4.1.0
5050
with:
5151
cosign-release: "v2.2.4"
5252

@@ -70,7 +70,7 @@ jobs:
7070
# https://github.com/docker/metadata-action
7171
- name: Extract Docker metadata
7272
id: meta
73-
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
73+
uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
7474
with:
7575
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
7676
tags: |
@@ -93,7 +93,7 @@ jobs:
9393
key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }}
9494

9595
- name: Inject go-build-cache
96-
uses: reproducible-containers/buildkit-cache-dance@6f699a72a59e4252f05a7435430009b77e25fe06 # v3.3.1
96+
uses: reproducible-containers/buildkit-cache-dance@1b8ab18fbda5ad3646e3fcc9ed9dd41ce2f297b4 # v3.3.2
9797
with:
9898
cache-map: |
9999
{
@@ -106,7 +106,7 @@ jobs:
106106
# https://github.com/docker/build-push-action
107107
- name: Build and push Docker image
108108
id: build-and-push
109-
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
109+
uses: docker/build-push-action@d08e5c354a6adb9ed34480a06d141179aa583294 # v7.0.0
110110
with:
111111
context: .
112112
push: ${{ github.event_name != 'pull_request' }}

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ COPY ui/ ./ui/
77
RUN mkdir -p ./pkg/github/ui_dist && \
88
cd ui && npm run build
99

10-
FROM golang:1.25.7-alpine@sha256:f6751d823c26342f9506c03797d2527668d095b0a15f1862cddb4d927a7a4ced AS build
10+
FROM golang:1.25.8-alpine@sha256:8e02eb337d9e0ea459e041f1ee5eece41cbb61f1d83e7d883a3e2fb4862063fa AS build
1111
ARG VERSION="dev"
1212

1313
# Set the working directory

README.md

Lines changed: 58 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ When no toolsets are specified, [default toolsets](#default-toolset) are used.
140140
</tr>
141141
</table>
142142

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.
144144

145145
#### GitHub Enterprise
146146

@@ -153,7 +153,7 @@ Example for `https://octocorp.ghe.com` with GitHub PAT token:
153153
```
154154
{
155155
...
156-
"proxima-github": {
156+
"github-octocorp": {
157157
"type": "http",
158158
"url": "https://copilot-api.octocorp.ghe.com/mcp",
159159
"headers": {
@@ -560,6 +560,7 @@ The following sets of tools are available:
560560
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/person-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/person-light.png"><img src="pkg/octicons/icons/person-light.png" width="20" height="20" alt="person"></picture> | `context` | **Strongly recommended**: Tools that provide context about the current user and GitHub context you are operating in |
561561
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/workflow-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/workflow-light.png"><img src="pkg/octicons/icons/workflow-light.png" width="20" height="20" alt="workflow"></picture> | `actions` | GitHub Actions workflows and CI/CD operations |
562562
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/codescan-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/codescan-light.png"><img src="pkg/octicons/icons/codescan-light.png" width="20" height="20" alt="codescan"></picture> | `code_security` | Code security related tools, such as GitHub Code Scanning |
563+
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/copilot-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/copilot-light.png"><img src="pkg/octicons/icons/copilot-light.png" width="20" height="20" alt="copilot"></picture> | `copilot` | Copilot related tools |
563564
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/dependabot-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/dependabot-light.png"><img src="pkg/octicons/icons/dependabot-light.png" width="20" height="20" alt="dependabot"></picture> | `dependabot` | Dependabot tools |
564565
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/comment-discussion-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/comment-discussion-light.png"><img src="pkg/octicons/icons/comment-discussion-light.png" width="20" height="20" alt="comment-discussion"></picture> | `discussions` | GitHub Discussions related tools |
565566
| <picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/logo-gist-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/logo-gist-light.png"><img src="pkg/octicons/icons/logo-gist-light.png" width="20" height="20" alt="logo-gist"></picture> | `gists` | GitHub Gist related tools |
@@ -686,6 +687,26 @@ The following sets of tools are available:
686687

687688
<details>
688689

690+
<summary><picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/copilot-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/copilot-light.png"><img src="pkg/octicons/icons/copilot-light.png" width="20" height="20" alt="copilot"></picture> Copilot</summary>
691+
692+
- **assign_copilot_to_issue** - Assign Copilot to issue
693+
- **Required OAuth Scopes**: `repo`
694+
- `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)
695+
- `custom_instructions`: Optional custom instructions to guide the agent beyond the issue body. Use this to provide additional context, constraints, or guidance that is not captured in the issue description (string, optional)
696+
- `issue_number`: Issue number (number, required)
697+
- `owner`: Repository owner (string, required)
698+
- `repo`: Repository name (string, required)
699+
700+
- **request_copilot_review** - Request Copilot review
701+
- **Required OAuth Scopes**: `repo`
702+
- `owner`: Repository owner (string, required)
703+
- `pullNumber`: Pull request number (number, required)
704+
- `repo`: Repository name (string, required)
705+
706+
</details>
707+
708+
<details>
709+
689710
<summary><picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/dependabot-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/dependabot-light.png"><img src="pkg/octicons/icons/dependabot-light.png" width="20" height="20" alt="dependabot"></picture> Dependabot</summary>
690711

691712
- **get_dependabot_alert** - Get dependabot alert
@@ -794,14 +815,6 @@ The following sets of tools are available:
794815
- `owner`: Repository owner (string, required)
795816
- `repo`: Repository name (string, required)
796817

797-
- **assign_copilot_to_issue** - Assign Copilot to issue
798-
- **Required OAuth Scopes**: `repo`
799-
- `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)
800-
- `custom_instructions`: Optional custom instructions to guide the agent beyond the issue body. Use this to provide additional context, constraints, or guidance that is not captured in the issue description (string, optional)
801-
- `issue_number`: Issue number (number, required)
802-
- `owner`: Repository owner (string, required)
803-
- `repo`: Repository name (string, required)
804-
805818
- **get_label** - Get a specific label from a repository.
806819
- **Required OAuth Scopes**: `repo`
807820
- `name`: Label name. (string, required)
@@ -1084,11 +1097,12 @@ The following sets of tools are available:
10841097
Possible options:
10851098
1. get - Get details of a specific pull request.
10861099
2. get_diff - Get the diff of a pull request.
1087-
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.
10881101
4. get_files - Get the list of files changed in a pull request. Use with pagination parameters to control the number of results returned.
10891102
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.
10901103
6. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method.
10911104
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.
10921106
(string, required)
10931107
- `owner`: Repository owner (string, required)
10941108
- `page`: Page number for pagination (min 1) (number, optional)
@@ -1105,12 +1119,7 @@ The following sets of tools are available:
11051119
- `owner`: Repository owner (string, required)
11061120
- `pullNumber`: Pull request number (number, required)
11071121
- `repo`: Repository name (string, required)
1108-
1109-
- **request_copilot_review** - Request Copilot review
1110-
- **Required OAuth Scopes**: `repo`
1111-
- `owner`: Repository owner (string, required)
1112-
- `pullNumber`: Pull request number (number, required)
1113-
- `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)
11141123

11151124
- **search_pull_requests** - Search pull requests
11161125
- **Required OAuth Scopes**: `repo`
@@ -1163,7 +1172,7 @@ The following sets of tools are available:
11631172
- `owner`: Repository owner (username or organization) (string, required)
11641173
- `path`: Path where to create/update the file (string, required)
11651174
- `repo`: Repository name (string, required)
1166-
- `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)
11671176

11681177
- **create_repository** - Create repository
11691178
- **Required OAuth Scopes**: `repo`
@@ -1233,9 +1242,12 @@ The following sets of tools are available:
12331242
- `author`: Author username or email address to filter commits by (string, optional)
12341243
- `owner`: Repository owner (string, required)
12351244
- `page`: Page number for pagination (min 1) (number, optional)
1245+
- `path`: Only commits containing this file path will be returned (string, optional)
12361246
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
12371247
- `repo`: Repository name (string, required)
12381248
- `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)
12391251

12401252
- **list_releases** - List releases
12411253
- **Required OAuth Scopes**: `repo`
@@ -1528,6 +1540,34 @@ set the following environment variable:
15281540
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
15291541
```
15301542

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.
1549+
1550+
| Key | Environment Variable | Default |
1551+
|-----|---------------------|---------|
1552+
| `SERVER_NAME` | `GITHUB_MCP_SERVER_NAME` | `github-mcp-server` |
1553+
| `SERVER_TITLE` | `GITHUB_MCP_SERVER_TITLE` | `GitHub MCP Server` |
1554+
1555+
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+
15311571
## Library Usage
15321572

15331573
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.

docs/insiders-features.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Insiders Features
2+
3+
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 |
15+
| Header | `X-MCP-Insiders: true` | N/A |
16+
| CLI flag | N/A | `--insiders` |
17+
| Environment variable | N/A | `GITHUB_INSIDERS=true` |
18+
19+
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

docs/installation-guides/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ This directory contains detailed installation instructions for the GitHub MCP Se
77
- **[GitHub Copilot in other IDEs](install-other-copilot-ides.md)** - Installation for JetBrains, Visual Studio, Eclipse, and Xcode with GitHub Copilot
88
- **[Antigravity](install-antigravity.md)** - Installation for Google Antigravity IDE
99
- **[Claude Applications](install-claude.md)** - Installation guide for Claude Web, Claude Desktop and Claude Code CLI
10+
- **[Cline](install-cline.md)** - Installation guide for Cline
1011
- **[Cursor](install-cursor.md)** - Installation guide for Cursor IDE
1112
- **[Google Gemini CLI](install-gemini-cli.md)** - Installation guide for Google Gemini CLI
1213
- **[OpenAI Codex](install-codex.md)** - Installation guide for OpenAI Codex
14+
- **[Roo Code](install-roo-code.md)** - Installation guide for Roo Code
1315
- **[Windsurf](install-windsurf.md)** - Installation guide for Windsurf IDE
1416

1517
## Support by Host Application
@@ -23,8 +25,10 @@ This directory contains detailed installation instructions for the GitHub MCP Se
2325
| Copilot in JetBrains || ✅ Full (OAuth + PAT) | Local: Docker or Go build, GitHub PAT<br>Remote: JetBrains Copilot Extension v1.5.53+ | Easy |
2426
| Claude Code || ✅ PAT + ❌ No OAuth| GitHub MCP Server binary or remote URL, GitHub PAT | Easy |
2527
| Claude Desktop || ✅ PAT + ❌ No OAuth | Docker or Go build, GitHub PAT | Moderate |
28+
| Cline || ✅ PAT + ❌ No OAuth | Docker or Go build, GitHub PAT | Easy |
2629
| Cursor || ✅ PAT + ❌ No OAuth | Docker or Go build, GitHub PAT | Easy |
2730
| Google Gemini CLI || ✅ PAT + ❌ No OAuth | Docker or Go build, GitHub PAT | Easy |
31+
| Roo Code || ✅ PAT + ❌ No OAuth | Docker or Go build, GitHub PAT | Easy |
2832
| Windsurf || ✅ PAT + ❌ No OAuth | Docker or Go build, GitHub PAT | Easy |
2933
| Copilot in Xcode || ✅ Full (OAuth + PAT) | Local: Docker or Go build, GitHub PAT<br>Remote: Copilot for Xcode 0.41.0+ | Easy |
3034
| Copilot in Eclipse || ✅ Full (OAuth + PAT) | Local: Docker or Go build, GitHub PAT<br>Remote: Eclipse Plug-in for Copilot 0.10.0+ | Easy |

0 commit comments

Comments
 (0)