Skip to content

Commit 65f5c86

Browse files
Merge remote-tracking branch 'origin/main' into tmp1538
2 parents 7ddf51a + e0fba89 commit 65f5c86

110 files changed

Lines changed: 8682 additions & 1294 deletions

File tree

Some content is hidden

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

.github/workflows/docker-publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ jobs:
5454
# multi-platform images and export cache
5555
# https://github.com/docker/setup-buildx-action
5656
- name: Set up Docker Buildx
57-
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4.0.0
57+
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
5858

5959
# Login against a Docker registry except on PR
6060
# https://github.com/docker/login-action
6161
- name: Log into registry ${{ env.REGISTRY }}
6262
if: github.event_name != 'pull_request'
63-
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121 # v4.1.0
63+
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
6464
with:
6565
registry: ${{ env.REGISTRY }}
6666
username: ${{ github.actor }}
@@ -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@030e881283bb7a6894de51c315a6bfe6a94e05cf # v6.0.0
73+
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6.1.0
7474
with:
7575
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
7676
tags: |
@@ -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@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
109+
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
110110
with:
111111
context: .
112112
push: ${{ github.event_name != 'pull_request' }}

.github/workflows/mcp-diff.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
fetch-depth: 0
2121

2222
- name: Set up Go
23-
uses: actions/setup-go@v5
23+
uses: actions/setup-go@v6
2424
with:
2525
go-version-file: go.mod
2626

@@ -85,7 +85,7 @@ jobs:
8585
fetch-depth: 0
8686

8787
- name: Set up Go
88-
uses: actions/setup-go@v5
88+
uses: actions/setup-go@v6
8989
with:
9090
go-version-file: go.mod
9191

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:26-alpine@sha256:e71ac5e964b9201072425d59d2e876359efa25dc96bb1768cb73295728d6e4ea AS ui-build
1+
FROM node:26-alpine@sha256:144769ec3f32e8ee36b3cfde91e82bee25d9367b20f31a151f3f7eea3a2a8541 AS ui-build
22
WORKDIR /app
33
COPY ui/package*.json ./ui/
44
RUN cd ui && npm ci
@@ -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.10-alpine@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45 AS build
10+
FROM golang:1.25.11-alpine@sha256:cd2fb3559df6e13bc93b7f0734a4eabe1d21e7b64eec211ed90784f00a17a56a AS build
1111
ARG VERSION="dev"
1212

1313
# Set the working directory

README.md

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ Alternatively, to manually configure VS Code, choose the appropriate JSON block
8686
- **[Claude Applications](/docs/installation-guides/install-claude.md)** - Installation guide for Claude Desktop and Claude Code CLI
8787
- **[Codex](/docs/installation-guides/install-codex.md)** - Installation guide for OpenAI Codex
8888
- **[Cursor](/docs/installation-guides/install-cursor.md)** - Installation guide for Cursor IDE
89+
- **[OpenCode](/docs/installation-guides/install-opencode.md)** - Installation guide for the OpenCode terminal agent
8990
- **[Windsurf](/docs/installation-guides/install-windsurf.md)** - Installation guide for Windsurf IDE
91+
- **[Zed](/docs/installation-guides/install-zed.md)** - Installation guide for Zed editor
9092
- **[Rovo Dev CLI](/docs/installation-guides/install-rovo-dev-cli.md)** - Installation guide for Rovo Dev CLI
9193

9294
> **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.
@@ -212,7 +214,7 @@ To keep your GitHub PAT secure and reusable across different MCP hosts:
212214

