Skip to main content
Glama

critique-mcp

CI

An MCP server that gives an agent the tools to actually review a pull request — not just summarize the diff, but pull it apart, lint the changed code, flag when tests weren't updated, and post a real review back to GitHub.

Python · Model Context Protocol · GitHub REST API


Tools

Tool

What it does

list_changed_files

Files changed in a PR, with diff stats and patch text

check_test_coverage

Flags PRs that change source files without touching any test file

run_linter

Runs ruff against every changed Python file at the PR's head commit

post_review

Submits a real review (comment / approve / request changes) on the PR

Each tool is a thin, independently testable function — run_linter doesn't know how check_test_coverage works, and neither talks to GitHub except through GitHubClient. The agent decides how to combine them; this server just gives it hands.

check_test_coverage is a PR-level heuristic, not per-file coverage instrumentation: it flags "source files changed, zero test files touched anywhere in this PR," the same coarse signal tools like Danger.js use. A PR that changes five source files and touches one unrelated test won't be flagged — a precise version would need real coverage data, not filenames.

Related MCP server: GitHub PR Reviewer

Why this exists

I've found and fixed exactly the kind of bug these tools catch, by hand, in other people's PRs — a vacuous-pass test assertion in chroma-core/chroma, a validator that only checked one element of a list in weaviate-python-client, a float-precision bug in qdrant-client. This turns that review process into tools an agent can call directly, instead of a human doing the same checks by hand every time.

Setup

Requires Python 3.11+, ruff on PATH, and a GitHub personal access token with repo scope (read-only is enough unless you want post_review to work).

cp .env.example .env      # then add your token to .env
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Usage

Add it to Claude Desktop / Claude Code's MCP config:

{
  "mcpServers": {
    "critique": {
      "command": "python",
      "args": ["-m", "critique_mcp.server"],
      "env": { "GITHUB_TOKEN": "ghp_..." }
    }
  }
}

Then ask the agent to use it: "Use critique to review PR #42 on owner/repo — check for lint issues and missing tests, then post a summary review."

Tests

pytest

Every GitHub API call is mocked in tests — nothing here makes a live network call unless you run the server itself.

Related MCP Connectors

Related MCP Servers