github-pr-review-mcp
Provides tools to review, comment, and manage pull requests on GitHub repositories using the GitHub REST API.
Click on "Install 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-mcpReview PR #12 on user/repo"
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
A Model Context Protocol (MCP) server that provides GitHub PR review capabilities to LLMs in VSCode/Cursor and other compatible AI clients.
Features
๐ MVP Feature 1: Review PRs in GitHub
Get PR Reviews - Fetch all existing reviews for analysis
Get PR Comments - Retrieve all comments and discussions
Analyze PR Code - AI-powered code analysis with security checks and suggestions
Get PR Files - List all changed files with additions/deletions
Get PR Details - Comprehensive PR information including status, author, metrics
โ๏ธ MVP Feature 2: Implement Feedback & Reply to Reviews
Submit PR Review - Submit complete reviews with approval/changes/comments
Add Comments - Add general or line-specific comments to PRs
Reply to Reviews - Respond to existing review comments
Update PRs - Modify PR title, description, or state
๐ฏ MVP Feature 3: Diff-Aware Inline Comments & Pending Reviews
Get Diff Hunks - Retrieve diff hunks with precise line mapping for inline comments
Validate Comment Targets - Verify if a line/path is valid in the PR diff before commenting
Pending Review Management - Create, retrieve, and manage draft reviews
List Draft Comments - View all pending comments before submitting a review
No HTML Scraping - All operations use GitHub REST APIs for reliability
Related MCP server: GitHub MCP Agent Server
Quick Start
Prerequisites
Node.js 20.19.0 or higher
GitHub Personal Access Token with
repoandread:userscopes
Installation
Option 1: Global Installation (Recommended)
npm install -g github-pr-review-mcpOption 2: Development Setup
git clone https://github.com/jamesjfoong/github-pr-review-mcp.git
cd github-pr-review-mcp
npm install
npm run buildSetup
Get GitHub Token: Generate a Personal Access Token with scopes:
repo(full repository access)read:user(read user profile data)
Configure Environment:
cp .env.example .env # Edit .env and add your token: GITHUB_TOKEN=your_github_token_hereConfigure in Cursor/VSCode: Add to your MCP settings (usually in
~/Library/Application Support/Cursor/User/globalStorage/rooveterinaryinc.cursor-small/settings/cline_mcp_settings.json):{ "mcpServers": { "github-pr-review": { "command": "npx", "args": ["github-pr-review-mcp"] } } }
Available Tools
Tool | Description | Parameters |
| Get all reviews for a PR |
|
| Get all comments on a PR |
|
| AI code analysis with security/quality checks |
|
| List changed files with stats |
|
| Get comprehensive PR information |
|
| Submit a review (approve/request changes/comment) |
|
| Add general or line-specific comments |
|
| Update PR title, description, or state |
|
| Get diff hunks with line mapping for inline comment placement |
|
| Validate if a comment target exists in the PR diff |
|
| Create or reuse a pending review for draft comments |
|
| Get the current pending review (if any) |
|
| List all draft comments in the pending review |
|
Usage Examples
Example 1: Review a PR
๐ค: Please review PR #123 in microsoft/vscode
1. Get PR details: get_pr_details(owner: "microsoft", repo: "vscode", prNumber: 123)
2. Get changed files: get_pr_files(owner: "microsoft", repo: "vscode", prNumber: 123)
3. Analyze code: analyze_pr_code(owner: "microsoft", repo: "vscode", prNumber: 123)
4. Submit review: submit_pr_review(owner: "microsoft", repo: "vscode", prNumber: 123, body: "LGTM! Great work on...", event: "APPROVE")Example 2: Implement Feedback
๐ค: The reviewer asked me to fix the error handling in line 45 of src/utils.ts
1. Add line comment: add_pr_comment(owner: "owner", repo: "repo", prNumber: 123, body: "Fixed error handling as requested", path: "src/utils.ts", line: 45)
2. Update PR description: update_pr(owner: "owner", repo: "repo", prNumber: 123, body: "Updated PR description with changes made...")Example 3: Draft Review with Inline Comments (New!)
๐ค: Create a draft review with inline comments on PR #123
1. Ensure pending review exists: ensure_pending_review(owner: "owner", repo: "repo", prNumber: 123, body: "Draft review comments")
2. Get diff hunks to find valid lines: get_pr_diff_hunks(owner: "owner", repo: "repo", prNumber: 123)
3. Validate comment target: validate_pr_comment_target(owner: "owner", repo: "repo", prNumber: 123, path: "src/main.ts", line: 45, side: "RIGHT")
4. Add inline comment if valid: add_pr_comment(owner: "owner", repo: "repo", prNumber: 123, body: "Consider refactoring this method", path: "src/main.ts", line: 45)
5. List pending comments to verify: list_pending_review_comments(owner: "owner", repo: "repo", prNumber: 123)
6. Submit the review when ready: submit_pr_review(owner: "owner", repo: "repo", prNumber: 123, body: "Overall looks good!", event: "COMMENT")Example 4: AI-Powered PR Review with Custom Prompt
๐ค: Review PR #123 using AI with custom guidelines
1. Get review prompt: review_pr_with_prompt(owner: "owner", repo: "repo", prNumber: 123, customPrompt: "Focus on security vulnerabilities and performance issues")
2. Use the returned reviewPrompt with your LLM to generate a review
3. Format the LLM response into review comments
4. Submit review: submit_pr_review(owner: "owner", repo: "repo", prNumber: 123, body: "AI-generated review...", event: "COMMENT")Example 5: Automated Code Analysis
The analyze_pr_code tool automatically detects:
๐ Security issues: API key exposure, hardcoded passwords, XSS vulnerabilities
๐งน Code smells: Console statements, debugger statements, TypeScript
anytypes๐ Quality metrics: Large file changes, missing tests, complexity analysis
โ Suggestions: Breaking large PRs, adding tests, security improvements
Development
AI Code Editors: If you're using Cursor, GitHub Copilot, or other AI code editors, this repository includes automatic configuration files:
.cursor/rules/- Project rules (always applied)
.cursor/agents/- Custom subagents for specialized tasks
.cursor/skills/- Agent skills for procedural workflows
.github/copilot-instructions.md- GitHub Copilot instructions
AGENTS.md- General AI agent instructions
Project Structure
github-pr-review-mcp/
โโโ src/
โ โโโ index.ts # Main MCP server entry point
โ โโโ github-service.ts # GitHub API integration
โ โโโ code-analyzer.ts # Code analysis engine
โ โโโ types.ts # TypeScript type definitions
โโโ dist/ # Compiled JavaScript output
โโโ scripts/
โ โโโ setup.sh # Automated setup script
โโโ package.jsonScripts
npm run build- Compile TypeScriptnpm run dev- Development mode with auto-reloadnpm start- Run compiled servernpm run prepublishOnly- Build before publishing
Contributing
Fork the repository
Create a feature branch:
git checkout -b feature/amazing-featureMake your changes
Add tests if applicable
Run
npm run buildto ensure it compilesSubmit a pull request
API Requirements
Your GitHub token needs these permissions:
Repository access:
reposcope for private repos, orpublic_repofor public repos onlyUser data:
read:userfor accessing user profile informationOptional:
write:discussionfor advanced discussion features
Troubleshooting
Common Issues
1. "GITHUB_TOKEN environment variable is required"
Solution: Copy
.env.exampleto.envand add your GitHub token
2. "Cannot find module" errors
Solution: Run
npm installto install dependencies
3. Rate limiting
The server includes automatic rate limiting and retry logic
GitHub API has limits: 5,000 requests/hour for authenticated requests
4. Permission errors
Ensure your GitHub token has
reposcope for the repositories you want to accessFor organization repos, you may need additional permissions
Debug Mode
Enable debug logging by setting in your .env:
DEBUG=trueRoadmap
Future Features
๐ Auto-merge capabilities
๐งช Test execution integration
๐ PR metrics and analytics
๐ค Automated code fixes based on review comments
๐ Advanced search and filtering
๐ Reporting and dashboards
License
MIT License - see LICENSE file for details.
Support
๐ Documentation: GitHub Wiki
๐ฌ Discussions: GitHub Discussions
๐ Issues: Report bugs
๐ Security: See SECURITY.md
Author
James Jeremy Foong - @jamesjfoong
โญ Star this repo if you find it useful!
๐ Report issues on GitHub Issues
๐ค Contributing is welcome! See our contributing guidelines above.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamesjfoong/github-pr-review-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server