Github MCP logo

Github MCP

GitHub REST API access for repository, issue, pull request, file, user, and commit operations over MCP.

Install Github MCP

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "github-mcp": {
      "command": "uvx",
      "args": [
        "jaimenbell-github-mcp"
      ],
      "env": {
        "GITHUB_MCP_ENABLE_WRITE": "YOUR_VALUE_HERE",
        "GITHUB_TOKEN": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx jaimenbell-github-mcp

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 5d ago.

Overview

The github-mcp MCP server connects MCP clients to GitHub's REST API for repository, issue, pull request, file, user, and commit operations. Read tools are enabled by default and can run without authentication, while mutation tools require both an environment flag and a GitHub token. Install it as a Python package and register the github-mcp command in an MCP host configuration. Reach for it when an agent needs focused GitHub REST access without GraphQL, Actions, webhooks, or GitHub App features.

Use cases

  • Inspect repository metadata and default branches
  • Review issues and pull requests
  • Read source files and recent commits
  • Create and update GitHub issues
  • Comment on pull requests and add labels

Key features

  • GitHub REST API repository and user queries
  • Issue and pull request listing and retrieval
  • Repository file and commit access
  • Environment-gated write tools
  • Structured API, network, and rate-limit errors

Tools14

What Github MCP lets your agent do. Expand a tool for its parameters.

Self-reported~162 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

4/4 checks healthy over the last 22d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 14d ago via OSV.dev · jaimenbell-github-mcp (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Tools exposed14Callable tools this server registers over MCP.
Directory activity5 viewsConfig copies, upvotes, and views on AllMCPs.

How Github MCP works

What github-mcp MCP server does

The github-mcp MCP server exposes selected GitHub REST API operations through MCP. Its read surface includes repository metadata, issue and pull request retrieval, repository file contents, public repository search, public user or organization profiles, and commit listings for a branch or reference.

The write surface covers opening issues, commenting on issues or pull requests, changing an issue's open or closed state, adding labels, and placing a review comment on a specific pull request diff line. Pull requests are excluded from the issue-listing result, so agents can handle the two resource types separately.

How it works

Read tools are active by default and can use GitHub's unauthenticated access tier when no token is configured. GitHub limits that tier to 60 requests per hour, with search subject to a 10-requests-per-minute limit. Supplying a token can raise the applicable read limits.

Write tools are disabled unless GITHUB_MCP_ENABLE_WRITE=1 is present. They also require GITHUB_TOKEN; the server checks these conditions independently before making a network request. A disabled write operation returns a structured policy_refusal error, while an enabled operation without a token returns auth_required.

The client reports API, network, malformed-response, and rate-limit failures as typed errors rather than uncaught exceptions. Primary rate limits use GitHub reset information when available, and secondary limits expose retry timing when provided.

Setup and configuration

Install the package with:

Terminal
pip install jaimenbell-github-mcp

Register the github-mcp executable with an MCP host. A minimal configuration uses the command directly:

config.json
{
  "mcpServers": {
    "github-mcp": {
      "command": "github-mcp"
    }
  }
}

For read-only use, no environment variable is required. To permit mutations, add GITHUB_MCP_ENABLE_WRITE=1 and provide a fine-grained personal access token through GITHUB_TOKEN. The write group remains off unless the environment explicitly enables it.

Tools and capabilities

The github-mcp MCP server provides these read tools:

  • get_repo, search_repos, and get_user for repository discovery and public metadata.
  • list_issues and get_issue for issue work.
  • list_pull_requests and get_pull_request for pull request work.
  • get_file_content for repository files; text is base64-decoded, while binary content is identified rather than decoded.
  • list_commits for commits on a branch or reference.

Its write tools are create_issue, comment_on_issue, update_issue_state, add_labels, and create_pr_review_comment.

Limitations and notes

The implementation uses GitHub REST API v1 only. It does not provide GraphQL, webhooks, GitHub App authentication, Actions or workflow-dispatch tools. The supported authentication method is a fine-grained personal access token.

List endpoints return one page only. Each endpoint's limit controls page size but does not provide pagination. get_file_content truncates content beyond 100 KB and reports non-UTF-8 files instead of decoding them. Unauthenticated use is therefore subject to GitHub rate limits, especially during sustained or search-heavy workloads.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Github MCP

github-mcp is an MCP server that connects AI clients to GitHub's REST API and provides tools for repository metadata, issues, pull requests, files, users, commits, repository search, and selected issue/PR writes. Read tools work without a token; write tools require GITHUB_MCP_ENABLE_WRITE=1 and GITHUB_TOKEN.

Install it with `pip install jaimenbell-github-mcp`, then register the `github-mcp` command in your MCP host's server configuration.

Set `GITHUB_MCP_ENABLE_WRITE=1` and provide `GITHUB_TOKEN`. Both conditions are required before issue or pull request mutations run; otherwise the server returns a structured refusal or authentication error.

It supports GitHub REST API operations only, with no GraphQL, webhooks, GitHub Apps, or Actions tools. List endpoints provide one page, file reads truncate beyond 100 KB, and unauthenticated reads are rate-limited by GitHub.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGithub MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/github-mcp?style=directory)](https://allmcps.com/mcp/github-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/github-mcp"><img src="https://allmcps.com/api/badge/github-mcp?style=directory" alt="Github MCP on AllMCPs" /></a>