213215
```bash
214216
# CLI usage
215-
claude mcp update github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT
217+
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
216218

217219
# In config files (where supported)
218220
"env": {
@@ -356,7 +358,9 @@ For other MCP host applications, please refer to our installation guides:
356358
- **[Claude Code & Claude Desktop](docs/installation-guides/install-claude.md)** - Installation guide for Claude Code and Claude Desktop
357359
- **[Cursor](docs/installation-guides/install-cursor.md)** - Installation guide for Cursor IDE
358360
- **[Google Gemini CLI](docs/installation-guides/install-gemini-cli.md)** - Installation guide for Google Gemini CLI
361+
- **[OpenCode](docs/installation-guides/install-opencode.md)** - Installation guide for the OpenCode terminal agent
359362
- **[Windsurf](docs/installation-guides/install-windsurf.md)** - Installation guide for Windsurf IDE
363+
- **[Zed](docs/installation-guides/install-zed.md)** - Installation guide for Zed editor
360364

361365
For a complete overview of all installation options, see our **[Installation Guides Index](docs/installation-guides)**.
362366

@@ -713,8 +717,8 @@ The following sets of tools are available:
713717
- **list_dependabot_alerts** - List dependabot alerts
714718
- **Required OAuth Scopes**: `security_events`
715719
- **Accepted OAuth Scopes**: `repo`, `security_events`
720+
- `after`: Cursor for pagination. Use the cursor from the previous response. (string, optional)
716721
- `owner`: The owner of the repository. (string, required)
717-
- `page`: Page number for pagination (min 1) (number, optional)
718722
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
719723
- `repo`: The name of the repository. (string, required)
720724
- `severity`: Filter dependabot alerts by severity (string, optional)
@@ -751,7 +755,7 @@ The following sets of tools are available:
751755

752756
- **get_discussion_comments** - Get discussion comments
753757
- **Required OAuth Scopes**: `repo`
754-
- `after`: Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs. (string, optional)
758+
- `after`: Cursor for pagination. Use the cursor from the previous response. (string, optional)
755759
- `discussionNumber`: Discussion Number (number, required)
756760
- `includeReplies`: When true, each top-level comment will include its replies nested within it (up to 100 replies per comment, which is the GitHub API maximum). Defaults to false. (boolean, optional)
757761
- `owner`: Repository owner (string, required)
@@ -765,7 +769,7 @@ The following sets of tools are available:
765769

766770
- **list_discussions** - List discussions
767771
- **Required OAuth Scopes**: `repo`
768-
- `after`: Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs. (string, optional)
772+
- `after`: Cursor for pagination. Use the cursor from the previous response. (string, optional)
769773
- `category`: Optional filter by discussion category ID. If provided, only discussions with this category are listed. (string, optional)
770774
- `direction`: Order direction. (string, optional)
771775
- `orderBy`: Order discussions by field. If provided, the 'direction' also needs to be provided. (string, optional)
@@ -822,7 +826,7 @@ The following sets of tools are available:
822826

823827
<summary><picture><source media="(prefers-color-scheme: dark)" srcset="pkg/octicons/icons/issue-opened-dark.png"><source media="(prefers-color-scheme: light)" srcset="pkg/octicons/icons/issue-opened-light.png"><img src="pkg/octicons/icons/issue-opened-light.png" width="20" height="20" alt="issue-opened"></picture> Issues</summary>
824828

825-
- **add_issue_comment** - Add comment to issue
829+
- **add_issue_comment** - Add comment to issue or pull request
826830
- **Required OAuth Scopes**: `repo`
827831
- `body`: Comment content (string, required)
828832
- `issue_number`: Issue number to comment on (number, required)
@@ -850,7 +854,7 @@ The following sets of tools are available:
850854
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)
851855
- `repo`: The name of the repository (string, required)
852856

853-
- **issue_write** - Create or update issue
857+
- **issue_write** - Create or update issue/pull request
854858
- **Required OAuth Scopes**: `repo`
855859
- `assignees`: Usernames to assign to this issue (string[], optional)
856860
- `body`: Issue body content (string, optional)
@@ -877,7 +881,7 @@ The following sets of tools are available:
877881

878882
- **list_issues** - List issues
879883
- **Required OAuth Scopes**: `repo`
880-
- `after`: Cursor for pagination. Use the endCursor from the previous page's PageInfo for GraphQL APIs. (string, optional)
884+
- `after`: Cursor for pagination. Use the cursor from the previous response. (string, optional)
881885
- `direction`: Order direction. If provided, the 'orderBy' also needs to be provided. (string, optional)
882886
- `labels`: Filter by labels (string[], optional)
883887
- `orderBy`: Order issues by field. If provided, the 'direction' also needs to be provided. (string, optional)
@@ -1028,22 +1032,26 @@ The following sets of tools are available:
10281032
- `project_number`: The project's number. Required for 'list_project_fields', 'list_project_items', and 'list_project_status_updates' methods. (number, optional)
10291033
- `query`: Filter/query string. For list_projects: filter by title text and state (e.g. "roadmap is:open"). For list_project_items: advanced filtering using GitHub's project filtering syntax. (string, optional)
10301034

1031-
- **projects_write** - Modify GitHub Project items
1035+
- **projects_write** - Manage GitHub Projects
10321036
- **Required OAuth Scopes**: `project`
10331037
- `body`: The body of the status update (markdown). Used for 'create_project_status_update' method. (string, optional)
1038+
- `field_name`: The name of the iteration field (e.g. 'Sprint'). Required for 'create_iteration_field' method. (string, optional)
10341039
- `issue_number`: The issue number (use when item_type is 'issue' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional)
10351040
- `item_id`: The project item ID. Required for 'update_project_item' and 'delete_project_item' methods. (number, optional)
10361041
- `item_owner`: The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional)
10371042
- `item_repo`: The name of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional)
10381043
- `item_type`: The item's type, either issue or pull_request. Required for 'add_project_item' method. (string, optional)
1044+
- `iteration_duration`: Duration in days for iterations of the field (e.g. 7 for weekly, 14 for bi-weekly). Required for 'create_iteration_field' method. (number, optional)
1045+
- `iterations`: Custom iterations for 'create_iteration_field' method. Only set this when you need iterations with varying durations, breaks between them, or specific titles. Otherwise omit it: GitHub auto-creates three iterations of 'iteration_duration' days starting on 'start_date', which is the right choice for most cases. (object[], optional)
10391046
- `method`: The method to execute (string, required)
10401047
- `owner`: The project owner (user or organization login). The name is not case sensitive. (string, required)
1041-
- `owner_type`: Owner type (user or org). If not provided, will be automatically detected. (string, optional)
1042-
- `project_number`: The project's number. (number, required)
1048+
- `owner_type`: Owner type (user or org). Required for 'create_project' method. If not provided for other methods, will be automatically detected. (string, optional)
1049+
- `project_number`: The project's number. Required for all methods except 'create_project'. (number, optional)
10431050
- `pull_request_number`: The pull request number (use when item_type is 'pull_request' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional)
1044-
- `start_date`: The start date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method. (string, optional)
1051+
- `start_date`: Start date in YYYY-MM-DD format. Used for 'create_project_status_update' and 'create_iteration_field' methods. (string, optional)
10451052
- `status`: The status of the project. Used for 'create_project_status_update' method. (string, optional)
10461053
- `target_date`: The target date of the status update in YYYY-MM-DD format. Used for 'create_project_status_update' method. (string, optional)
1054+
- `title`: The project title. Required for 'create_project' method. (string, optional)
10471055
- `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"}. Required for 'update_project_item' method. (object, optional)
10481056

