github-twin MCP server
io.github.ChristopherDavenport · Updated
Personal RAG over your GitHub history (commits, code, reviews), served to Claude Code over MCP.
At a glance
github-twin is an MCP server in the Dev Tools & Git category. It runs locally over stdio via `uvx github-twin`, and needs GITHUB_TOKEN, ANTHROPIC_API_KEY and GEMINI_API_KEY. It exposes 7 tools, including find_review_comments, find_style_examples and find_code. It scores B (72/100) on the MCP Skills Hub health score as of Oct 28, 2026.
One-click install
Opens your editor and pre-fills the config. Your editor will ask before adding it.
How to install github-twin in your AI client
Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.
How to install github-twin in Claude CodeAnthropic's agentic CLI
Add the server
bashclaude mcp add github-twin -e 'GITHUB_TOKEN=<GITHUB_TOKEN>' -e 'ANTHROPIC_API_KEY=<ANTHROPIC_API_KEY>' -e 'GEMINI_API_KEY=<GEMINI_API_KEY>' -- uvx github-twinFill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
Verify it's connected
bashclaude mcp listSharing it with your team?
Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).
Use it in a session
Ask Claude to use the tools this server exposes (e.g. find_review_comments, find_style_examples, find_code). It discovers them automatically.
How to install github-twin in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "github-twin": { "command": "uvx", "args": [ "github-twin" ], "env": { "GITHUB_TOKEN": "<GITHUB_TOKEN>", "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>", "GEMINI_API_KEY": "<GEMINI_API_KEY>" } } } }Fill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install github-twin in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "github-twin": { "command": "uvx", "args": [ "github-twin" ], "env": { "GITHUB_TOKEN": "<GITHUB_TOKEN>", "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>", "GEMINI_API_KEY": "<GEMINI_API_KEY>" } } } }Fill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install github-twin in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.github-twin] command = "uvx" args = ["github-twin"] env = { GITHUB_TOKEN = "<GITHUB_TOKEN>", ANTHROPIC_API_KEY = "<ANTHROPIC_API_KEY>", GEMINI_API_KEY = "<GEMINI_API_KEY>" }Fill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install github-twin in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "github-twin": { "command": "uvx", "args": [ "github-twin" ], "env": { "GITHUB_TOKEN": "<GITHUB_TOKEN>", "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>", "GEMINI_API_KEY": "<GEMINI_API_KEY>" } } } }Fill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install github-twin in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "github-twin": { "command": "uvx", "args": [ "github-twin" ], "env": { "GITHUB_TOKEN": "<GITHUB_TOKEN>", "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>", "GEMINI_API_KEY": "<GEMINI_API_KEY>" } } } }Fill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
How to install github-twin in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "github-twin": { "type": "stdio", "command": "uvx", "args": [ "github-twin" ], "env": { "GITHUB_TOKEN": "<GITHUB_TOKEN>", "ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>", "GEMINI_API_KEY": "<GEMINI_API_KEY>" } } } }Fill in your credentials
Replace <GITHUB_TOKEN>, <ANTHROPIC_API_KEY>, <GEMINI_API_KEY> with your real values. Keep secrets out of any config file you commit.
Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What does github-twin need from you?
API key — GitHub personal access token. Optional: github-twin can also pick the token up from `gh auth token` or from its own OAuth device-flow login (`gt auth login`).
GITHUB_TOKENoptionalsecretEnvironment variableGitHub personal access token. Optional: github-twin can also pick the token up from `gh auth token` or from its own OAuth device-flow login (`gt auth login`).
ANTHROPIC_API_KEYoptionalsecretEnvironment variableOptional. Enables the Claude backend for `gt summarize`, `gt distill`, and `gt eval`. Defaults to local Ollama when unset.
GEMINI_API_KEYoptionalsecretEnvironment variableOptional. Enables the Gemini backend for embedding and the LLM seam. Vertex AI ADC via `GT_GEMINI_PROJECT` is also supported.
GT_PATHS__DATA_DIRoptionalEnvironment variableOptional. Override the on-disk data directory holding the SQLite index, embeddings, and cached GitHub responses. Defaults to `$XDG_DATA_HOME/github-twin`.
Pass secrets through your shell environment rather than committing them into a config file.
What tools does github-twin expose? (7)
Taken from the project's README — the server itself was not queried, so check its docs for the exact schemas.
- find_review_commentsPast review comments on diffs similar to the input.
- find_style_examplesPast code chunks matching a description.
- find_codeSource snippets from files at HEAD (org mode).
- find_applicable_rulesDistilled code-pattern rules relevant to a coding task.
- predict_review_outcomeWeighted prediction over nearest past PRs: `{approved, changes_requested, commented}`.
- summarize_review_patternsDistilled rules from clustered review comments (run `gt distill` first).
- syncIncremental ingest + summarize + embed.
What the code can do
Source analysis currently covers npm packages only. This server ships as a Python package, which needs a different parser.
Before you install
Signals gathered from the source repo and package registry — not a safety verdict.
What it can reach
- Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
- Downloads at launch — The package is fetched from its registry each run unless you pin a version.
- Last commit 3 months ago — Actively maintained.
- 0 GitHub stars — Very little community usage so far.
Client compatibility
Health score
B · 72Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated
- Maintenance30%87%
Last commit 119 days ago.
- Adoption20%0%
0 stars.
- Transparency20%100%
4/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✓ discoverable tool list.
- Provenance15%75%
Links to its own repository; package linkage unverified.
- Packaging15%100%
Publishes a pinned version (0.0.17).
Documentation
Full READMEgithub-twin
You reviewed a permission check six months ago. Claude doesn't remember it. github-twin does — it indexes your commits and review comments, and surfaces them as retrieval hits whenever an agent writes or reviews new code in your style.
Try it now from Claude Code — drop this into ~/.claude.json and reload:
{
"mcpServers": {
"github-twin": { "command": "uvx", "args": ["github-twin", "serve"] }
}
}Your code stays on your box. Embeddings are computed locally (Ollama or sentence-transformers); only the LLM seam (gt summarize, gt distill, gt eval) optionally calls a hosted provider, and even that's swappable to local Ollama. The gemini embedder is the one exception — opt-in only.
A personal RAG over your GitHub history, served to Claude Code (or any MCP client) as a stdio server. Two scopes, one codebase:
- User mode — index your own commits + review comments. Surfaces your
past code as style examples and your past comments as review hints when an agent is writing or reviewing new code.
- Org mode — index a whole GitHub org's files-at-HEAD, commits, and PR
reviews across every member. Queries scope by repo, language, or reviewer login.
Retrieval is hybrid (BM25 + vector via RRF), AST-aware via tree-sitter for python/scala/javascript/typescript/go/rust, and contextually enriched at embed time with per-chunk headers + optional LLM-generated summaries.
Install
The fastest path is uvx — no virtualenv to manage, isolated per-tool:
Excerpt — the full document is on GitHub.
Alternatives to github-twin
- pare-githubA · 88Pare GitHub ג€” Structured GitHub operations (PRs, issues, actions) as typed JSON.
- GitHub Hot BoardB · 71GitHub hot-repo leaderboards: snapshots, movers, rank history. Read-only JSON, hourly batches.
- GitHub (read-only)B · 76Read-only GitHub repos, issues, PRs and commits, with tool descriptions tuned on a benchmark.
- githubA · 88MCP server for GitHub operations (PRs, issues, actions) with structured, token-efficient output
Maintain github-twin? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/io-github-christopherdavenport-github-twin)Catalog data refreshed . Something wrong? Report it.