GitHub MCP server, with a policy gate.
One URL connects every agent surface to GitHub — without a PAT in any agent's config. Gentkey proxies the official GitHub MCP server, holds the credential server-side, and logs every tool call to an audit trail you can act on.
https://app.gentkey.com/mcpclaude.ai (web & mobile) · Claude Code · Cursor · any MCP clientWhat’s free, what needs a grant.
Reads: 57 curated read tools work with no grant: repo browsing and file contents, issues, pull requests, discussions, gists, releases, Actions runs and logs, notifications, security alerts, and search across code, commits, repos, issues, and users — curated from GitHub's own tool inventory, not from self-labels.
Writes: Pushes, merges, and every other mutation need mcp-github.write — revocable in one click, without rotating a PAT anywhere.
Gentkey proxies the official GitHub MCP server (https://api.githubcopilot.com/mcp/) — you get the vendor’s own tools, with custody, gating, and audit added in front.
| Grant | What it governs |
|---|---|
mcp-github.write | Every mutation the official GitHub server exposes — pushes, issue and PR writes, workflow triggers — plus any tool outside the 57-tool curated read set |
Connect once, use everywhere.
Sign in at gentkey.com, add GitHub (oauth), then point each client at your endpoint. Every client completes a standard OAuth flow and lands in your Gentkey — your connections, nobody else’s.
claude.ai (web & mobile)
- Settings → Connectors
- Add custom connector
- Paste
https://app.gentkey.com/mcpand finish the OAuth prompt
Claude Code
claude mcp add --transport http \
gentkey https://app.gentkey.com/mcpCursor
// .cursor/mcp.json
{
"mcpServers": {
"gentkey": { "url": "https://app.gentkey.com/mcp" }
}
}Things agents do with GitHub here.
- What PRs are waiting on my review?
- Summarize the discussion on issue #482.
- Open an issue for the flaky auth test with the stack trace attached.
- List commits to main this week grouped by author.
Custody, gating, and audit — built in.
The model never sees a credential
Your GitHub token is encrypted at rest and injected server-side at call time. Your stored credential never enters a context window.
Writes need a grant
Anything that changes state needs a capability you granted explicitly — revoke it and the next call is denied.
A trail you can act on
Every decision is attributed to the agent that made it — allowed, denied, or denied by constraint.
Fair questions.
Why is this safer than a personal access token in each client?
A PAT in a config file acts as you, everywhere, until you rotate it. Through Gentkey the credential never leaves the server; each agent gets its own OAuth identity, its writes need a grant you set, and you can revoke one agent's tokens without touching the others.
What happens when an agent calls a GitHub write tool it hasn't been granted?
The call is denied at the gateway — nothing reaches GitHub — and the denial is recorded in the audit log along with the grant that would have authorized it, so you can decide deliberately instead of finding out later.
Where are my credentials stored?
Encrypted at rest (AES-256-GCM) on Gentkey's server and injected server-side at call time. No credential you store with Gentkey ever enters a model's context window or an agent's config file.
Can I use this from claude.ai's free plan?
Yes — and it's the strongest case for a gateway: free claude.ai accounts currently get a single custom connector, so pointing that one slot at Gentkey puts every connector you've linked behind it.
How do I revoke an agent's access?
Revoke the grant (the next write is denied) or revoke the agent's tokens entirely in one click. Other agents and their grants are untouched — no shared key to rotate.
Is Gentkey affiliated with GitHub?
No. Gentkey is an independent MCP gateway. Trademarks belong to their owners; where an official GitHub MCP server exists, Gentkey proxies it and adds custody, gating, and audit on top.
Often connected together.
Cut GitHub a smaller key.
Sign in, connect GitHub, and grant your first scoped capability in under a minute.