Second Read

io.github.sbanthia92由 GitHub 账号 sbanthia92 发布v0.1.4更新于 Oct 30, 2026

Reviews drafts: fact-checks claims against web sources and builds the strongest counter-case.

概览

AI 生成的概览

像编辑一样审阅草稿:对照网络来源核查事实、构建最有力的反方论证,并给出文字修改与原创性提示。

可以做什么
  • 用单一工具 review_document 审阅文本、Markdown 或公开网址形式的草稿,返回一份 Markdown 报告。
  • 对照网络来源核查事实,每个错误都附上出处页面,并单列无法核实的说法。
  • 基于检索到的来源构建针对文章的最强反方论证,并给出结构与文字修改建议。
  • 标出与网上文本高度相似的句子,并在附录中列出每条说法及其判定与来源。
  • 可用 profile(auto、opinion、design_doc)与 focus 提示引导审阅,运行过程中会推送进度。
适用场景
适合在发布前为文章、博客或设计文档找一位“第二读者”,尤其是需要查证的说法:近期事件、精确数字以及模型无法凭记忆知道的细节。若只想要文风建议,则不太划算,因为审阅耗时且消耗大量 token。
运行要求
通过 uvx 以 stdio 在本地运行(uv 会自动安装 Python 3.12)。需要 Anthropic API 密钥(ANTHROPIC_API_KEY)和 Tavily 搜索密钥(TAVILY_API_KEY),在客户端的 env 块或 .env 文件中设置。一次审阅需数分钟,客户端可能需要更长的工具超时。仅限桌面/本地客户端;只连接托管服务器的网页客户端无法运行。
安装前请注意
两个密钥均为必需且费用由你承担:审阅一篇 700 词文章约消耗 15 万至 18 万 token(Anthropic 密钥)并约 30 次搜索。文档会发送给 Anthropic,检索查询及最多八句原文引用会发送给 Tavily。请勿将密钥放入聊天或版本控制。判定为启发式,搜索结果每次可能不同;采纳前请先核对所引来源。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Second Read,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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.

KeyWhere to get it
ANTHROPIC_API_KEYSign 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_KEYSign 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.

Install: Claude Code

sh
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:

sh
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).

json
{  "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.

Install: other MCP clients

Any client that runs local (stdio) MCP servers can use the same command. For Cursor, VS Code and similar, add a server named second-read that runs uvx second-read with ANTHROPIC_API_KEY and TAVILY_API_KEY in its environment, as in the Claude Desktop example above.

Second Read is listed in the official MCP Registry as io.github.sbanthia92/second-read, so clients and directories that read the registry can find it.

ChatGPT and claude.ai on the web connect only to remote (hosted) MCP servers, so they cannot run Second Read yet. A hosted version is on the roadmap.

Command line

sh
export ANTHROPIC_API_KEY=your-key TAVILY_API_KEY=your-keyuvx --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:

ArgumentRequiredNotes
contentone of content / urlThe draft as text or markdown (up to 20,000 words)
urlone of content / urlA public web page to fetch and review
profilenoauto (default), opinion or design_doc
focusnoA 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).

VariablePurpose
ANTHROPIC_API_KEYAnthropic model key
TAVILY_API_KEYWeb search key
SECONDREAD_MODEL_CHEAP, _MID, _STRONGOverride the model used for each tier
SECONDREAD_MAX_WORDSDocument size cap (default 20000)
SECONDREAD_FAKE=1Demo mode: no keys, no model calls

Privacy

Second Read runs on your machine. The project's author runs no server and receives no data.

  • What it collects. Nothing is collected by the project. To do a review the tool handles the document you give it and the web pages it retrieves.
  • What leaves your machine, and where.
    • 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, under your key and their terms.
    • Web pages named in search results are fetched directly from your machine. The fetcher refuses private and local network addresses.
  • Storage and retention. Nothing is stored after the review finishes. The report is returned to your client and is not kept by Second Read. Logs go to your terminal and never contain keys or document text.
  • Sharing. Nothing is shared with anyone else. The only third parties are the model and search providers above, which you choose by supplying their keys.
  • Keys. Read from your environment or a .env file you control, and never logged.
  • Contact. Questions or concerns: open an issue at https://github.com/sbanthia92/second-read/issues. For security problems see SECURITY.md.

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 promptSecond Read
Planted wrong facts caught (19)713
...with a cited source013
Weak arguments rebutted (4)24
Borrowed sentences caught (3)31
Tokens per articleabout 5,000about 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.

ARCHITECTURE.md describes how the system is built, the decisions behind it and their trade-offs, the planned hosted service, and the shared types.

Development

sh
uv syncuv 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 ARCHITECTURE.md but not built. ROADMAP.md lists what comes next.

License

MIT. See LICENSE.

来源:README.md,提交 8e8a29a

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:软件包安装失败。

版本历史

1
  1. v0.1.4最新Oct 29, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分