Claude Science + CiteProof MCP

Give Claude Science a verifiable research workflow

A research agent can draft a paper, but the decisions and evidence behind it also need a traceable record. CiteProof MCP is a local audit layer: Claude Science does the research, CiteProof records and checks the review artefacts.

Claude Science

Get the CiteProof MCP

One command. Runs on your computer. Works with Claude Science, Claude Desktop and Claude Code.

npx -y citeproof-mcp

Need Claude Science? Read the local connector steps or follow the bundle build guide. For the one-click Desktop path, get the latest .mcpb release.

Browse the documentation home

Review records with a clear trail

What the MCP server does

CiteProof MCP adds the record-keeping parts of a systematic review to a research agent. It has 24 tools in seven groups, every tool returns ok, and the server contains no language model: the agent makes each judgement, while the server validates its shape and computes the numbers.

Review setup and status

Create a review with a title, question and optional year range; the server returns a review_id and the next step. review_status reports the current phase, missing protocol fields, PRISMA counts, coverage gaps and up to 10 next steps. It is read-only, so it is safe to call at any point.

Protocol record

Store PICO fields, study designs, inclusion and exclusion criteria, databases, search strategy, registration, risk-of-bias tool and synthesis method. Omitted fields keep their value, '' or [] clears one, and every edit to an existing value is logged as an amendment. The result names required and recommended fields that are still missing.

PRISMA search log

Record one row per database search with its source, query, run date and hit count. Repeating the same source, query and date updates the count instead of double-counting, while changing a count clears the dedup record because it belonged to a different record set. The result returns records by source and names any cleared dedup state.

Deduplication

Cluster up to 10,000 exported records by normalised DOI, PMID, or a 20+ character title with the same year and first-author surname; matching is transitive and the most complete record is kept. With a review_id, a count is saved only when the call covers every recorded hit; partial batches are analysed but not recorded. A title match with a different year or author stays a possible duplicate rather than being merged.

Counts and invariants

Compute identified, deduplicated, screened, sought, assessed, excluded and included counts from the stored searches, dedup row and screening decisions. The result checks PRISMA invariants, flags full-text decisions without a title/abstract include and reports what is still pending. complete is true only when every post-dedup record has a title/abstract decision and the numbers agree.

Flow diagram and checklist

Render the PRISMA flow as Mermaid, SVG or Markdown, with the top full-text exclusion reasons and a pending box when needed; agent text is escaped for each format. Check a draft against the 27 PRISMA 2020 items by keyword and compare sentences that state counts with the recorded counts. It reports missing items and number mismatches, and labels itself a keyword check rather than a quality score.

Screening decisions

Record include or exclude at title/abstract and full text, plus not_retrieved at full text; an exclusion needs a reason and every decision carries a reviewer name. Upserts are keyed by paper, stage and reviewer, and bulk writes of up to 500 decisions are all-or-nothing with the failing index. List and filter the log by stage, reviewer, decision or paper.

Reviewer agreement

Compute Cohen's kappa for two reviewers at one stage over the papers they both judged include or exclude. The result includes the 2×2 table, observed and expected agreement, kappa, the Landis–Koch band, disagreements and each reviewer's unique decisions. not_retrieved pairs are counted as not judged; kappa is null when nothing is shared or expected agreement is 1.

Evidence extraction and quote checks

Store one row per paper and outcome with design, effect measure, estimate, confidence interval, sample and context. Every quote is checked against the supplied source text, and every number in the row must also appear in the quote. The table exports as Markdown, CSV or JSON and counts unverified quotes and number mismatches; source text is kept only as length and SHA-256.

Claims and claim report

Record each claim as supported, partial or unsupported with a reason; supported and partial claims also need a quote and source text. The report counts labels, lists supported or partial claims whose quote failed, and finds weak claims repeated verbatim in the draft. It checks the record you supplied, not whether the science is correct.

Risk of bias

