Skip to content

Commit 31511c3

Browse files
Merge branch 'main' into main
2 parents 8e5cd11 + f51096d commit 31511c3

File tree

68 files changed

+4640
-48
lines changed

Some content is hidden

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

68 files changed

+4640
-48
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.24.3-alpine AS build
1+
FROM golang:1.24.4-alpine AS build
22
ARG VERSION="dev"
33

44
# Set the working directory

README.md

Lines changed: 268 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,27 +26,100 @@ The remote GitHub MCP Server is hosted by GitHub and provides the easiest method
2626

2727
### Usage with VS Code
2828

29-
For quick installation, use one of the one-click install buttons above. Once you complete that flow, toggle Agent mode (located by the Copilot Chat text input) and the server will start.
29+
For quick installation, use one of the one-click install buttons above. Once you complete that flow, toggle Agent mode (located by the Copilot Chat text input) and the server will start. Make sure you're using [VS Code 1.101](https://code.visualstudio.com/updates/v1_101) or [later](https://code.visualstudio.com/updates) for remote MCP and OAuth support.
3030

31-
### Usage in other MCP Hosts
3231

33-
For MCP Hosts that have been [configured to use the remote GitHub MCP Server](docs/host-integration.md), add the following JSON block to the host's configuration:
32+
Alternatively, to manually configure VS Code, choose the appropriate JSON block from the examples below and add it to your host configuration:
3433

34+
<table>
35+
<tr><th>Using OAuth</th><th>Using a GitHub PAT</th></tr>
36+
<tr><th align=left colspan=2>VS Code (version 1.101 or greater)</th></tr>
37+
<tr valign=top>
38+
<td>
39+
3540
```json
3641
{
37-
"mcp": {
38-
"servers": {
39-
"github": {
40-
"type": "http",
41-
"url": "https://api.githubcopilot.com/mcp/"
42+
"servers": {
43+
"github": {
44+
"type": "http",
45+
"url": "https://api.githubcopilot.com/mcp/"
46+
}
47+
}
48+
}
49+
```
50+
51+
</td>
52+
<td>
53+
54+
```json
55+
{
56+
"servers": {
57+
"github": {
58+
"type": "http",
59+
"url": "https://api.githubcopilot.com/mcp/",
60+
"headers": {
61+
"Authorization": "Bearer ${input:github_mcp_pat}"
4262
}
4363
}
64+
},
65+
"inputs": [
66+
{
67+
"type": "promptString",
68+
"id": "github_mcp_pat",
69+
"description": "GitHub Personal Access Token",
70+
"password": true
71+
}
72+
]
73+
}
74+
```
75+
76+
</td>
77+
</tr>
78+
</table>
79+
80+
### Usage in other MCP Hosts
81+
82+
For MCP Hosts that are [Remote MCP-compatible](docs/host-integration.md), choose the appropriate JSON block from the examples below and add it to your host configuration:
83+
84+
<table>
85+
<tr><th>Using OAuth</th><th>Using a GitHub PAT</th></tr>
86+
<tr valign=top>
87+
<td>
88+
89+
```json
90+
{
91+
"mcpServers": {
92+
"github": {
93+
"url": "https://api.githubcopilot.com/mcp/"
94+
}
95+
}
96+
}
97+
```
98+
99+
</td>
100+
<td>
101+
102+
```json
103+
{
104+
"mcpServers": {
105+
"github": {
106+
"url": "https://api.githubcopilot.com/mcp/",
107+
"authorization_token": "Bearer <your GitHub PAT>"
108+
}
44109
}
45110
}
46111
```
47112

113+
</td>
114+
</tr>
115+
</table>
116+
48117
> **Note:** The exact configuration format may vary by host. Refer to your host's documentation for the correct syntax and location for remote MCP server setup.
49118
119+
### Configuration
120+
121+
See [Remote Server Documentation](docs/remote-server.md) on how to pass additional configuration settings to the remote GitHub MCP Server.
122+
50123
---
51124

52125
## Local GitHub MCP Server
@@ -192,6 +265,7 @@ The following sets of tools are available (all are on by default):
192265

