PR Reviews MCP Server
An MCP (Model Context Protocol) server that lets Cursor check GitHub and Codeberg PRs for change requests, reviews, and conversations.
Features
check_pr_reviews: Get complete review feedback, change requests, code comments, and conversations for a PRget_pr_status: Quick summary of PR review status (approvals, change requests, comment counts)view_diff: Render PR or commit diffs in a beautiful GitHub-style HTML viewer and open in browserview_local_diff: View local git changes (uncommitted, staged, or vs remote) in browser
Setup
1. Install Dependencies
pip install -e .
Or with uv (faster):
uv pip install -e .
2. Create Access Tokens
For GitHub:
- Go to https://github.com/settings/tokens
- Click "Generate new token (classic)"
- Give it a name like "PR Reviews MCP"
- Select scopes:
repo(for private repositories)- Or just
public_repo(for public repositories only)
- Generate and copy the token
For Codeberg (optional):
- Go to https://codeberg.org/user/settings/applications
- Click "Generate New Token"
- Give it a name like "PR Reviews MCP"
- Select scopes:
read:repository(minimum)- Or
write:repository(if you plan to add write features later)
- Generate and copy the token
3. Configure Environment
cp .env.example .env
# Edit .env and add your tokens (at least one is required)
You need at least one token configured (GitHub or Codeberg) depending on which platforms you want to use.
4. Add to Cursor
Add this to your Cursor MCP settings (~/.cursor/mcp.json or workspace settings):
{
"mcpServers": {
"pr-reviews": {
"command": "python",
"args": ["-m", "pr_reviews_mcp.server"],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"CODEBERG_TOKEN": "your_codeberg_token_here"
}
}
}
}
Or if using uv:
{
"mcpServers": {
"pr-reviews": {
"command": "uvx",
"args": ["--from", "/Users/ryanli/Documents/GitHub/issues-mcp", "pr-reviews-mcp"],
"env": {
"GITHUB_TOKEN": "your_github_token_here",
"CODEBERG_TOKEN": "your_codeberg_token_here"
}
}
}
}
Usage in Cursor
Once configured, you can ask Cursor things like:
- "Check the PR at https://github.com/owner/repo/pull/123 for change requests"
- "What's the review status of https://codeberg.org/owner/repo/pulls/456?"
- "Show me all conversations on this PR"
- "Show me the diff for https://github.com/owner/repo/pull/123"
- "View the changes in https://codeberg.org/owner/repo/commit/abc123"
- "Show me my uncommitted changes"
- "View my staged changes"
- "Compare my branch to origin/main"
The MCP server will fetch:
- ✅ All reviews (approved, changes requested, comments)
- 💬 Code-level review comments
- 📝 General PR conversation comments
- ⚠️ Change requests with reviewer feedback
- 🎨 Beautiful diff viewer with GitHub-style UI
See EXAMPLES.md for more detailed usage examples and sample outputs.
Tools
check_pr_reviews
Get complete PR review information including all change requests and conversations.
Input:
pr_url: Full PR URL (e.g.,https://github.com/owner/repo/pull/123orhttps://codeberg.org/owner/repo/pulls/123)
Returns:
- Change requests with reviewer feedback
- All reviews with states (approved/changes requested/commented)
- Code review comments with file paths and line numbers
- General PR conversation comments
get_pr_status
Quick summary of PR review status.
Input:
pr_url: Full PR URL (GitHub or Codeberg)
Returns:
- Number of approvals
- Number of change requests
- Comment counts
- List of reviewers requesting changes
view_diff
Render PR or commit diff in a beautiful GitHub-style HTML viewer.
Input:
url: PR URL or commit URL (e.g.,https://github.com/owner/repo/pull/123orhttps://github.com/owner/repo/commit/abc123)
Returns:
- Opens HTML diff viewer in your browser
- GitHub-style syntax highlighting
- Shows all file changes with additions/deletions
- Dark theme matching GitHub's design
view_local_diff
View local git changes in browser with GitHub-style formatting.
Input:
repo_path: Path to git repository (any directory inside works)diff_type: (optional) Type of diff:"uncommitted"- Working directory changes (default)"staged"- Staged changes ready to commit"branch"- Compare current branch to remotebranch: (optional) Remote branch to compare against (e.g.,"origin/main")
Returns:
- Opens HTML diff viewer showing local changes
- Same GitHub-style UI as remote diffs
- No network request needed
- Perfect for reviewing before committing
Development
Run directly for testing:
python -m pr_reviews_mcp.server
The server communicates via stdio using the MCP protocol.
Run the test script to verify platform detection:
pip install -e .
python3 test_platforms.py
Platform Support
GitHub
- Full support for all PR reviews, comments, and conversations
- Uses PyGithub library for robust API access
- Requires
GITHUB_TOKENenvironment variable
Codeberg
- Full support via Gitea API (Codeberg runs on Gitea)
- Direct REST API calls using httpx
- Requires
CODEBERG_TOKENenvironment variable - Review state names slightly differ (
REQUEST_CHANGESvsCHANGES_REQUESTED)
Both platforms provide the same features:
- ✅ Review approvals
- ❌ Change requests
- 💬 Code-level review comments with file paths
- 📝 General PR discussion threads











