What GitHub's MCP actually does
How GitHub's official MCP connects agents to repos, issues, pull requests, and Actions, with Cursor and Claude install steps.

GitHub's official MCP server lets an agent work with GitHub itself: repositories, files, issues, pull requests, Actions, and related project work. It is published by GitHub. The hosted URL is the path most clients should start with.
GitHub hosts that remote server at https://api.githubcopilot.com/mcp/. On PlugMCP it sits on the trending page as GitHub's official MCP Server, and r/mcp roundups still treat it as the usual first install when someone wants repos, issues, and pull requests from an agent. The listing to use is https://plugmcp.ai/mcp/github-github-mcp-server.
What it is good for
Use the remote server when the agent needs GitHub context while you work: read a file, list your repositories, open or update an issue, inspect a pull request, or check a workflow run. The README groups those capabilities into toolsets. If you do not pick any, the default set is context, repos, issues, pull requests, and users.
You can narrow what the agent sees. Pass toolsets or individual tools so the model is not loaded with Actions, security, projects, or other groups you do not need. A read-only mode drops write tools, which is the safer default on a shared or production account.
There is also a local server, shipped as the public Docker image ghcr.io/github/github-mcp-server. That path is useful when your client cannot call a remote MCP URL, or when you want the process on your machine. GitHub Enterprise Server does not host the remote server, so those installs use the local image and a host setting.
Install in Cursor
The Cursor guide recommends the hosted server. Cursor version 0.48.0 or later is required for Streamable HTTP. GitHub's current Cursor notes say this server wants a personal access token, even though Cursor can use OAuth with some other MCP servers. Create a fine-grained or classic token with only the permissions you are comfortable giving the agent, then add this to your Cursor MCP config (for example ~/.cursor/mcp.json) and restart Cursor:
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer YOUR_GITHUB_PAT"
}
}
}
}
Replace YOUR_GITHUB_PAT with the token. After Cursor shows the server as connected, ask it to list your repositories. You should see GitHub tools, not an empty list.
If you would rather run the server locally, Docker needs to be installed and running. The official image can open a browser login on first use, or you can pass a token instead. A token in GITHUB_PERSONAL_ACCESS_TOKEN takes precedence over OAuth:
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
}
}
}
}
The older npm package @modelcontextprotocol/server-github is no longer supported. GitHub's Cursor guide says it stopped working in April 2025. Use the hosted URL or the official Docker image.
Install in Claude
For Claude Code 2.1.1 and newer, the documented remote install (run this in a regular terminal, not inside the Claude prompt) looks like:
claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer YOUR_GITHUB_PAT"}}'
Older Claude Code builds use a different flag:
claude mcp add --transport http github https://api.githubcopilot.com/mcp -H "Authorization: Bearer YOUR_GITHUB_PAT"
Then restart Claude Code and run claude mcp list to confirm the server is there. A local Docker option is documented if you prefer not to call the hosted URL.
Claude Desktop is different. GitHub's Claude guide says the hosted server expects OAuth through a registered GitHub App, which Claude Desktop does not currently support for this server. Use the local Docker config in claude_desktop_config.json instead, then fully quit and reopen the app.
{
"mcpServers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_PAT"
}
}
}
}
Limits to know
- A token or login grants whatever GitHub permissions you attached. Prefer the smallest scopes you need, and consider read-only mode when the agent should not change anything.
- Cursor's current GitHub guide asks for a personal access token on the hosted URL. Other clients may offer OAuth. Follow the guide for the client you actually use.
- Claude Desktop should use the local Docker image for now, not the hosted URL.
- Do not install the deprecated npm package @modelcontextprotocol/server-github.
- The PlugMCP page is a directory listing. It is not a proxy and it does not hold your GitHub token.
Alternatives on PlugMCP
The reference Git server on PlugMCP works on a local checkout: status, diffs, log, commits, and branches on your machine. GitHub's MCP talks to github.com (or your Enterprise host) over the GitHub API. They solve different jobs.
Nearby listings if you are assembling a coding setup include [Playwright MCP](https://plugmcp.ai/mcp/microsoft-playwright-mcp) for a local browser, and [Context7](https://plugmcp.ai/mcp/context7) when the agent needs current library docs rather than repository files.
On the PlugMCP page
The listing is [github-github-mcp-server](https://plugmcp.ai/mcp/github-github-mcp-server). Transport on that record is remote HTTP, and the publisher URL is https://api.githubcopilot.com/mcp/. The install block is GitHub's own URL, not an mcp.plugmcp.ai proxy. Hosting a copy on PlugMCP is a separate action if you want keys and logs on a server you operate.
Search more developer tools from the directory MCP at https://plugmcp.ai/mcp-server, or open the [developer tools](https://plugmcp.ai/categories/developer-tools) category.

