Provides comprehensive tools for managing GitHub repositories, issues, pull requests, branches, commits, and file operations, as well as searching across repositories, code, and users on the GitHub platform.
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 MCP Serverlist pull requests in the claude-desktop repository"
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 Server
Model Context Protocol server for GitHub repositories, issues, pull requests, branches, tags, commits, and search.
It ships with 34 tools across 5 categories and supports:
hosted key-service mode with
usr_...user keysself-hosted Streamable HTTP deployments
CLI/stdio usage for local MCP clients
Quick Start
Option 1: Hosted key-service mode
Preferred path-based form:
{
"mcpServers": {
"github": {
"transport": "streamable-http",
"url": "https://mcp.techmavie.digital/github/mcp/usr_YOUR_USER_KEY"
}
}
}Compatibility query form:
https://mcp.techmavie.digital/github/mcp?api_key=usr_YOUR_USER_KEYOption 2: Self-hosted HTTP
Use header-based auth on /github/mcp:
{
"mcpServers": {
"github": {
"transport": "streamable-http",
"url": "https://mcp.techmavie.digital/github/mcp",
"headers": {
"X-API-Key": "YOUR_MCP_API_KEY",
"X-GitHub-Token": "YOUR_GITHUB_TOKEN"
}
}
}
}MCP_API_KEY must be configured on the server or self-hosted /mcp requests will be rejected.
For deployments mounted under /github, set PUBLIC_BASE_PATH=/github so the server card advertises the correct public endpoint.
Option 3: CLI / stdio
npm install -g mcp-github
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here mcp-githubExample client config:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "mcp-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
}
}
}
}Option 4: Legacy query-token mode
This is still supported for explicit requests only and is deprecated:
https://mcp.techmavie.digital/github/mcp?token=YOUR_GITHUB_TOKENThe server no longer falls back to its own GITHUB_PERSONAL_ACCESS_TOKEN for bare /mcp HTTP requests.
Authentication Modes
Mode | Endpoint | Client auth |
Hosted key-service |
| user key in path |
Hosted key-service compatibility |
| user key in query string |
Self-hosted |
|
|
Legacy |
| explicit query token, deprecated |
CLI | stdio |
|
Tool Categories
Search Tools (3)
search_repositoriessearch_codesearch_users
Repository Tools (12)
get_repositoryget_commitlist_commitslist_branchescreate_or_update_filecreate_repositoryget_file_contentsfork_repositorycreate_branchlist_tagsget_tagpush_files
Issue Tools (7)
get_issueadd_issue_commentsearch_issuescreate_issuelist_issuesupdate_issueget_issue_comments
Pull Request Tools (11)
get_pull_requestupdate_pull_requestlist_pull_requestsmerge_pull_requestget_pull_request_filesget_pull_request_statusupdate_pull_request_branchget_pull_request_commentscreate_pull_requestget_pull_request_review_commentscreate_pull_request_review_comment
Utility Tools (1)
hello
Endpoints
Endpoint | Method | Description |
| GET | health check |
| POST | hosted key-service endpoint |
| POST | self-hosted endpoint |
| POST | diagnostics endpoint when enabled |
| GET | root-level discovery metadata |
| GET | analytics JSON, requires |
| GET | analytics tool breakdown, requires |
| GET | analytics dashboard shell |
If this server is mounted under /github, the server-card route still lives at the host root:
https://mcp.techmavie.digital/.well-known/mcp/server-card.jsonEnvironment Variables
Variable | Default | Description |
|
| HTTP port |
|
| bind address |
| unset | CLI/stdio token only |
| unset | required for self-hosted |
| unset | hosted key-service resolver URL |
| unset | hosted key-service bearer token |
|
| comma-separated CORS allowlist |
| unset | public reverse-proxy mount path such as |
|
| protocol version reported by HTTP server |
|
| enable sanitized request tracing |
|
| enable |
|
| analytics storage directory |
Local Development
npm install
npm run dev:httpBuild and run production HTTP mode:
npm run build:tsc
npm run start:httpRun CLI mode:
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_your_token_here npm run cliProject Structure
mcp-github/
|-- src/
| |-- index.ts
| |-- http-server.ts
| |-- cli.ts
| |-- tools/
| |-- resources/
|-- deploy/
| |-- DEPLOYMENT.md
| |-- nginx-mcp.conf
|-- .github/workflows/
|-- docker-compose.yml
|-- Dockerfile
|-- .env.sample
|-- package.json
|-- tsconfig.json
`-- README.mdSecurity Notes
Self-hosted
/mcpfails closed whenMCP_API_KEYis missing.Analytics fail closed when
MCP_API_KEYis missing.Bare
/mcprequests no longer inherit the server's own PAT.Recent analytics store hashed client IPs only.
Request-scoped MCP servers and transports are used for HTTP requests.
?token=remains available only as an explicit deprecated compatibility path.