GitHub MCP server
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
source repositorytool list publishedupdated recentlyhosted endpointactive entryno credentials31,988 stars
Local or hostedCOMMUNITY Developer Tools
Details
- Registry name
- io.github.github/github-mcp-server
- Publisher
- github
- Version
- 1.12.0
- Distribution
- Local or hosted. both options are published. Install the package to run it yourself, or connect to the publisher's hosted URL and skip the install.
- Transports
- stdio, streamable-http
- Source repository
- github/github-mcp-server
- Website
- -
- First published
- Registry updated
- Credentials required
- None declared
- Schema generation
- 2025-12-11
Packages
oci ghcr.io/github/github-mcp-server:1.12.0
- Version
- -
- Transport
- stdio
- Runtime
- not specified
Hosted endpoints
Endpoint 1
- URL
- https://api.githubcopilot.com/mcp/
- Transport
- streamable-http
- Authentication
- api-key
Install GitHub
Pick your client. The configuration below is generated from this server's published package and endpoint data.
Claude Code command line
Configuration file: .mcp.json or ~/.claude.json
claude mcp add github-github --transport http https://api.githubcopilot.com/mcp/Nothing to install. The client connects to the publisher's URL.
claude mcp add github-github -- docker 127.0.0.1:8085:8085 GITHUB_OAUTH_CALLBACK_PORT=8085 GITHUB_PERSONAL_ACCESS_TOKEN={token} run -i --rm ghcr.io/github/github-mcp-server:1.12.0Check it worked: Run claude mcp list and check the server reports connected.
Cursor IDE
Configuration file: .cursor/mcp.json or ~/.cursor/mcp.json
{
"mcpServers": {
"github-github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}Nothing to install. The client connects to the publisher's URL.
{
"mcpServers": {
"github-github": {
"command": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
}
}
}Check it worked: The server appears under Settings, then MCP with a green dot.
Claude Desktop desktop app
Configuration file: ~/Library/Application Support/Claude/claude_desktop_config.json or %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"github-github": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.githubcopilot.com/mcp/"]
}
}
}Nothing to install. The client connects to the publisher's URL.
{
"mcpServers": {
"github-github": {
"command": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
}
}
}Quit the app completely and reopen it.
Check it worked: Look for the tools icon in the message composer.
Visual Studio Code IDE
Configuration file: .vscode/mcp.json or user settings.json under mcp
{
"servers": {
"github-github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}Nothing to install. The client connects to the publisher's URL.
{
"servers": {
"github-github": {
"type": "stdio",
"command": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
}
}
}Check it worked: Open the Copilot chat tools picker and confirm the server is listed.
Codex CLI command line
Configuration file: ~/.codex/config.toml
codex mcp add github-github --transport http https://api.githubcopilot.com/mcp/Nothing to install. The client connects to the publisher's URL.
codex mcp add github-github -- docker 127.0.0.1:8085:8085 GITHUB_OAUTH_CALLBACK_PORT=8085 GITHUB_PERSONAL_ACCESS_TOKEN={token} run -i --rm ghcr.io/github/github-mcp-server:1.12.0Check it worked: Run codex mcp list and check the server is present.
More clients (9), including automation platforms
ChatGPT web app
This client does not support the transport this server offers.
Cline IDE
Configuration file: cline_mcp_settings.json, reachable from the MCP Servers pane
{
"mcpServers": {
"github-github": {
"type": "streamableHttp",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}Nothing to install. The client connects to the publisher's URL.
{
"mcpServers": {
"github-github": {
"command": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
}
}
}Check it worked: The server appears in the MCP Servers pane with its tool count.
Goose desktop app
Configuration file: ~/.config/goose/config.yaml
extensions:
github-github:
type: streamable_http
uri: https://api.githubcopilot.com/mcp/
enabled: trueNothing to install. The client connects to the publisher's URL.
extensions:
github-github:
type: stdio
cmd: docker
args: ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
enabled: trueCheck it worked: Run goose session and confirm the extension loads.
LangChain agent framework
Install the MCP adapter package and construct a client in code
client = MultiServerMCPClient({
"github-github": {
"url": "https://api.githubcopilot.com/mcp/",
"transport": "streamable_http",
}
})Nothing to install. The client connects to the publisher's URL.
client = MultiServerMCPClient({
"github-github": {
"command": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"],
"transport": "stdio",
}
})Check it worked: Print the loaded tool list before running the agent.
Make automation platform
This client does not support the transport this server offers.
n8n automation platform
This client does not support the transport this server offers.
Windsurf IDE
Configuration file: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"github-github": {
"serverUrl": "https://api.githubcopilot.com/mcp/"
}
}
}Nothing to install. The client connects to the publisher's URL.
{
"mcpServers": {
"github-github": {
"command": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
}
}
}Check it worked: The server appears in the Cascade plugin list.
Zapier automation platform
This client does not support the transport this server offers.
Zed IDE
Configuration file: ~/.config/zed/settings.json
{
"context_servers": {
"github-github": {
"command": {
"path": "docker",
"args": ["127.0.0.1:8085:8085", "GITHUB_OAUTH_CALLBACK_PORT=8085", "GITHUB_PERSONAL_ACCESS_TOKEN={token}", "run", "-i", "--rm", "ghcr.io/github/github-mcp-server:1.12.0"]
}
}
}
}Check it worked: The agent panel lists the server under context servers.
Tools
40 tools, from the publisher's manifest. A parameter marked with an asterisk is required. By intent: 23 answer, 15 act and 2 not classified.
Intent says what a tool does with the world. Answer reads and returns information and changes nothing. Act changes state somewhere, by writing, creating, sending or deleting. Transact moves money, buys something or commits to a cost. A value marked declared is the publisher's own annotation on their own tool. A value marked inferred is this catalogue reading the tool name and description, and is not a claim by the publisher. Where neither settles it, the tool is left unclassified rather than guessed at.
| Tool | What it does | Intent | Parameters |
|---|---|---|---|
| add_comment_to_pending_review | Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure). | act inferred | body, owner, path, pullNumber, repo, subjectType, line, side |
| add_issue_comment | Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments. | act inferred | body, issue_number, owner, repo |
| assign_copilot_to_issue | Assign Copilot to a specific issue in a GitHub repository. This tool can help with the following outcomes: - a Pull Request created with source code changes to resolve the issue More information can be found at: - https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot | act inferred | issueNumber, owner, repo |
| create_branch | Create a new branch in a GitHub repository | act inferred | branch, owner, repo, from_branch |
| create_or_update_file | Create or update a single file in a GitHub repository. If updating, you must provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations. | act inferred | branch, content, message, owner, path, repo, sha |
| create_pull_request | Create a new pull request in a GitHub repository. | act inferred | base, head, owner, repo, title, body, draft, maintainer_can_modify |
| create_repository | Create a new GitHub repository in your account or specified organization | act inferred | name, autoInit, description, organization, private |
| delete_file | Delete a file from a GitHub repository destructive | act declared | branch, message, owner, path, repo |
| fork_repository | Fork a GitHub repository to your account or specified organization | not classified | owner, repo, organization |
| get_commit | Get details for a commit from a GitHub repository read only | answer declared | owner, repo, sha, include_diff, page, perPage |
| get_file_contents | Get the contents of a file or directory from a GitHub repository read only | answer declared | owner, repo, path, ref, sha |
| get_label | Get a specific label from a repository. read only | answer declared | name, owner, repo |
| get_latest_release | Get the latest release in a GitHub repository read only | answer declared | owner, repo |
| get_me | 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. read only | answer declared | not published |
| get_release_by_tag | Get a specific release by its tag name in a GitHub repository read only | answer declared | owner, repo, tag |
| get_tag | Get details about a specific git tag in a GitHub repository read only | answer declared | owner, repo, tag |
| get_team_members | Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials read only | answer declared | org, team_slug |
| get_teams | Get details of the teams the user is a member of. Limited to organizations accessible with current credentials read only | answer declared | user |
| issue_read | Get information about a specific issue in a GitHub repository. read only | answer declared | issue_number, method, owner, repo, page, perPage |
| issue_write | Create a new or update an existing issue in a GitHub repository. | act inferred | method, owner, repo, assignees, body, duplicate_of, issue_number, labels |
| list_branches | List branches in a GitHub repository read only | answer declared | owner, repo, page, perPage |
| list_commits | Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100). read only | answer declared | owner, repo, author, page, perPage, sha |
| list_issue_types | List supported issue types for repository owner (organization). read only | answer declared | owner |
| list_issues | List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter. read only | answer declared | owner, repo, after, direction, labels, orderBy, perPage, since |
| list_pull_requests | 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. read only | answer declared | owner, repo, base, direction, head, page, perPage, sort |
| list_releases | List releases in a GitHub repository read only | answer declared | owner, repo, page, perPage |
| list_tags | List git tags in a GitHub repository read only | answer declared | owner, repo, page, perPage |
| merge_pull_request | Merge a pull request in a GitHub repository. | act inferred | owner, pullNumber, repo, commit_message, commit_title, merge_method |
| pull_request_read | Get information on a specific pull request in GitHub repository. read only | answer declared | method, owner, pullNumber, repo, page, perPage |
| pull_request_review_write | Create and/or submit, delete review of a pull request. Available methods: - create: Create a new review of a pull request. If "event" parameter is provided, the review is submitted. If "event" is omitted, a pending review is created. - submit_pending: Submit an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. The "body" and "event" parameters are used when submitting the review. - delete_pending: Delete an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. | act inferred | method, owner, pullNumber, repo, body, commitID, event |
| push_files | Push multiple files to a GitHub repository in a single commit | act inferred | branch, files, message, owner, repo |
| request_copilot_review | Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer. | not classified | owner, pullNumber, repo |
| search_code | Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns. read only | answer declared | query, order, page, perPage, sort |
| search_issues | Search for issues in GitHub repositories using issues search syntax already scoped to is:issue read only | answer declared | query, order, owner, page, perPage, repo, sort |
| search_pull_requests | Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr read only | answer declared | query, order, owner, page, perPage, repo, sort |
| search_repositories | Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub. read only | answer declared | query, minimal_output, order, page, perPage, sort |
| search_users | Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members. read only | answer declared | query, order, page, perPage, sort |
| sub_issue_write | Add a sub-issue to a parent issue in a GitHub repository. | act inferred | issue_number, method, owner, repo, sub_issue_id, after_id, before_id, replace_parent |
| update_pull_request | Update an existing pull request in a GitHub repository. | act inferred | owner, pullNumber, repo, base, body, draft, maintainer_can_modify, reviewers |
| update_pull_request_branch | Update the branch of a pull request with the latest changes from the base branch. | act inferred | owner, pullNumber, repo, expectedHeadSha |
Command line alternative
None found. The published package declares no executable and no matching Homebrew formula exists, so the MCP server appears to be the only route. This is a negative result from automated checks, not a statement from the publisher.
Repository
Read from github on 2026-08-06.
- Stars
- 31,988
- Forks
- 4,734
- Open issues
- 364
- Primary language
- Go
- Licence
- MIT
- Last commit
- 2026-08-06
- Latest release
- v1.8.0
- Created
- 2025-03-04
- Repository files
- readme, license, serverJson, dockerfile
Security, privacy and enterprise use
The publisher has not published a website, so there is no site to read policies from. For a server distributed only as source, the repository is the place to look.
Publisher
The publisher has not disclosed a website in their registry entry, so there is nothing to read a profile from.
Frequently asked questions
- What does the GitHub MCP server do?
- Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
- Does GitHub run locally or as a hosted service?
- Both options are published. You can run the package locally, or connect to the hosted endpoint if you would rather not install anything.
- How do I install GitHub?
- Point your client at the hosted endpoint https://api.githubcopilot.com/mcp/. No local install is needed.
- Does GitHub need an API key?
- No credentials are declared in the registry entry for GitHub. Check the source repository before assuming it runs without configuration.
- Which transports does GitHub support?
- stdio and streamable HTTP.
- Where is the source code for GitHub?
- The publisher lists https://github.com/github/github-mcp-server as the source repository.
- Who publishes GitHub?
- It is published under io.github.github, a community namespace tied to the GitHub account github. Community servers are not reviewed before they appear in the registry.
- Which version of GitHub is listed here?
- Version 1.12.0, taken from the latest registry entry.
Other servers in Developer Tools
ASP.NET Core Debugger, MCP Server for AI Agents
MCP server giving AI agents interactive.NET / ASP.NET Core debugging via netcoredbg + DAP.Routebase
Design, mock, test, document and monitor your APIs from one living OpenAPI spec.Portolan
Portolan: an MCP server that charts codebases - Chart store, Harbor expeditions, Chart Room.Wayfinder
Read local AI coding paths, decisions, and branches as an in-host voyage map.Hotin
What's hot in AI right now, ranked with receipts from GitHub, HN, npm and Hugging Face.Kosis Openapi
Korean official statistics (KOSIS), tables, metadata and observations.Synaptic Code Intelligence
Code intelligence for repository graphs, change impact, test selection, and engineering memory.EAN/UPC digit shape
EAN/UPC digit shape.