GitHub MCP Server
@zaidongy
A Model Context Protocol server implementation for GitHub
Overview
What is GitHub MCP Server?
The GitHub MCP Server is a Model Context Protocol (MCP) server that integrates with GitHub APIs, enabling advanced automation and interaction for developers and AI tools.
How to use GitHub MCP Server?
Run it via Docker (recommended) using docker run ghcr.io/github/github-mcp-server with a GitHub Personal Access Token set as the GITHUB_PERSONAL_ACCESS_TOKEN environment variable, or build the binary from source and run with github-mcp-server stdio. Configure it in VS Code (User Settings or .vscode/mcp.json) or Claude Desktop.
Key features of GitHub MCP Server
- Authenticates via GitHub Personal Access Token.
- Supports repository, issue, pull request, user, and code security toolsets.
- Allows enabling/disabling specific tool groups via
--toolsetsorGITHUB_TOOLSETS. - Offers dynamic toolset discovery (beta) to activate tools on demand.
- Supports GitHub Enterprise Server via
--gh-hostorGITHUB_HOST. - Provides i18n tool description overrides via config file or environment variables.
Use cases of GitHub MCP Server
- Automating GitHub workflows and processes.
- Extracting and analyzing data from repositories.
- Building AI-powered tools that interact with GitHub’s ecosystem.
- Managing issues, pull requests, and code security alerts programmatically.
FAQ from GitHub MCP Server
What are the prerequisites for running GitHub MCP Server?
You need Docker installed and running, and a GitHub Personal Access Token with appropriate permissions.
How do I authenticate with GitHub MCP Server?
Set the GITHUB_PERSONAL_ACCESS_TOKEN environment variable with your personal access token when launching the server.
Can I use GitHub MCP Server with GitHub Enterprise Server?
Yes. Use the --gh-host flag or GITHUB_HOST environment variable to specify your GitHub Enterprise Server hostname (must include https://).
How do I control which tools are available?
Use the --toolsets flag (e.g., repos,issues,pull_requests) or the GITHUB_TOOLSETS environment variable. Pass all to enable everything. For dynamic discovery, use --dynamic-toolsets or GITHUB_DYNAMIC_TOOLSETS=1.
Can I customize tool descriptions for internationalization?
Yes. Create a github-mcp-server-config.json file with tool name keys and new descriptions, or set environment variables prefixed with GITHUB_MCP_. Use --export-translations to generate an export.