Skip to main content

Reviewer Zero

An open-source MCP server that reviews your ML paper before submission the way a strict PI would: format and anonymization, every reference, prior work for each claim, a methodology checklist and a writing check, with every quote checked against your PDF. It runs inside Claude Code or Claude Desktop, on your own Claude plan. It never gives a score, a rating or an accept/reject verdict, and it never rewrites your text.

MIT licensed. Package reviewer-zero (import name reviewer).

Install

You need uv and a free index key. Get a free key at https://tryreviewerzero.com. Questions: hello@tryreviewerzero.com. The key meters use of the hosted search index; it is not a payment method.

Claude Code

claude mcp add reviewer-zero -e REVIEWER_ZERO_INDEX_KEY=<your key> -- uvx reviewer-zero
# the review workflow (the skill), so Claude knows the order and the rules:
git clone https://github.com/rishab-ghosh/reviewer-zero
mkdir -p ~/.claude/skills && cp -r reviewer-zero/skills/reviewer-zero ~/.claude/skills/

Then ask: "Review my paper at ~/papers/draft.pdf for ICLR 2027."

Claude Desktop: add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "reviewer-zero": {
      "command": "uvx",
      "args": ["reviewer-zero"],
      "env": { "REVIEWER_ZERO_INDEX_KEY": "<your key>" }
    }
  }
}

and add skills/reviewer-zero as a skill (zip the folder and upload it in Claude's skills settings), or paste skills/reviewer-zero/SKILL.md into a project's instructions.

Optional, recommended: GROBID for the best reference parsing (and required by review_paper). It runs locally; your PDF never leaves your machine for it:

docker run --rm -p 8070:8070 grobid/grobid:0.9.1-crf

Without it, check_citations reads the reference list from the PDF's text layer and resolves about 72% as many references (see "Measured" below).

Two ways to review

The default: the skill, on your Claude plan, no API key. Claude reads your paper and writes the review following skills/reviewer-zero/SKILL.md; the tools do retrieval and the checks that need code. Every quote goes through verify_quotes before Claude may use it.

The measured pipeline: review_paper, on your own ANTHROPIC_API_KEY. Our prompts and models, the pipeline we measured on the dev set. It needs a local GROBID and the key in the server's environment (-e ANTHROPIC_API_KEY=...). It always shows an estimate and a hard spending limit first (confirm=false spends nothing) and runs only after you agree. Two novelty settings:

novelty= Candidates per claim sent to the reranker Dev recall@10 Demo paper, end to end Demo paper, cost
full (default) 150 43.2% (32 / 74) 172 s $1.61
lite 60 36.5% (27 / 74) ≈ 2 min ≈ $0.88

Recall is on the same 50 dev cases (74 prior works named by real reviewers); times and costs are one run each on our 4-page demo paper (docs/demo), so a long paper takes longer.

Timeouts and the cheap resume. Claude Code stops waiting for a tool after its MCP tool timeout; start it with a longer one for review_paper:

MCP_TOOL_TIMEOUT=900000 claude

If a call still times out, call review_paper again on the same PDF: finished steps are served from the local cache (~/.cache/reviewer-zero) and only the unfinished ones are paid for.

Tools

Tool What it does Needs Sends off your machine
check_format(pdf_path, venue, stage) desk-reject risks: names, emails, self-citations, identifying URLs, PDF metadata, page limits, required sections nothing nothing
check_citations(pdf_path) resolves every reference; flags unresolved, wrong year, wrong authors, arXiv-now-published, duplicates index key titles, DOIs and arXiv ids of the works you cite
find_prior_work(queries, before, k) 40 candidates for one claim from 6–10 component queries, with BibTeX index key the queries Claude writes
paper(key), citations(key) one paper's details; one hop of its citation graph index key the paper key
verify_quotes(pdf_path, quotes) checks each quote appears verbatim in your PDF, with its page nothing nothing
review_paper(pdf_path, venue, confirm, novelty) the measured pipeline (above) index key, ANTHROPIC_API_KEY, local GROBID your paper's text to Anthropic under your key; queries and cited titles as above

Quota. A key allows 600 units an hour and 5,000 a day. One find_prior_work call costs about 17 units (6–10 searches plus two expansion calls), so about 35 calls an hour.

Privacy

  • Reviewer Zero's tools never send your PDF or its text anywhere, except to Anthropic under your own key in review_paper. (In the skill path, Claude itself reads the paper through your Claude client, as with any file you give it.)
  • Only search queries, paper keys and the titles, DOIs and arXiv ids of works you cite go to our index; cited works' identifiers may also go to OpenAlex, Crossref and arXiv to resolve them.
  • GROBID is used only at a local address (localhost); any other GROBID_URL is ignored.
  • No telemetry. The index counts requests per key and stores no query text.
  • tests/test_mcp_privacy.py runs every tool on a test paper and fails if any request goes to another host or carries a sentence of the paper's body.

Measured

Dev-set numbers, measured on 2026-10-02 unless noted; details, caveats and suggested wording in docs/MEASURED_CLAIMS.md.

  • Prior-work recall@10, measured pipeline (review_paper): 43.2% full, 36.5% lite, on 50 dev cases with 74 reviewer-named prior works.
  • Prior-work recall, MCP path (Claude writes the queries from the tool description, then ranks the 40 candidates): 25.7% with Sonnet 5, 27.0% with Opus 5.5 (recall@10, same 50 cases; today's index). The gap to the pipeline is mostly retrieval: the pipeline reranks 150 candidates per claim, the tool returns 40. For the most thorough prior-work search, use review_paper.
  • Skill path, end to end (Opus 5.5, 6 dev papers): about 4 minutes per paper; 184 of 188 quotes Claude submitted were verified (it must fix or drop the rest); no score or verdict sentence in any review. Too few papers for a recall number.
  • find_prior_work latency: median 5.2 s for 6 queries against the hosted index (16 calls from Austin, TX, 4.7–9.3 s): about 2.4 s of searches, 2.3 s of citation-graph expansion and 0.3 s of metadata, with at most 4 index requests in flight (the per-key limit). On a local copy of the index the same call takes a median 1.6 s.
  • check_citations without GROBID: 72.3% as many references resolved as with GROBID (30 dev papers).
  • Index: about 1.09 million papers (577k arXiv papers in ML and adjacent fields since 2017, plus works they cite and venue papers not on arXiv), 28.3 million citation edges, updated nightly.

Licence

MIT (LICENSE). Runtime dependencies are permissively licensed: mcp, anthropic, pydantic, pydantic-settings, typer, pyyaml, pdfplumber (MIT); httpx, lxml, pypdf, numpy (BSD); the optional docling extra (MIT). GROBID, run separately as a container, is Apache-2.0.

Development

make setup        # uv sync, pre-commit install
make lint test    # ruff and pytest; tests never touch the network

The pipeline behind review_paper is in src/reviewer/: parse/ (GROBID), claims/, novelty/, methods/, writing/, citations/, format/, meta/ (including the leak filter that keeps scores and verdicts out of every output), review/ (orchestration, budget) and mcp/ (the server and its tools). Prompts are versioned files next to each step.

Metadata

Release files for reviewer-zero 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reviewer-zero 0.1.0
File Size Uploaded
reviewer_zero-0.1.0.tar.gz 321.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reviewer-zero 0.1.0
File Interpreter ABI Platform
reviewer_zero-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 743.6 kB

Release files / reviewer_zero-0.1.0.tar.gz

Download URL reviewer_zero-0.1.0.tar.gz
Size 321.0 kB
Tags Source
SHA-256 checksum
How to use checksums
98f9d087ee674595c5b88dee471063e704d31d523ddda8c1c4c4770138edffe5
BLAKE2b-256 checksum
How to use checksums
0d1aa9a7318f7924009537c05b917b5f49fcb08a0fc120506faa92ece9b27c55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / reviewer_zero-0.1.0-py3-none-any.whl

Download URL reviewer_zero-0.1.0-py3-none-any.whl
Size 422.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
83c71cc9b3467089e05b6142c2e2b5bc00e9e48b3590ef22be54327de2e2a3bc
BLAKE2b-256 checksum
How to use checksums
cdb6935ff48f68d5bdf2344875a7001ac9811a99b69fc4acc26d912d75293a91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page