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: devflow-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.logconsole.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

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

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/srivastava-aryan/cmw-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server