193266
| Toolset | Description |
194267
| ----------------------- | ------------------------------------------------------------- |
268+
| `actions` | GitHub Actions workflows and CI/CD operations |
195269
| `context` | **Strongly recommended**: Tools that provide context about the current user and GitHub context you are operating in |
196270
| `code_security` | Code scanning alerts and security features |
197271
| `issues` | Issue-related tools (create, read, update, comment) |
@@ -210,12 +284,12 @@ To specify toolsets you want available to the LLM, you can pass an allow-list in
210284
1. **Using Command Line Argument**:
211285

212286
```bash
213-
github-mcp-server --toolsets repos,issues,pull_requests,code_security
287+
github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
214288
```
215289

216290
2. **Using Environment Variable**:
217291
```bash
218-
GITHUB_TOOLSETS="repos,issues,pull_requests,code_security" ./github-mcp-server
292+
GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
219293
```
220294

221295
The environment variable `GITHUB_TOOLSETS` takes precedence over the command line argument if both are provided.
@@ -227,7 +301,7 @@ When using Docker, you can pass the toolsets as environment variables:
227301
```bash
228302
docker run -i --rm \
229303
-e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
230-
-e GITHUB_TOOLSETS="repos,issues,pull_requests,code_security,experiments" \
304+
-e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security,experiments" \
231305
ghcr.io/github/github-mcp-server
232306
```
233307

@@ -439,6 +513,14 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
439513
- `page`: Page number (number, optional)
440514
- `perPage`: Results per page (number, optional)
441515

516+
- **assign_copilot_to_issue** - Assign Copilot to a specific issue in a GitHub repository
517+
518+
- `owner`: Repository owner (string, required)
519+
- `repo`: Repository name (string, required)
520+
- `issueNumber`: Issue number (number, required)
521+
- _Note_: This tool can help with creating a Pull Request with source code changes to resolve the issue. More information can be found at [GitHub Copilot documentation](https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot)
522+
523+
442524
### Pull Requests
443525

444526
- **get_pull_request** - Get details of a specific pull request
@@ -497,6 +579,12 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
497579
- `repo`: Repository name (string, required)
498580
- `pullNumber`: Pull request number (number, required)
499581

582+
- **get_pull_request_diff** - Get the diff of a pull request
583+
584+
- `owner`: Repository owner (string, required)
585+
- `repo`: Repository name (string, required)
586+
- `pullNumber`: Pull request number (number, required)
587+
500588
- **create_pull_request_review** - Create a review on a pull request review
501589

502590
- `owner`: Repository owner (string, required)
@@ -509,6 +597,53 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
509597
- For inline comments: provide `path`, `position` (or `line`), and `body`
510598
- For multi-line comments: provide `path`, `start_line`, `line`, optional `side`/`start_side`, and `body`
511599

600+
- **create_pending_pull_request_review** - Create a pending review for a pull request that can be submitted later
601+
602+
- `owner`: Repository owner (string, required)
603+
- `repo`: Repository name (string, required)
604+
- `pullNumber`: Pull request number (number, required)
605+
- `commitID`: SHA of commit to review (string, optional)
606+
607+
- **add_pull_request_review_comment_to_pending_review** - Add a comment to the requester's latest pending pull request review
608+
609+
- `owner`: Repository owner (string, required)
610+
- `repo`: Repository name (string, required)
611+
- `pullNumber`: Pull request number (number, required)
612+
- `path`: The relative path to the file that necessitates a comment (string, required)
613+
- `body`: The text of the review comment (string, required)
614+
- `subjectType`: The level at which the comment is targeted (string, required)
615+
- Enum: "FILE", "LINE"
616+
- `line`: The line of the blob in the pull request diff that the comment applies to (number, optional)
617+
- `side`: The side of the diff to comment on (string, optional)
618+
- Enum: "LEFT", "RIGHT"
619+
- `startLine`: For multi-line comments, the first line of the range (number, optional)
620+
- `startSide`: For multi-line comments, the starting side of the diff (string, optional)
621+
- Enum: "LEFT", "RIGHT"
622+
623+
- **submit_pending_pull_request_review** - Submit the requester's latest pending pull request review
624+
625+
- `owner`: Repository owner (string, required)
626+
- `repo`: Repository name (string, required)
627+
- `pullNumber`: Pull request number (number, required)
628+
- `event`: The event to perform (string, required)
629+
- Enum: "APPROVE", "REQUEST_CHANGES", "COMMENT"
630+
- `body`: The text of the review comment (string, optional)
631+
632+
- **delete_pending_pull_request_review** - Delete the requester's latest pending pull request review
633+
634+
- `owner`: Repository owner (string, required)
635+
- `repo`: Repository name (string, required)
636+
- `pullNumber`: Pull request number (number, required)
637+
638+
- **create_and_submit_pull_request_review** - Create and submit a review for a pull request without review comments
639+
640+
- `owner`: Repository owner (string, required)
641+
- `repo`: Repository name (string, required)
642+
- `pullNumber`: Pull request number (number, required)
643+
- `body`: Review comment text (string, required)
644+
- `event`: Review action ('APPROVE', 'REQUEST_CHANGES', 'COMMENT') (string, required)
645+
- `commitID`: SHA of commit to review (string, optional)
646+
512647
- **create_pull_request** - Create a new pull request
513648

