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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Related MCP Connectors
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Manage repositories, users, releases, and automate GitHub workflows
GitHub Private MCP Pack — access private repos, org data via OAuth.
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 gradedqualityCmaintenanceEnables browsing GitHub profile, repositories, issues, and pull requests directly in Claude conversation through OAuth authentication.-
- FlicenseNot gradedqualityDmaintenanceEnables 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.-
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