An MCP (Model Context Protocol) server that gives Claude direct access to GitHub's REST API for repository analytics, issue tracking, pull-request status, contributor insights, and code search.
Built with the official Anthropic MCP Python SDK (FastMCP).
| Tool | Description |
|---|---|
get_repository_info |
Comprehensive repo details — stars, forks, language, license, topics, and more |
list_issues |
Browse and filter issues by state and labels |
list_pull_requests |
List PRs with branch info, draft/merge status |
get_contributor_stats |
Top contributors ranked by commit count |
search_repositories |
Search all of GitHub with language and sort filters |
pip install -r requirements.txtCopy the example env file and add your token for higher rate limits:
cp .env.example .env
# Edit .env and paste your tokenpython server.pyAdd the following to your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"github-intel": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}Restart Claude Desktop. The five GitHub tools will appear automatically.
The server works in two modes:
| Mode | Rate Limit | Setup |
|---|---|---|
| Unauthenticated | 60 requests / hour | Nothing required |
| Authenticated | 5,000 requests / hour | Set GITHUB_TOKEN in .env |
To create a personal access token, visit github.com/settings/tokens. A classic token with no scopes is sufficient for public repository data.
Once the server is connected to Claude, try asking:
- "Get me an overview of the facebook/react repository."
- "Show me the open issues labeled 'bug' in vercel/next.js."
- "List the most recent pull requests for rust-lang/rust."
- "Who are the top contributors to torvalds/linux?"
- "Search GitHub for the most-starred Python machine learning frameworks."
GitHub enforces rate limits per IP (unauthenticated) or per token (authenticated).
- Without token: 60 requests per hour.
- With token: 5,000 requests per hour.
The server detects rate-limit errors (HTTP 403) and returns a clear message with the reset timestamp so you know when to retry.
- Python 3.10+
- mcp — Official Anthropic MCP SDK (FastMCP)
- httpx — Async HTTP client
- pydantic — Data validation (used by MCP internally)
- python-dotenv —
.envfile loading
MIT