personal-github-mcp
personal-github-mcp
A minimal, personal MCP server that gives Claude (via Claude Code or Claude Desktop) full read/write access to the GitHub REST API, using your own Personal Access Token (PAT) — no third-party app permissions, no 403s from a shared connector's scopes.
It exposes one tool, github_request, that can call any GitHub REST
API endpoint with any HTTP method (GET, POST, PATCH, PUT, DELETE).
That covers everything: creating issues, commenting, merging PRs, creating/
updating files, branches, releases, labels, workflows — the full API at
https://docs.github.com/en/rest.
1. Create a GitHub Personal Access Token
Go to https://github.com/settings/tokens?type=beta (fine-grained token, recommended) or https://github.com/settings/tokens (classic).
Fine-grained token: scope it to your account, pick "Only select repositories" (or all, if you want), and under Repository permissions grant at least:
Contents: Read and write
Issues: Read and write
Pull requests: Read and write
Metadata: Read-only (required)
Classic token: just check the
reposcope.Copy the token — you won't see it again.
2. Install dependencies
cd github-mcp-server
npm install3. Configure your MCP client
Claude Code
Add to your Claude Code MCP config (~/.claude.json or via claude mcp add):
claude mcp add personal-github -- node /absolute/path/to/github-mcp-server/index.jsThen set the token as an environment variable before launching, or add it
directly to the config's env block:
{
"mcpServers": {
"personal-github": {
"command": "node",
"args": ["/absolute/path/to/github-mcp-server/index.js"],
"env": {
"GITHUB_TOKEN": "ghp_your_token_here"
}
}
}
}Claude Desktop
Edit your claude_desktop_config.json (Settings → Developer → Edit Config)
and add the same mcpServers block as above, then restart Claude Desktop.
4. Use it
Once connected, ask Claude things like:
"Create an issue in neural-shubh/dark-fleet-detection titled X with body Y"
"List my open pull requests across all repos"
"Update the README.md in neural-shubh/mediscan-ai"
Claude will call github_request with the right method/path/body — e.g.
POST /repos/neural-shubh/dark-fleet-detection/issues with
{"title": "...", "body": "..."}.
Security notes
The token lives only in your local MCP config / environment — it's never sent anywhere except
api.github.com.Scope the token as narrowly as you're comfortable with (fine-grained, select repos only) since this server will honor whatever the token allows.
This server does not implement any allow/deny tool policy of its own — the token's scopes are the only guardrail. If you want to restrict it further (e.g. read-only, or single-repo-only) that's easy to add — just ask.
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/neural-shubh/personal-github-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server