GitHub MCP
Provides tools for interacting with GitHub repositories, including repos, files, search, branches, commits, pull requests, issues, and releases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GitHub MCPshow me issues labeled 'bug' in this repo"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GitHub MCP
A GitHub MCP server for Claude and other MCP clients. No OAuth — it uses a GitHub Personal Access Token, protected by a shared bearer token so only your clients can reach it.
22 tools across repos, files, search, branches, commits, pull requests, issues, and releases.
Read SECURITY.md before deploying. This server exposes a PAT over HTTP. Anyone who can reach the URL and present the auth token inherits that token's access to your repositories.
Quick start
1. Create a GitHub PAT
https://github.com/settings/tokens?type=beta → Generate new token
Scopes: repo, read:org, read:user, workflow.
Prefer a fine-grained token limited to specific repositories — that is the strongest control available here, stronger than anything the server enforces.
2. Generate a server auth token
openssl rand -hex 32This is the secret your MCP client presents to the server. It is not your GitHub PAT — keep the two separate.
3. Deploy
Any Node 20+ host or container platform works. Config is included for the common ones:
Platform | Cost | Setup |
DO App Platform | smallest shared-CPU instance |
|
DO Droplet | cheapest basic droplet | |
Render | free tier available | Blueprint — |
Fly / Railway / Koyeb | varies | |
Any Docker host | — |
|
Not compatible: Cloudflare Workers, Vercel/Netlify functions. Both need a long-lived process for sessions and SSE. See DEPLOYMENT.md.
Locally, or on any VM:
npm ci && npm run build
GITHUB_TOKEN=... MCP_AUTH_TOKEN=... npm startThe server refuses to start without a valid MCP_AUTH_TOKEN. That is
deliberate — it never comes up unauthenticated.
Two settings matter on every platform:
TLS. The auth token is a bearer header on every request. Managed platforms terminate TLS for you; on a bare VM you must add a proxy that does.
TRUST_PROXY.1behind a proxy,0(the default) when Node is exposed directly. Wrong value silently disables rate limiting — details.
Run one instance — sessions are held in memory.
4. Connect your client
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://your-app.onrender.com/mcp",
"headers": { "Authorization": "Bearer YOUR_MCP_AUTH_TOKEN" }
}
}
}If your client cannot send custom headers, set MCP_ALLOW_QUERY_TOKEN=true and
append the token to the URL:
https://your-app.onrender.com/mcp?key=YOUR_MCP_AUTH_TOKENThis is weaker — URLs end up in proxy logs, browser history, and referrer headers — so prefer the header wherever the client supports it.
Related MCP server: GitHub MCP Connector
Configuration
Variable | Required | Default | Purpose |
| yes | — | GitHub PAT the tools act with |
| yes | — | Shared secret clients must present (min 32 chars) |
| no |
| Register read tools only; write tools are never exposed |
| no | (all) | Comma-separated |
| no |
| Also accept the token as |
| no | (none) | Comma-separated browser origins allowed to call the server |
| no |
| Per-IP request ceiling |
| no |
| Concurrent session cap (LRU eviction) |
| no |
| Idle session timeout |
| no |
| Proxy hops to trust for client IPs. |
| no |
| Bind address. |
| no |
| Listen port |
See .env.example for a copyable template.
Security summary
Bearer auth on every MCP route, compared in constant time
Fail-closed startup — no token, no server
Origin allowlisting (DNS-rebinding defense) and CORS off by default
Brute-force limiting: 20 failed auth attempts per IP per 15 min
Bounded sessions with idle sweeping
Optional read-only mode and per-repo allowlisting
helmetheaders, generic error responsesX-Forwarded-Forignored by default, so rate limiting cannot be spoofed past
Full detail and the hardening checklist: SECURITY.md.
Transports
Streamable HTTP (current):
POST/GET/DELETEon/mcpSSE (deprecated):
GET /sse+POST /message
Sessions are held in memory, so run a single instance. Multiple replicas behind a load balancer will break sessions.
Development
npm ci
cp .env.example .env # fill in GITHUB_TOKEN and MCP_AUTH_TOKEN
npm run devDocs
DEPLOYMENT.md — platform compatibility, DigitalOcean guides, TLS
SECURITY.md — threat model, controls, hardening checklist
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceConnects Claude Desktop to GitHub repositories, enabling users to perform git operations and GitHub API interactions through natural conversation.467
- FlicenseNot gradedqualityBmaintenanceEnables browsing GitHub profile, repositories, issues, and pull requests directly in Claude conversation through OAuth authentication.
- FlicenseNot gradedqualityCmaintenanceEnables to interact with GitHub repositories directly from Claude, supporting actions like viewing repos, checking status, committing and pushing changes, and managing pull requests.
- FlicenseNot gradedqualityBmaintenanceEnables claude.ai to connect to GitHub MCP using OAuth, providing full toolset for repository, issue, PR, Actions, and gist operations.
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
GitHub Private MCP Pack — access private repos, org data via OAuth.
GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abdul-34/custom-github-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server