Skip to main content
Glama
sbanthia92

Second Read

Second Read

Second Read reviews a draft the way a careful editor would, and shows its sources. You give it an article, a blog post or a design doc. It returns one report:

  • Facts checked against the web. Each claim is looked up, and every "this is wrong" comes with the page that says so.

  • The strongest counter-case. A devil's advocate builds the best argument against your piece from sources it retrieves.

  • Copy edits. Grammar and clarity fixes that keep your voice.

  • Originality notes. Sentences that closely match text found online.

It runs as an MCP server with one tool, review_document, so you can ask for a review from Claude Code or Claude Desktop. It also has a command-line tool. It runs on your machine with your own API keys; nothing is sent to the author of this project.

A finding looks like this:

Factual error — "Mjällby clinched the title on 20 October 2025 by winning 2-0 at IFK Göteborg, with two games to spare"

The date, the 2-0 score and the opponent are confirmed. ESPN and Flashscore both say three rounds were left (27 of 30 played), so "two games to spare" is wrong.

What you need

  • uv (it installs Python 3.12 for you).

  • An Anthropic API key: ANTHROPIC_API_KEY.

  • A Tavily search key: TAVILY_API_KEY.

Getting your keys

You need two keys. Each takes a couple of minutes: sign up, create a key, copy it.

Key

Where to get it

ANTHROPIC_API_KEY

Sign in at https://platform.claude.com, add credit under Billing, then create a key under API keys (https://platform.claude.com/settings/keys)

TAVILY_API_KEY

Sign up at https://app.tavily.com; the key is shown on the dashboard

The Anthropic key is pay-as-you-go: reviews fail with a clear message if the account has no credit. Keep keys out of chats and out of version control; put them in the MCP client's env block or in a .env file as shown below.