10491057
</details>
@@ -1114,10 +1122,11 @@ The following sets of tools are available:
11141122
2. get_diff - Get the diff of a pull request.
11151123
3. get_status - Get combined commit status of a head commit in a pull request.
11161124
4. get_files - Get the list of files changed in a pull request. Use with pagination parameters to control the number of results returned.
1117-
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.
1118-
6. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method. Use with pagination parameters to control the number of results returned.
1119-
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.
1120-
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.
1125+
5. get_commits - Get the list of commits on a pull request. Use with pagination parameters to control the number of results returned.
1126+
6. 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.
1127+
7. get_reviews - Get the reviews on a pull request. When asked for review comments, use get_review_comments method. Use with pagination parameters to control the number of results returned.
1128+
8. 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.
1129+
9. 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.
11211130
(string, required)
11221131
- `owner`: Repository owner (string, required)
11231132
- `page`: Page number for pagination (min 1) (number, optional)
@@ -1155,7 +1164,7 @@ The following sets of tools are available:
11551164
- `owner`: Repository owner (string, required)
11561165
- `pullNumber`: Pull request number to update (number, required)
11571166
- `repo`: Repository name (string, required)
1158-
- `reviewers`: GitHub usernames to request reviews from (string[], optional)
1167+
- `reviewers`: GitHub usernames or ORG/team-slug team reviewers to request reviews from (string[], optional)
11591168
- `state`: New state (string, optional)
11601169
- `title`: New title (string, optional)
11611170