514649
- `owner`: Repository owner (string, required)
@@ -564,6 +699,13 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
564699
- `branch`: Branch name (string, optional)
565700
- `sha`: File SHA if updating (string, optional)
566701

702+
- **delete_file** - Delete a file from a GitHub repository
703+
- `owner`: Repository owner (string, required)
704+
- `repo`: Repository name (string, required)
705+
- `path`: Path to the file to delete (string, required)
706+
- `message`: Commit message (string, required)
707+
- `branch`: Branch to delete the file from (string, required)
708+
567709
- **list_branches** - List branches in a GitHub repository
568710
- `owner`: Repository owner (string, required)
569711
- `repo`: Repository name (string, required)
@@ -622,6 +764,17 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
622764
- `page`: Page number, for files in the commit (number, optional)
623765
- `perPage`: Results per page, for files in the commit (number, optional)
624766

767+
- **get_tag** - Get details about a specific git tag in a GitHub repository
768+
- `owner`: Repository owner (string, required)
769+
- `repo`: Repository name (string, required)
770+
- `tag`: Tag name (string, required)
771+
772+
- **list_tags** - List git tags in a GitHub repository
773+
- `owner`: Repository owner (string, required)
774+
- `repo`: Repository name (string, required)
775+
- `page`: Page number (number, optional)
776+
- `perPage`: Results per page (number, optional)
777+
625778
- **search_code** - Search for code across GitHub repositories
626779
- `query`: Search query (string, required)
627780
- `sort`: Sort field (string, optional)
@@ -638,6 +791,110 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
638791
- `page`: Page number (number, optional)
639792
- `perPage`: Results per page (number, optional)
640793

