critique-mcp
Enables an agent to review pull requests by listing changed files, checking test coverage, linting changed Python files with Ruff, and posting a real review to GitHub.
README
critique-mcp
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.
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.