Record RoB 2 (D1–D5), ROBINS-I (D1–D7) or NOS cohort/case-control domains with judgements and supporting quotes. The summary applies the published overall rules, keeps incomplete tools incomplete, and returns traffic-light rows and counts. A recorded overall judgement outside the rule is ignored with a note.

DOI verification

Check up to 100 DOIs or doi.org URLs against Crossref and doi.org, with title, year, journal, authors and the Crossref retraction flag when available. A registry that cannot be reached returns unverified, never not_found; a value that is not DOI-shaped is rejected before any request. Redirects are not followed.

Citation resolution

Match author-year citations in a draft to as many as 2,000 supplied papers after normalising common forms such as Smith et al. (2020). The result separates resolved, ambiguous, unresolved and orphan papers. Numeric citations are counted, not resolved, and DOI or URL citation groups are left alone.

Prose lint

Lint the draft with the server's prose checks and return issue codes with short notes. It is advisory: it flags style and structure, not scientific correctness or PRISMA completeness.

Audit bundle export

Export the whole trail as one Markdown document: metadata, protocol and amendments, searches, dedup, PRISMA counts with a Mermaid diagram, up to 5,000 screening decisions, agreement, evidence, risk of bias, up to 5,000 claims, saved DOI checks and source-text changes. Source texts are never included and nothing is written to disk.

From question to audit bundle

How a review flows

Start a new review or resume one in progress. The agent records each decision as work moves from the protocol to the final report; people resolve screening differences by consensus.

  1. 01Create or resumereview_create review_list review_status
  2. 02Write the protocolprotocol_record
  3. 03Log every searchprisma_record_search
  4. 04Deduplicate the setdedup_papers prisma_record_dedup
  5. 05Screen title/abstract and full textscreening_record screening_agreement
  6. 06Extract evidenceevidence_record
  7. 07Assess risk of biasrob_record rob_summary
  8. 08Record and check claimsclaim_record claim_report
  9. 09Resolve citations and DOIsresolve_citations verify_dois
  10. 10Check the report and exportprisma_status prisma_flow_diagram prisma_checklist lint_prose export_bundle

Privacy by default

Local by default

Each review uses its own local SQLite database under CITEPROOF_MCP_HOME (default ~/.citeproof-mcp). The server stores review records and checks the source text supplied for quote verification.

  • Local SQLite. Review databases stay on your computer; source text is stored as a length and SHA-256 hash, not verbatim.
  • Never uploaded. Review data is never uploaded to CiteProof. export_bundle returns its content without writing a file.
  • Only DOI checks use the network. verify_dois checks Crossref at api.crossref.org and doi.org; other tools do not make network requests.

A clear division of work

Why use CiteProof with Claude Science

Claude Science searches, reads and writes. CiteProof MCP stores the protocol, counts, screening decisions, evidence, claims and risk-of-bias judgements that led to the draft. The server contains no language model, does not search for papers and does not make scientific judgements.

What the checks mean

CiteProof checks and stores what the agent supplies. It does not independently read papers, verify whether a claim is scientifically true, or replace your judgement. A passing check means the artefact is well formed or the quote was found, not that the conclusion is correct.

The division of labour matters:

Research agent

Claude Science

Searches databases, retrieves full text, decides inclusion, extracts results, grades risk of bias and drafts the report.

Audit layer

CiteProof MCP

Stores those decisions in a local review file, rejects malformed input, checks supplied quotes, computes counts and exports the trail.

Install the local server

Set up CiteProof in Claude Science

