github-pr-review-mcp

jamesjfoong/github-pr-review-mcp

3.2

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.

Tools
8
Resources
0
Prompts
0

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 and read: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

  1. Get GitHub Token: Generate a Personal Access Token with scopes:

    • repo (full repository access)
    • read:user (read user profile data)
  2. Configure Environment:

    cp .env.example .env
    # Edit .env and add your token:
    GITHUB_TOKEN=your_github_token_here
    
  3. 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

ToolDescriptionParameters
get_pr_reviewsGet all reviews for a PRowner, repo, prNumber
get_pr_commentsGet all comments on a PRowner, repo, prNumber
analyze_pr_codeAI code analysis with security/quality checksowner, repo, prNumber
get_pr_filesList changed files with statsowner, repo, prNumber
get_pr_detailsGet comprehensive PR informationowner, repo, prNumber
submit_pr_reviewSubmit a review (approve/request changes/comment)owner, repo, prNumber, body, event, comments?
add_pr_commentAdd general or line-specific commentsowner, repo, prNumber, body, path?, line?, in_reply_to?
update_prUpdate PR title, description, or stateowner, 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 TypeScript
  • npm run dev - Development mode with auto-reload
  • npm start - Run compiled server
  • npm run prepublishOnly - Build before publishing

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Add tests if applicable
  5. Run npm run build to ensure it compiles
  6. Submit a pull request

API Requirements

Your GitHub token needs these permissions:

  • Repository access: repo scope for private repos, or public_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

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.