critique-mcp

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.

Category
Visit Server

README

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.

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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured