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.
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.
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.
- 01Create or resume
review_createreview_listreview_status - 02Write the protocol
protocol_record - 03Log every search
prisma_record_search - 04Deduplicate the set
dedup_papersprisma_record_dedup - 05Screen title/abstract and full text
screening_recordscreening_agreement - 06Extract evidence
evidence_record - 07Assess risk of bias
rob_recordrob_summary - 08Record and check claims
claim_recordclaim_report - 09Resolve citations and DOIs
resolve_citationsverify_dois - 10Check the report and export
prisma_statusprisma_flow_diagramprisma_checklistlint_proseexport_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_bundlereturns its content without writing a file. - Only DOI checks use the network.
verify_doischecks Crossref atapi.crossref.organddoi.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.
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.
- Create the local connector workspace. In Claude Science, open Customize, then Connectors, then Add connector, then Local command. Name it
citeproofand save a placeholder command. The first start creates the workspace folder. - Build the bundle into that folder. Run
MCP/scripts/build_claude_science_bundle.pyfrom a checkout of the MCP repository. The script refuses a folder that already holds unrelated files. - 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. - Set
CITEPROOF_MCP_HOME. Keep review data inside the sandbox workspace. The default is~/.citeproof-mcpwhen the variable is unset. - Reconnect and confirm 24 tools. The connector page should list every tool from
review_createtoexport_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
NewDownload 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.
Set CITEPROOF_NO_AUTO_INSTALL=1 to opt out of automatic uv installation.
npx configuration
NewFor 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-mcpReview data stays local in SQLite under CITEPROOF_MCP_HOME (default ~/.citeproof-mcp).
Claude Science local command
TestedThe 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.pySet the data folder so review files stay inside the sandbox:
CITEPROOF_MCP_HOME=C:/Users/<you>/.claude-science/orgs/<org-id>/workspaces/_mcp-citeproof/dataCiteProof 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.
| Client | Install path | Status |
|---|---|---|
| Claude Science | Local command connector with the built bundle | Tested Windows 11, Claude Science 0.1.67 |
| Claude Desktop | citeproof.mcpb extension | New Extension path, not yet broadly tested |
| Claude Desktop | npx with a JSON mcpServers entry | New Not yet tested for this release |
| Claude Code | claude mcp add citeproof -- npx -y citeproof-mcp | New Not yet tested for this release |
| Cursor, VS Code, Windsurf | Any stdio launcher, or npx | Not yet tested |
| claude.ai web custom connectors | Cannot start a local stdio command | Unsupported |
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.
- MCP tool reference: all 24 tools, arguments, limits, result shapes and error handling.
- Troubleshooting: connector, bundle, storage and tool-call problems.
- Claude Science setup notes: the repository's authoritative install walkthrough.
- MCP specification: schemas, limits and data-handling details.
- CiteProof review skill: companion instructions for a Claude Science review.
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