An MCP server that lets any MCP client (Claude Desktop, Claude Code, etc.) inspect and interact with GitHub pull requests and issues via natural language, using the GitHub REST API.
list_open_prs(repo)- list open pull requestsget_pr_diff(repo, pr_number)- file-by-file diff for a PRlist_failing_checks(repo, pr_number)- failing CI checks on a PR's latest commitlist_open_issues(repo)- list open issuespost_review_comment(repo, pr_number, body, confirm)- post a PR comment (guarded, see below)
repo is always in "owner/repo" form.
post_review_comment is the only tool that changes anything on GitHub, and
it's gated two ways:
- Environment flag - refuses outright unless
ALLOW_WRITES=trueis set. - Confirm step - the first call (
confirm=False, the default) only returns a preview of what would be posted; nothing is sent until you call it again withconfirm=True.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# edit .env: set GITHUB_TOKEN to a fine-grained PAT scoped to the repos you wantpython server.pyPoint an MCP client at this file via stdio transport (same pattern as any other local MCP server).
Scaffolded - tools are implemented but not yet tested against a live repo.