@@ -1213,7 +1222,7 @@ The following sets of tools are available:
12131222

12141223
- **get_commit** - Get commit details
12151224
- **Required OAuth Scopes**: `repo`
1216-
- `include_diff`: Whether to include file diffs and stats in the response. Default is true. (boolean, optional)
1225+
- `detail`: Level of detail to include for changed files. "none" omits stats and files entirely. "stats" (default) includes per-file metadata: filename, status, and lines-of-code counts (additions, deletions, changes), with no patch content. "full_patch" additionally includes the unified diff content for each file and can be very large. (string, optional)
12171226
- `owner`: Repository owner (string, required)
12181227
- `page`: Page number for pagination (min 1) (number, optional)
12191228
- `perPage`: Results per page for pagination (min 1, max 100) (number, optional)

cmd/github-mcp-server/generate_docs.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,11 @@ func generateRemoteToolsetsDoc() string {
365365
buf.WriteString("| Name | Description | API URL | 1-Click Install (VS Code) | Read-only Link | 1-Click Read-only Install (VS Code) |\n")
366366
buf.WriteString("| ---- | ----------- | ------- | ------------------------- | -------------- | ----------------------------------- |\n")
367367

368-
// Add "all" toolset first (special case)
369-
allIcon := octiconImg("apps", "../")
370-
fmt.Fprintf(&buf, "| %s<br>`all` | All available GitHub MCP tools | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2F%%22%%7D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Freadonly%%22%%7D) |\n", allIcon)
368+
// Add "default" and "all" meta toolsets first (special cases). The base
369+
// URL serves the default toolset; /x/all enables every toolset at once.
370+
metaIcon := octiconImg("apps", "../")
371+
fmt.Fprintf(&buf, "| %s<br>`default` | Default toolset | https://api.githubcopilot.com/mcp/ | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2F%%22%%7D) | [read-only](https://api.githubcopilot.com/mcp/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=github&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Freadonly%%22%%7D) |\n", metaIcon)
372+
fmt.Fprintf(&buf, "| %s<br>`all` | All available GitHub MCP tools | https://api.githubcopilot.com/mcp/x/all | [Install](https://insiders.vscode.dev/redirect/mcp/install?name=gh-all&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Fx%%2Fall%%22%%7D) | [read-only](https://api.githubcopilot.com/mcp/x/all/readonly) | [Install read-only](https://insiders.vscode.dev/redirect/mcp/install?name=gh-all&config=%%7B%%22type%%22%%3A%%20%%22http%%22%%2C%%22url%%22%%3A%%20%%22https%%3A%%2F%%2Fapi.githubcopilot.com%%2Fmcp%%2Fx%%2Fall%%2Freadonly%%22%%7D) |\n", metaIcon)
371373

372374
// AvailableToolsets() returns toolsets that have tools, sorted by ID
373375
// Exclude context (handled separately)

0 commit comments

Comments
 (0)