Claude Science is the tested path: Windows 11, Claude Science 0.1.67 and a local command connector. The short version is below; the MCP reference lists the exact fields, the bundle script and the data-folder rules.

  1. Create the local connector workspace. In Claude Science, open Customize, then Connectors, then Add connector, then Local command. Name it citeproof and save a placeholder command. The first start creates the workspace folder.
  2. Build the bundle into that folder. Run MCP/scripts/build_claude_science_bundle.py from a checkout of the MCP repository. The script refuses a folder that already holds unrelated files.
  3. Point the connector at the bundle. Edit the connector and replace the placeholder with the bundle's run.py. Use forward slashes in the command field.
  4. Set CITEPROOF_MCP_HOME. Keep review data inside the sandbox workspace. The default is ~/.citeproof-mcp when the variable is unset.
  5. Reconnect and confirm 24 tools. The connector page should list every tool from review_create to export_bundle. Ask for one small tool call before a real review.
python MCP/scripts/build_claude_science_bundle.py "C:/Users/<you>/.claude-science/orgs/<org-id>/workspaces/_mcp-citeproof/bundle"

Two other local paths are available. Both start the same server over stdio and use the same review format.

Claude Desktop extension

New

Download citeproof.mcpb from the latest release, then double-click it or drag it into Claude Desktop → Settings → Extensions and click Install. The extension uses Claude Desktop's built-in Node and installs uv automatically when it is missing.

Open the latest release

Set CITEPROOF_NO_AUTO_INSTALL=1 to opt out of automatic uv installation.

npx configuration

New

For Claude Desktop, Claude Code or another JSON-config client, add this entry. Node 18 or newer is required. The launcher installs uv if it is missing, then uv fetches Python 3.12. Set CITEPROOF_NO_AUTO_INSTALL=1 to opt out of automatic uv installation.

{
  "mcpServers": {
    "citeproof": {
      "command": "npx",
      "args": ["-y", "citeproof-mcp"]
    }
  }
}

Claude Code users can run the equivalent command:

claude mcp add citeproof -- npx -y citeproof-mcp

Review data stays local in SQLite under CITEPROOF_MCP_HOME (default ~/.citeproof-mcp).

Claude Science local command

Tested

The tested route. Build the bundle, add a local command connector, then point it at the bundle with forward slashes. The npx command above starts the same server if your client accepts a stdio command.

python3 C:/Users/<you>/.claude-science/orgs/<org-id>/workspaces/_mcp-citeproof/bundle/run.py

Set the data folder so review files stay inside the sandbox:

CITEPROOF_MCP_HOME=C:/Users/<you>/.claude-science/orgs/<org-id>/workspaces/_mcp-citeproof/data

CiteProof MCP runs as a local stdio process on your computer. There is no CiteProof server for MCP, and review data is never uploaded. claude.ai web custom connectors cannot start a local command, so they are not supported.

Client compatibility

Research-client compatibility

Compatibility is stated as tested, new or untested. “Should work” is not the same as “tested”, and the table does not claim otherwise.

ClientInstall pathStatus
Claude ScienceLocal command connector with the built bundleTested Windows 11, Claude Science 0.1.67
Claude Desktopciteproof.mcpb extensionNew Extension path, not yet broadly tested
Claude Desktopnpx with a JSON mcpServers entryNew Not yet tested for this release
Claude Codeclaude mcp add citeproof -- npx -y citeproof-mcpNew Not yet tested for this release
Cursor, VS Code, WindsurfAny stdio launcher, or npxNot yet tested
claude.ai web custom connectorsCannot start a local stdio commandUnsupported

Claude Science is not the same product as Claude chat or Claude Code. The setup above is written for Claude Science and a local stdio connector; other clients use the same server but have not been verified for this release.

Go deeper

Next steps and troubleshooting

If Claude Science does not list all 24 tools, check the command path first. Backslashes are stripped by the connector form, and a bundle built into the wrong folder will start but expose nothing. Then check that CITEPROOF_MCP_HOME points at a writable folder inside the workspace.

If a tool call fails, read the ok:false response before retrying. The message names the invalid field or the limit that was hit; retrying the same payload will fail the same way. Contact support with the client, the tool name and the exact error.

Ready to inspect the toolset?

Keep every review decision in view.

Explore the full reference, then choose the local install path that fits your client.

npx -y citeproof-mcp