github-pr-review
Allows listing, reading, reviewing, and commenting on GitHub pull requests, enabling automated code review and management of PRs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@github-pr-review list open pull requests"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GitHub PR Review MCP Server
An MCP server that gives any LLM client the ability to list, read, review, and comment on GitHub pull requests — turning your AI assistant into a fully capable code reviewer.
Overview
This server wraps the GitHub REST API using FastMCP, exposing pull request operations as tools any MCP-compatible client can call. Connect it to Claude Desktop and you can ask Claude to review your open PRs, read diffs, post inline comments, approve, or request changes — all without leaving your conversation.
The server maintains a single authenticated httpx client across its lifetime, initialised on startup and shared across all tool calls via FastMCP's lifespan context.
Related MCP server: github-pr-review-mcp
Tools
Tool | Description |
| List all open PRs with author, title, draft status, and URL |
| Get file changes and unified diffs for a specific PR |
| Get all existing review comments on a PR |
| Post an inline comment on a specific file and line |
| Approve a PR with an optional review message |
| Request changes on a PR with a review message |
Note:
approve_prandrequest_changesrequire the authenticated user to be different from the PR author. GitHub does not permit self-review.
Project Structure
github-pr-mcp/
├── server.py # FastMCP instance, lifespan, tool registration
├── config.py # Environment variables and constants
├── tools/
│ ├── __init__.py
│ ├── prs.py # list_open_prs, get_pr_diff
│ └── reviews.py # get_pr_comments, post_review_comment, approve_pr, request_changes
├── .env # Your secrets (never committed)
├── .env.example # Template
├── requirements.txt
├── Dockerfile
└── README.mdRequirements
Python 3.11+
A GitHub Personal Access Token with
reposcope
Setup
1. Clone the repository:
git clone https://github.com/Festuskipkoech/github-pr-mcp.git
cd github-pr-mcp2. Install dependencies:
uv sync3. Configure your environment:
cp .env.example .envEdit .env and fill in your values:
GITHUB_TOKEN=your_personal_access_token
GITHUB_OWNER=your_github_username
GITHUB_REPO=your_repository_nameGenerate a token at GitHub Settings → Developer Settings → Personal Access Tokens. Enable full repo scope for read and write access.
Running Locally
uv run python server.pyOr with the FastMCP CLI on Streamable HTTP transport:
fastmcp run server.py:mcp --transport streamable-httpTesting with MCP Inspector
Start the server in one terminal:
fastmcp run server.py:mcp --transport streamable-httpLaunch the Inspector in a second terminal:
npx -y @modelcontextprotocol/inspectorIn the Inspector UI:
Transport: Streamable HTTP
URL:
http://127.0.0.1:8000/mcpClick Connect
Recommended test sequence:
Step | Tool | Input |
1 |
| (no arguments) |
2 |
|
|
3 |
|
|
4 |
|
|
Using with Claude Desktop
Add the following to ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"github-pr-review": {
"command": "/home/your-user/.local/bin/uv",
"args": [
"run",
"--directory",
"/absolute/path/to/github-pr-mcp",
"python",
"server.py"
]
}
}
}Use the full path to uv (find it with which uv). Credentials are read from the .env file automatically — no need to pass them in the config.
Restart Claude Desktop, then try:
List all open pull requests in my repo and show me the diff for PR number 1Claude calls list_open_prs and get_pr_diff and returns structured results:

Full PR diff and file changes returned inline:

Running with Docker
docker build -t github-pr-mcp .
docker run --env-file .env -p 8000:8000 github-pr-mcpFor Streamable HTTP transport, update server.py to run with:
mcp.run(transport="streamable-http", host="0.0.0.0", port=8000)Troubleshooting
Error | Cause | Fix |
| Invalid or expired token | Regenerate PAT on GitHub |
| Token lacks write scope | Enable full |
| Wrong owner or repo name | Check |
| Self-review attempt | GitHub blocks approving your own PRs by design |
Available Tools
6 toolsapprove_prC
Approve a pull request, optionally with a review message.
Inputs: message (required), pr_number (required). Returns: object
get_pr_commentsA
Get all review comments on a specific pull request.
Inputs: pr_number (required). Returns: result
get_pr_diffB
Get the file changes and diff for a specific pull request.
Inputs: pr_number (required). Returns: object
list_open_prsA
List all open pull requests in the configured repository.
Inputs: no named parameters. Returns: result
post_review_commentA
Post an inline comment on a specific file and line via a review submission.
Inputs: body (required), line (required), path (required), pr_number (required). Returns: object
request_changesB
Request changes on a pull request with a review message.
Inputs: message (required), pr_number (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: listing PRs, getting diffs, getting comments, posting inline comments, approving, and requesting changes. No overlap in functionality.
All tool names follow a consistent verb_noun pattern with underscores (e.g., approve_pr, get_pr_diff), making them predictable and easy to distinguish.
Six tools is an ideal size for a focused PR review server, covering the essential actions without being overwhelming or sparse.
The set covers the core PR review workflow (list, diff, comments, approve, request changes) but lacks features like merging or dismissing reviews, which are minor gaps given the server's specific scope.
Related MCP Connectors
Operate GitHub from your AI assistant: repos, PRs, issues, Actions. Previews and read-only mode.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Access the GitHub API, enabling file operations, repository management, search functionality, and…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform comprehensive GitHub pull request code reviews, including analysis of code patterns, complexity, and security issues, while managing review comments and ensuring compliance with team coding standards.2MIT
- AlicenseAqualityDmaintenanceProvides GitHub PR review capabilities to LLMs, enabling automated PR analysis, review submission, and inline commenting via MCP.1426 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables reviewing GitHub pull requests via ChatGPT, including listing PRs, viewing diffs, posting comments, approving, and requesting changes.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to autonomously review GitHub Pull Requests by listing PRs, retrieving diffs, and submitting structured reviews.ISC