
GitHub
Full GitHub API access: repos, PRs, issues, and code search.
Quick answer
What it does
Provides access to GitHub repositories, issues, pull requests, commits, branches, and code search via the GitHub REST and GraphQL APIs.
Best for
- Automated issue creation
- PR review and management
- Code search across repos
- Repository browsing
Not for
- GitLab or Bitbucket workflows
- Fully local git-only setups
Source: top-mcps.com/mcp/github — verified Aug 2026
Setup recipe
Pick your client, then follow the three steps.
- 1
Install
claude_desktop_config.jsonjson{ "mcpServers": { "github": { "command": "npx", "args": [ "-y", "mcp-remote", "https://api.githubcopilot.com/mcp/" ] } } }Claude Desktop launches stdio servers, so mcp-remote bridges to the hosted endpoint and opens the sign-in in your browser. On Pro, Max, Team and Enterprise you can skip the file: Settings → Connectors → Add custom connector → https://api.githubcopilot.com/mcp/. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
CLI or .mcp.jsonshellclaude mcp add --transport http github https://api.githubcopilot.com/mcp/Then run /mcp inside Claude Code to finish the sign-in. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
.cursor/mcp.jsonjson{ "mcpServers": { "github": { "url": "https://api.githubcopilot.com/mcp/" } } }Global path: ~/.cursor/mcp.json. Cursor shows "Needs login" once it connects — click it to authorize. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
.vscode/mcp.jsonjsonc{ "servers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp/" } } }VS Code uses the "servers" key. Run MCP: List Servers → Start Server and allow the sign-in. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
~/.codeium/windsurf/mcp_config.jsonjson{ "mcpServers": { "github": { "serverUrl": "https://api.githubcopilot.com/mcp/" } } }Windsurf uses "serverUrl" for hosted servers. Open via Cascade → hammer icon → Configure. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
cline_mcp_settings.jsonjson{ "mcpServers": { "github": { "command": "npx", "args": [ "-y", "mcp-remote", "https://api.githubcopilot.com/mcp/" ] } } }Bridged through mcp-remote. Open via the Cline sidebar → MCP Servers → Edit. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
~/.continue/config.jsonjson{ "experimental": { "modelContextProtocolServers": [ { "transport": { "type": "streamable-http", "url": "https://api.githubcopilot.com/mcp/" } } ] } }Continue takes the hosted URL directly in the transport block. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
CLIshellcodex mcp add github --url https://api.githubcopilot.com/mcp/Codex detects OAuth support and opens the browser to authorize. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
~/.config/zed/settings.jsonjsonc{ "context_servers": { "github": { "command": { "path": "npx", "args": [ "-y", "mcp-remote", "https://api.githubcopilot.com/mcp/" ] } } } }Bridged through mcp-remote under "context_servers". Settings live-reload on save. This endpoint expects an API key, usually as an Authorization header — set it where your client configures headers (mcp-remote: add --header "Authorization: Bearer <key>").
ChatGPT → Settings → Connectors (remote URL)json{ "name": "GitHub", "transport": "http", "url": "https://api.githubcopilot.com/mcp/" }Paste this into Settings → Connectors → Add custom connector. Requires ChatGPT Pro / Team / Enterprise / Edu with Developer mode enabled.
- 2
Set required secrets
Set
GITHUB_PERSONAL_ACCESS_TOKENin your shell environment before launching your MCP client. - 3
Try a minimum working prompt
Open a draft PR that adds a CI-status README badge
On github.com/<owner>/<repo>, open a draft pull request from a new branch `readme-badge` that adds a GitHub Actions status badge for the `ci.yml` workflow to the top of README.md. Link the badge to the Actions tab. Do not merge — leave it as draft for me to review.Tested with: Claude Desktop, Claude Code, Cursor.
Tools & permissions
| Tool | Description | Args | Side effects |
|---|---|---|---|
get_file_contents | Read a file or directory from a repository. | — | Read |
create_or_update_file | Create or update a single file in a repository. | — | Write |
push_files | Push several files in one commit. | — | Write |
delete_file | Delete a file from a repository. | — | Write |
search_repositories | Search GitHub repositories. | — | Read |
search_code | Search code across GitHub. | — | Read |
search_issues | Search issues. | — | Read |
search_pull_requests | Search pull requests. | — | Read |
issue_read | Read an issue, its comments, labels, or sub-issues. | — | Read |
issue_write | Create or update an issue. This is how issues are created — there is no create_issue tool. | — | Write |
list_issues | List issues in a repository. | — | Read |
add_issue_comment | Comment on an issue. | — | Write |
pull_request_read | Read a pull request, its diff, files, reviews, or status. | — | Read |
pull_request_review_write | Create, submit, or dismiss a pull-request review. | — | Write |
create_pull_request | Open a pull request. | — | Write |
update_pull_request | Update an open pull request. | — | Write |
merge_pull_request | Merge a pull request. | — | Write |
list_pull_requests | List pull requests in a repository. | — | Read |
create_branch | Create a branch. | — | Write |
list_branches | List branches in a repository. | — | Read |
list_commits | List commits on a branch. | — | Read |
get_commit | Return one commit with its diff. | — | Read |
create_repository | Create a repository. | — | Write |
fork_repository | Fork a repository. | — | Write |
get_me | Return the authenticated user. | — | Read |
Security & scope
- Access scope
- Read + write
- Sandbox
- Authenticates to the GitHub API using the token in `GITHUB_PERSONAL_ACCESS_TOKEN`. The blast radius equals the token scope — the MCP has whatever repo, issue, PR, and admin permissions the token grants.
- Gotchas
- Classic tokens grant every permission on the account — prefer fine-grained tokens scoped to the specific repos you want the agent to touch.
- Branch-protection rules still apply; unprotected branches let an agent push directly to default branches.
Agent prompt pack
— copy into Claude, Cursor, or ChatGPT.Recommend the best MCP servers for [task: e.g. git & repo workflows work] in [client: Claude]. Constraints: - Prefer tools that are [official | open-source | read-only] — pick what matters for my use case. - Exclude MCPs that require [e.g. a paid plan, OAuth-only flows, remote-only transport]. - Return at most 3 picks, ranked. For each pick include: 1. One-sentence rationale. 2. The ready-to-paste install snippet for my client. 3. Any required secrets I need to create before installing. Cross-check the top-mcps.com listing: https://top-mcps.com/top-mcps-for-git-repo-workflows
Compare GitHub MCP vs [GitLab MCP] for the following job: [describe the job, e.g. "let an agent create GitHub issues on bug triage"]. Judge them on: - Setup time and complexity (what a new user hits first). - Auth model (none / API key / OAuth 2.1) and credential risk. - Transport (stdio / Streamable HTTP / SSE) and where the server runs. - Required secrets and the blast radius if they leak. - Operational risk in an unattended agent loop. - Which one is "good enough" for a weekend prototype vs. production. End with one sentence: which should I pick for my scenario, which is: [my scenario]. References: - https://top-mcps.com/mcp/github - top-mcps.com listing for GitLab
Install the GitHub MCP server for my [client: Claude] at the default config path for that client. Use the exact install snippet published at https://top-mcps.com/mcp/github (fetch https://top-mcps.com/mcp/github.json for the canonical server.json if you can read URLs). Before finishing: 1. Create the required secrets (GITHUB_PERSONAL_ACCESS_TOKEN) and put them in the appropriate env block — do not hard-code them. 2. Restart or reload the client so it picks up the new server. 3. Verify the server is connected (green / running state) and at least one tool is listed. 4. If anything fails, read the client's MCP logs and report the exact error — do not silently retry. Confirm when done and list the tools the server now exposes.
Frequently asked questions
What changed
— 3 updates tracked.v1.0.5 released — GitHub MCP Server 1.0.5
v1.0.4 released — GitHub MCP Server 1.0.4
v1.0.3 released — GitHub MCP Server 1.0.3
More Git & Repo Workflows MCPs
Other tools in the same category worth evaluating.
Compared with GitHub
Side-by-side breakdowns for the choices people most often weigh against this MCP.
Exploring Top MCPs for Git & Repo Workflows? See all Git & Repo Workflows MCPs →