A review of a 700-word article takes about two minutes and uses roughly 150,000–180,000 tokens on your model key (about $0.60–$1.20 at Anthropic's list prices in October 2026) plus about 30 searches.

Related MCP server: footnote

Install: Claude Code

claude mcp add second-read \
  -e ANTHROPIC_API_KEY=your-key \
  -e TAVILY_API_KEY=your-key \
  -- uvx second-read

Start Claude Code with a longer tool timeout, because a review takes minutes:

MCP_TOOL_TIMEOUT=600000 claude

Then ask: "Use second-read to review this draft", and paste the text or give a public URL.

Install: Claude Desktop

Add this to claude_desktop_config.json (on macOS: ~/Library/Application Support/Claude/claude_desktop_config.json), then restart the app. If Claude Desktop cannot find uvx, use its full path (which uvx).

{
  "mcpServers": {
    "second-read": {
      "command": "uvx",
      "args": ["second-read"],
      "env": {
        "ANTHROPIC_API_KEY": "your-key",
        "TAVILY_API_KEY": "your-key"
      }
    }
  }
}

To try it without keys, replace the env block with {"SECONDREAD_FAKE": "1"}. Demo mode returns placeholder findings and makes no model calls.

Command line

export ANTHROPIC_API_KEY=your-key TAVILY_API_KEY=your-key
uvx --from second-read secondread review path/to/draft.md --profile opinion > report.md

Or keep the keys in a .env file and pass it with --env-file path/to/.env.

Progress prints to the terminal; the report goes to report.md. Use --profile design_doc for technical design docs, or leave the profile out to let the tool decide. A URL works in place of a file path.

The tool

review_document takes:

Argument

Required

Notes

content

one of content / url

The draft as text or markdown (up to 20,000 words)

url

one of content / url

A public web page to fetch and review

profile

no

auto (default), opinion or design_doc

focus

no

A steer, e.g. "check the financial figures"

It returns the report as markdown and sends progress updates while it works.

The report has these sections: a verdict line; Must fix (factual errors and claims the sources do not back); Could not verify (claims it found no adequate source for, which is not the same as wrong); Strongest counter-case; Should fix (structure); Polish (copy edits); Originality notes; and an appendix listing every claim with its verdict and sources.

Settings

Set these in the MCP client's env block, in the environment, or in a .env file (the server reads .env from its working directory, or the file named by SECONDREAD_ENV_FILE).

Variable

Purpose

ANTHROPIC_API_KEY

Anthropic model key

TAVILY_API_KEY

Web search key

SECONDREAD_MODEL_CHEAP, _MID, _STRONG

Override the model used for each tier

SECONDREAD_MAX_WORDS

Document size cap (default 20000)

SECONDREAD_FAKE=1

Demo mode: no keys, no model calls

What leaves your machine

  • Your document goes to Anthropic, under your key and their terms.

  • Search queries built from your document's claims, and up to eight sentences quoted exactly for the originality check, go to Tavily.

  • Web pages named in search results are fetched directly from your machine. The fetcher refuses private and local network addresses.

Nothing is stored after the review finishes, and nothing is sent anywhere else. Keys are read from your environment and are never logged.

How well it works

Measured on a small test in October 2026: four articles with planted errors that cannot be caught from memory (recent results, exact figures), one run each, compared with asking the same model to "review this and argue the other side" in a single prompt.

Single prompt

Second Read

Planted wrong facts caught (19)

7

13

...with a cited source

0

13

Weak arguments rebutted (4)

2

4

Borrowed sentences caught (3)

3

1

Tokens per article

about 5,000

about 136,000

Second Read earns its cost on claims that need looking up: recent events, exact figures, and details a model cannot know from memory. Every finding names its source, so you can check it in one click.

Getting the most from it:

  • Open the cited source before acting on a "factual error". The report links the page and quotes the passage it relied on.

  • Search results change, so two runs on the same draft can differ slightly.

  • The originality check is a heuristic: it flags close matches found online.

  • Sources are web pages; PDFs are not read.

How it works

An orchestrator runs specialist agents and settles their disagreements:

  1. A claim extractor splits the document into its thesis, supporting claims and checkable facts.

  2. In parallel: a fact-checker researches each fact in a bounded loop (search, fetch, read, assess; at most three rounds per claim); a devil's advocate gathers counter-evidence; a copy editor; for articles, an originality checker; and, for design docs, a structure reviewer.

  3. A reaction round: a verified fact the devil's advocate disputes is re-checked, and the two argue once over the most important disagreements.

  4. Fixed rules settle what is left (for example, a grammar fix on a sentence flagged as wrong is dropped), findings are ranked, and the report is written.

DESIGN.md has the full design. ARCHITECTURE.md describes the shared types.

Development

uv sync
uv run ruff check . && uv run ruff format --check . && uv run mypy && uv run pytest

Tests run offline with fakes. Tests that call real providers are marked live and skipped by default (uv run pytest -m live). The evaluation harness and its 40 seeded documents are in eval/ (see eval/README.md); running it against real providers spends money on your keys.

Status

The local MCP server and command-line tool work. A hosted version (sign in, add a key once, get the report by email) is designed in DESIGN.md but not built. ROADMAP.md lists what comes next.

License

MIT. See LICENSE.

Available Tools

1 tool
review_documentA

Review a document draft with a desk of specialist agents: a fact-checker that cites sources, a devil's advocate that builds the strongest counter-case, a structure reviewer, a copy editor and an originality check. Returns a markdown report (must fix, counter-case, should fix, polish, originality notes, claim ledger). Pass exactly one of content (the text or markdown) or url (a public page). Reviews take a few minutes.

NameRequiredDescriptionDefault
urlNoA public http(s) page to fetch and review, instead of `content`.
focusNoOptional steer, e.g. "check the financial figures".
contentNoThe document text or markdown. Give this or `url`, not both.
profileNo`auto` (detect), `opinion` (essays, op-eds, posts) or `design_doc` (technical designs and proposals).auto

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it names the multi-agent review mechanism, lists the report sections returned, and warns that reviews take minutes. It does not clarify whether the call blocks for that duration or returns a job handle, which is the one behavioral gap left.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the exactly-one-input rule are front-loaded, and every sentence carries information. The roster of specialist agents is slightly verbose but it sets expectations for the output, so it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain the return value, and it does so explicitly by enumerating the markdown report sections. Input rules, latency and output format are all covered for a four-parameter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by stating the mutual-exclusivity rule between `content` and `url`. The report-section list also implicitly maps to the `focus` and `profile` steers, though it doesn't spell out how `profile` changes reviewer behaviour.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("review a document draft") and enumerates the concrete review passes an agent can expect. No sibling tools exist, so there is no competing option an agent could confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the explicit input constraint "Pass exactly one of `content` or `url`" and the latency expectation "Reviews take a few minutes", which is real guidance on when this call is appropriate. It stops short of true when/when-not framing (e.g. unsuitable document types) but there are no alternatives to route to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.3
    • First observedreview_document

TDQS

A4.2/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of selecting the wrong one. The description clearly delineates its scope (multi-agent document review) with an explicit mutual-exclusivity rule between `content` and `url`.

Naming Consistency4/5

The single name `review_document` follows a clear verb_noun snake_case convention and is self-explanatory. With only one tool there is no pattern to cross-check, so consistency is trivially satisfied but unverifiable.

Tool Count3/5

A single tool is defensible for a narrow, single-capability server, but the surface is thin: everything (fact-checking, counter-case, structure, copy edit, originality) is bundled into one opaque call with no way to request a subset of reviewers.

Completeness3/5

The one tool covers the full review report in a single call, but a job that 'takes a few minutes' has no status/polling or async retrieval path, and there is no follow-up operation (e.g. re-review a revised draft or compare versions). Agents can work around this by re-invoking, but it is a notable gap for a long-running operation.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides Claude Code with local-first multimodal semantic search across documents, code, images, and video, plus multi-engine web research with active counter-evidence hunting and source-verified, extract-only briefings.
    4
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to verify their own output mid-task by checking every claim against provided sources, returning supported, partial, unsupported, or contradicted verdicts with exact citations.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables pre-submission review of ML papers inside Claude Code or Claude Desktop by checking format and anonymization risks, resolving every reference, finding prior work for each claim, verifying quotes against the PDF, and running methodology and writing checks. It reports findings only, never scores, ratings, or accept/reject verdicts, and never rewrites the author's text.
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables agents to verify manuscript references against public scholarly records, checking that cited works exist, match their citations, and have not been retracted or flagged. It also lets an agent gather the best source passages for each citing sentence and record its own claim-support verdicts back into the report.
    4
    MIT