794+
### Actions
795+
796+
- **list_workflows** - List workflows in a repository
797+
798+
- `owner`: Repository owner (string, required)
799+
- `repo`: Repository name (string, required)
800+
- `page`: Page number (number, optional)
801+
- `perPage`: Results per page (number, optional)
802+
803+
- **list_workflow_runs** - List workflow runs for a specific workflow
804+
805+
- `owner`: Repository owner (string, required)
806+
- `repo`: Repository name (string, required)
807+
- `workflow_id`: Workflow ID or filename (string, required)
808+
- `branch`: Filter by branch name (string, optional)
809+
- `event`: Filter by event type (string, optional)
810+
- `status`: Filter by run status (string, optional)
811+
- `page`: Page number (number, optional)
812+
- `perPage`: Results per page (number, optional)
813+
814+
- **run_workflow** - Trigger a workflow via workflow_dispatch event
815+
816+
- `owner`: Repository owner (string, required)
817+
- `repo`: Repository name (string, required)
818+
- `workflow_id`: Workflow ID or filename (string, required)
819+
- `ref`: Git reference (branch, tag, or SHA) (string, required)
820+
- `inputs`: Input parameters for the workflow (object, optional)
821+
822+
- **get_workflow_run** - Get details of a specific workflow run
823+
824+
- `owner`: Repository owner (string, required)
825+
- `repo`: Repository name (string, required)
826+
- `run_id`: Workflow run ID (number, required)
827+
828+
- **get_workflow_run_logs** - Download logs for a workflow run
829+
830+
- `owner`: Repository owner (string, required)
831+
- `repo`: Repository name (string, required)
832+
- `run_id`: Workflow run ID (number, required)
833+
834+
- **list_workflow_jobs** - List jobs for a workflow run
835+
836+
- `owner`: Repository owner (string, required)
837+
- `repo`: Repository name (string, required)
838+
- `run_id`: Workflow run ID (number, required)
839+
- `filter`: Filter by job status (string, optional)
840+
- `page`: Page number (number, optional)
841+
- `perPage`: Results per page (number, optional)
842+
843+
- **get_job_logs** - Download logs for a specific workflow job or efficiently get all failed job logs for a workflow run
844+
845+
- `owner`: Repository owner (string, required)
846+
- `repo`: Repository name (string, required)
847+
- `job_id`: Job ID (number, required for single job logs)
848+
- `run_id`: Workflow run ID (number, required when using failed_only)
849+
- `failed_only`: When true, gets logs for all failed jobs in run_id (boolean, optional)
850+
- `return_content`: Returns actual log content instead of URLs (boolean, optional)
851+
852+
- **rerun_workflow_run** - Re-run an entire workflow
853+
854+
- `owner`: Repository owner (string, required)
855+
- `repo`: Repository name (string, required)
856+
- `run_id`: Workflow run ID (number, required)
857+
- `enable_debug_logging`: Enable debug logging for the re-run (boolean, optional)
858+
859+
- **rerun_failed_jobs** - Re-run only the failed jobs in a workflow run
860+
861+
- `owner`: Repository owner (string, required)
862+
- `repo`: Repository name (string, required)
863+
- `run_id`: Workflow run ID (number, required)
864+
- `enable_debug_logging`: Enable debug logging for the re-run (boolean, optional)
865+
866+
- **cancel_workflow_run** - Cancel a running workflow
867+
868+
- `owner`: Repository owner (string, required)
869+
- `repo`: Repository name (string, required)
870+
- `run_id`: Workflow run ID (number, required)
871+
872+
- **list_workflow_run_artifacts** - List artifacts from a workflow run
873+
874+
- `owner`: Repository owner (string, required)
875+
- `repo`: Repository name (string, required)
876+
- `run_id`: Workflow run ID (number, required)
877+
- `page`: Page number (number, optional)
878+
- `perPage`: Results per page (number, optional)
879+
880+
- **download_workflow_run_artifact** - Get download URL for a specific artifact
881+
882+
- `owner`: Repository owner (string, required)
883+
- `repo`: Repository name (string, required)
884+
- `artifact_id`: Artifact ID (number, required)
885+
886+
- **delete_workflow_run_logs** - Delete logs for a workflow run
887+
888+
- `owner`: Repository owner (string, required)
889+
- `repo`: Repository name (string, required)
890+
- `run_id`: Workflow run ID (number, required)
891+
892+
- **get_workflow_run_usage** - Get usage metrics for a workflow run
893+
894+
- `owner`: Repository owner (string, required)
895+
- `repo`: Repository name (string, required)
896+
- `run_id`: Workflow run ID (number, required)
897+
641898
### Code Scanning
642899

643900
- **get_code_scanning_alert** - Get a code scanning alert
@@ -680,7 +937,6 @@ export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description
680937
- `page`: Page number (number, optional)
681938
- `perPage`: Results per page (number, optional)
682939

683-
684940
- **get_notification_details** – Get detailed information for a specific GitHub notification
685941
- `notificationID`: The ID of the notification (string, required)
686942

cmd/mcpcurl/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ The `--stdio-server-cmd` flag is required for all commands and specifies the com
3131

3232
### Examples
3333

34-
List available tools in Anthropic's MCP server:
34+
List available tools in Github's MCP server:
3535

3636
```console
3737
% ./mcpcurl --stdio-server-cmd "docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github" tools --help

0 commit comments

Comments
 (0)