Rollup GitHub tools for LLMs via MCP. How the server is installed and wired to clients: docs/install.md only (do not restate that material here).
Implementation map (modules under src/server/, entry src/server.ts), symbols, and contract bumps live in AGENTS.md at the repository root.
Registered tool ids, parameters, JSON shapes, error codes: docs/mcp-tools.md — canonical; not duplicated here.
All tools require a GitHub token. The server resolves it in order:
GITHUB_TOKENenvironment variableGH_TOKENenvironment variablegh auth tokensubprocess (ifghCLI is installed)
Set the token in your MCP client's env block — see docs/install.md.
Required scopes: repo (for private repository access), read:org (for org_pulse).
GitHub Enterprise: set GITHUB_API_URL (defaults to https://api.github.com) and optionally GITHUB_GRAPHQL_URL in the env block.
Full per-client wiring (Cursor, VS Code, Claude Desktop, Zed, CLI): docs/install.md.
Quick start — the server speaks MCP over stdio. Start it with any of:
npx -y @rethunk/github-mcp # via npmjs (Node ≥ 22)
bunx @rethunk/github-mcp # via Bun
rethunk-github-mcp # if installed globallyMinimal MCP client JSON (server name rethunk-github):
{
"mcpServers": {
"rethunk-github": {
"command": "npx",
"args": ["-y", "@rethunk/github-mcp"],
"env": { "GITHUB_TOKEN": "ghp_..." }
}
}
}GitHub Enterprise: add GITHUB_API_URL (and optionally GITHUB_GRAPHQL_URL) to the env block.
| Goal | Tool |
|---|---|
| Dashboard across multiple repos | repo_status (up to 64 repos per call) |
| My open PRs and review queue | my_work |
| Pre-merge safety check | pr_preflight |
| Why is CI red? | ci_diagnosis |
| What would ship if we release now? | release_readiness |
| Org-wide failing CI / stale PRs | org_pulse |
| How far are my pins behind upstream? | pin_drift |
| Recent merged commits across repos | ecosystem_activity |
| Go pseudo-version for a commit | module_pin_hint |
| Draft CHANGELOG from unreleased commits | changelog_draft |
All tools are read-only. Default output is JSON; pass format: "markdown" for human-readable output. Full parameter reference: docs/mcp-tools.md.
See CONTRIBUTING.md for dev setup, build commands, git hooks, commit conventions, CI, and how to add a tool.
Tag pushes run .github/workflows/release.yml: build, check, tests, then:
npm packusing the committedpackage.jsonname@rethunk/github-mcp— tarball attached to a GitHub Release for that tag.- GitHub Packages (npm registry): workflow temporarily rewrites name to
@rethunk-ai/github-mcp(required scope for orgRethunk-AI) and runsnpm publishtohttps://npm.pkg.github.comwithGITHUB_TOKEN.
Prerequisite: push a semver git tag vX.Y.Z that exactly matches version in package.json.
- On a clean checkout at the release commit, run
bun run prepublishOnly. - Log in:
npm loginsonpm whoamishows the account that owns@rethunkon npmjs. - Ensure
package.jsonhas"name": "@rethunk/github-mcp"andpublishConfig.accessis"public". - Publish:
npm publish --access public.
package.json files must keep the whole dist/ directory so every emitted chunk is packed.