Suggest a server AI tools directory →

GitHub official MCP server

Last verified: 2026-09

GitHub's own MCP server (Go), remote or local.

Community Developer tools Needs a secret Claude Desktop, Cursor, Windsurf

What it does

GitHub's maintained Go MCP server. Remote at api.githubcopilot.com/mcp/ or a local binary. Prefer this over the older npm @modelcontextprotocol/server-github. Tool set is large (repos, issues, PRs, Actions, code search) and still changing.

It sits in Developer tools: Split this category in two.

Good for

  • Remote URL at api.githubcopilot.com/mcp/ plus a PAT — no local binary.
  • Issues, PRs, Actions logs, and code search on repos the token can see.
  • Open a PR from the chat after a read-only week.
  • Rerun a workflow only when you meant to spend CI minutes.

Tools

  • get_file_contents / create_or_update_file / push_files — Read and write repo files.
  • list_issues / create_issue / update_issue / add_issue_comment — Issues.
  • create_pull_request / get_pull_request / merge_pull_request / pull_request_review — PRs.
  • list_commits / search_code / search_repositories — History and search.
  • list_workflow_runs / rerun_workflow / get_job_logs — Actions.

Config (Claude Desktop / Cursor / Windsurf)

Paste the JSON below. Same mcpServers shape. Replace placeholder paths and secrets. Windows paths look like C:\\Users\\you\\project, not /path/to. Host-side steps →

Claude Desktop

OSConfig file
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json (usually C:\Users\<you>\AppData\Roaming\Claude\)
Linux~/.config/Claude/claude_desktop_config.json

Cursor

ScopemacOS / LinuxWindows
This project.cursor/mcp.json in the repo root
This user~/.cursor/mcp.json %USERPROFILE%\.cursor\mcp.json

Windsurf

OSConfig file
macOS / Linux~/.codeium/windsurf/mcp_config.json
Windows%USERPROFILE%\.codeium\windsurf\mcp_config.json
{
  "mcpServers": {
    "github_official": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer $GITHUB_PERSONAL_ACCESS_TOKEN"
      }
    }
  }
}

Windsurf remote MCP: use serverUrl instead of url if the block below is HTTP.

One-liner: https://api.githubcopilot.com/mcp/

Secrets it wants: GITHUB_PERSONAL_ACCESS_TOKEN

Source repo →

How to get started

  1. Easiest: remote URL plus a PAT in Authorization.
  2. Or run the GitHub-hosted binary as command/args.
  3. Start with read-only scopes. Add write when you want the model to open PRs.

Access risk

Same as any GitHub token: the model can do whatever the token can. Remote mode sends traffic to GitHub.

When to skip it

Skip it if the npm GitHub server already does what you need and you do not want to redo auth.

Instead: GitHub, Git, GitLab.

Vs alternatives

ServerOfficial?Needs a secret?Best for
GitHub officialNoYesGitHub's own MCP server (Go), remote or local.
GitHubYesYesRepos, issues, PRs, and file contents on GitHub.
GitYesNoRead a local git repo: log, diff, status.
GitLabYesYesProjects, issues, and merge requests on GitLab.

More in Developer tools

All 18 in this category →

FAQ

Remote or local binary?

Remote is easiest (URL + Authorization). Local is the github-mcp-server binary from GitHub.

Why not the npm server?

This is the maintained Go server. Larger tool set. Prefer it for new installs.

What scopes?

Read-only on the repos you care about. Add pull_requests write when you want the model to open PRs.

Does remote send my code to GitHub?

Tool calls go to GitHub's MCP endpoint. That is the trade for not running a binary.