Skip to main content
Glama

pr-reviewer-mcp

An MCP server exposing AI-powered GitHub PR review as tools, adapted from codewarrior (a webhook-driven GitHub App) into an on-demand tool server.

Why this exists

The original app reviews automatically when a PR opens — event-driven. This version reviews when explicitly asked, by you or by an agent — tool-driven. Same review pipeline (LangChain + Gemini), different trigger model and a different auth model (PAT instead of GitHub App installation tokens, since there's a human in the loop at call time instead of a webhook).

Related MCP server: AI-PR-Review-MCP

Tools

Tool

Description

list_open_prs

List open PRs for a repo

get_pr_diff

Fetch the raw diff, no AI

review_file

AI review of a single file in a PR

review_pr

Full AI review: all files in parallel + synthesized summary

post_review_comment

Post a review as a PR comment

Setup

npm install
cp .env.example .env

Fill in .env:

  • GITHUB_TOKEN — fine-grained PAT with Pull requests (read/write) and Contents (read) permissions on the repos you want to review

  • GOOGLE_API_KEY — from Google AI Studio

Running locally

npm start

This starts the server on stdio. It won't print anything to stdout (that channel is reserved for the MCP protocol) — status logs go to stderr.

Connecting to CLI or VS Code

Add to your MCP config (claude_desktop_config.json or equivalent):

{
  "mcpServers": {
    "pr-reviewer": {
      "command": "node",
      "args": ["/absolute/path/to/pr-reviewer-mcp/src/index.js"],
      "env": {
        "GITHUB_TOKEN": "your-token-here",
        "GOOGLE_API_KEY": "your-key-here"
      }
    }
  }
}

Restart your IDE, then you can ask things like:

"Review PR #12 on srivastava-aryan/dsa-tracker"

and it will call review_pr, decide whether to post it, and call post_review_comment if you confirm.

What changed from the original app

  • Auth: github-auth.js now uses a personal access token via @octokit/rest directly, instead of @octokit/auth-app + installation tokens. No webhook server, no Express, no smee-client.

  • Trigger: no webhook listener. Review happens when a tool is called.

  • Logging: console.log → console.error in the review pipeline, since stdout is reserved for MCP protocol messages on stdio transport.

  • Everything else — prompts, parallel file review, synthesis step — is unchanged from the original reviewer.js and diff-fetcher.js.

Next steps worth exploring

  • Swap stdio transport for HTTP/SSE if you want to host this remotely instead of running it locally per-user

  • Add a list_recent_reviews tool backed by a small DB, so repeated reviews on the same PR don't re-run from scratch

  • Add resource support (server.resource) to expose PR diffs as browsable MCP resources rather than only tool outputs

Available Tools

5 tools
get_pr_diffA

Fetch the raw file-by-file diff for a pull request, with no AI review applied.

Inputs: repo (required), owner (required), pull_number (required).

list_open_prsA

List open pull requests for a GitHub repo, so you can decide which to review.

Inputs: repo (required), owner (required).

post_review_commentA

Post a review (typically the output of review_pr) as a comment on the pull request.

Inputs: body (required), repo (required), owner (required), pull_number (required).

review_fileB

Run an AI code review on a single file within a pull request.

Inputs: repo (required), owner (required), filename (required), pull_number (required).

review_prA

Run a full AI code review on a pull request: fetches the diff, reviews every changed file in parallel, and returns a synthesized markdown review.

Inputs: repo (required), owner (required), pull_number (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool targets a distinct operation: listing PRs, fetching diffs, reviewing individual files, reviewing full PRs, and posting comments. No functional overlap.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (list_open_prs, get_pr_diff, review_file, review_pr, post_review_comment), making them predictable.

    Tool Count5/5

    Five tools is appropriate for a focused PR review server—enough to cover core functionality without being excessive or thin.

    Completeness4/5

    Covers the full review workflow (list, diff, review file, review PR, post comment). Lacks tools for approval or dismissal, but those are outside the stated scope.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      An MCP server that enables AI agents to retrieve detailed GitHub Pull Request information using git commit hashes, branch names, or PR numbers. It automatically detects repositories and extracts comprehensive PR data including descriptions, labels, and reviews via the GitHub CLI.
      1
      6 npm
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI agents to directly manage GitHub repositories, including PRs, issues, and code search, using natural language.
      MIT