jamesjfoong/github-pr-review-mcp
If you are the rightful owner of github-pr-review-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The GitHub PR Review MCP server provides GitHub pull request review capabilities to LLMs in VSCode/Cursor and other compatible AI clients.
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
Quick Start
Prerequisites
- Node.js 20.19.0 or higher
- GitHub Personal Access Token with
repo
andread:user
scopes
Installation
Option 1: Global Installation (Recommended)
npm install -g github-pr-review-mcp
Option 2: Development Setup
git clone https://github.com/jamesjfoong/github-pr-review-mcp.git
cd github-pr-review-mcp
npm install
npm run build
Setup
-
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_here
-
Configure 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_pr_reviews | Get all reviews for a PR | owner , repo , prNumber |
get_pr_comments | Get all comments on a PR | owner , repo , prNumber |
analyze_pr_code | AI code analysis with security/quality checks | owner , repo , prNumber |
get_pr_files | List changed files with stats | owner , repo , prNumber |
get_pr_details | Get comprehensive PR information | owner , repo , prNumber |
submit_pr_review | Submit a review (approve/request changes/comment) | owner , repo , prNumber , body , event , comments? |
add_pr_comment | Add general or line-specific comments | owner , repo , prNumber , body , path? , line? , in_reply_to? |
update_pr | Update PR title, description, or state | owner , repo , prNumber , title? , body? , state? |
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: 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
any
types - ๐ Quality metrics: Large file changes, missing tests, complexity analysis
- โ Suggestions: Breaking large PRs, adding tests, security improvements
Development
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.json
Scripts
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-feature
- Make your changes
- Add tests if applicable
- Run
npm run build
to ensure it compiles - Submit a pull request
API Requirements
Your GitHub token needs these permissions:
- Repository access:
repo
scope for private repos, orpublic_repo
for public repos only - User data:
read:user
for accessing user profile information - Optional:
write:discussion
for advanced discussion features
Troubleshooting
Common Issues
1. "GITHUB_TOKEN environment variable is required"
- Solution: Copy
.env.example
to.env
and add your GitHub token
2. "Cannot find module" errors
- Solution: Run
npm install
to 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
repo
scope for the repositories you want to access - For organization repos, you may need additional permissions
Debug Mode
Enable debug logging by setting in your .env
:
DEBUG=true
Roadmap
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 file for details.
Support
- ๐ Documentation: GitHub Wiki
- ๐ฌ Discussions: GitHub Discussions
- ๐ Issues: Report bugs
- ๐ Security: See
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.