MCP server for revision-bound source review, quotation matching, and prepublication evidence-control reports.
It is designed to preserve exactly what was audited. It does not publish articles, decide truth, or replace legal/editorial judgment.
- Binds each audit to an exact article revision fingerprint.
- Records source classifications and claim-to-source mappings.
- Verifies direct quotations against retrieved source text.
- Revalidates stored source-text fingerprints before trusting retrieved evidence.
- Flags procedural-language risks such as stating allegations as holdings.
- Generates immutable JSON reports for the audited revision.
- Highlights source-integrity mismatches as explicit publish/update review items for the user.
- It does not determine legal correctness or factual truth.
- It does not publish or modify external systems.
- It does not treat retrieval failure as proof that a source is false.
- It does not convert acknowledged warnings into substantive support.
- It does not treat acknowledged substantive claim gaps as publication-ready support.
- It does not treat source-integrity mismatches as repaired just because the user approved a publish/update exception.
- Node.js
20or newer - A local MCP client that can launch a stdio server
Published package:
npm install -g clearon-source-audit-mcp
clearon-source-audit-mcpSource checkout:
cd tools/clearon-source-audit-mcp
npm install
npm test
npm run smokeExample stdio configuration:
Installed package via npx:
{
"mcpServers": {
"clearon-source-audit": {
"command": "npx",
"args": ["-y", "clearon-source-audit-mcp"]
}
}
}Source checkout:
{
"mcpServers": {
"clearon-source-audit": {
"command": "node",
"args": ["/absolute/path/to/clearon-source-audit-mcp/server.mjs"]
}
}
}If you want audit data somewhere specific, set CLEARON_SOURCE_AUDIT_ROOT in the client environment.
By default, audit data is stored outside the repository in a user data directory:
- macOS:
~/Library/Application Support/clearon-source-audit-mcp/source-audits - Linux:
${XDG_DATA_HOME:-~/.local/share}/clearon-source-audit-mcp/source-audits - Windows:
%APPDATA%\\clearon-source-audit-mcp\\source-audits
Override that location with CLEARON_SOURCE_AUDIT_ROOT.
Each audit stores:
audit.jsonarticle.txtreports/*.json
Files are written with owner-only permissions where the host platform supports them.
- Create or obtain the exact article text to audit.
- Compute its SHA-256 fingerprint.
- Call
create_source_audit. - Call
register_sourcefor each source. - Call
record_claim_mappingfor checkable factual or legal claims. - Run
run_mechanical_checks. - Fix weak claims, missing excerpts, quotation mismatches, and procedural warnings in the article.
- If the article text changes, create a new audit for the new revision.
- Call
generate_source_report. - Use
acknowledge_findingonly when a human has actually reviewed and accepted a claim or source-retrieval warning. - If the report lists
pending_publish_update_review_findings, useapprove_source_integrity_findingonly when you explicitly approve that exact source-integrity mismatch for publish/update. - Treat
ready_for_human_approvalas blocked until every claim is substantively supported and every non-integrity warning is either resolved or explicitly acknowledged. - Treat
ready_for_publish_or_updateas blocked until the report has no pending source-integrity review items.
get_server_healthcreate_source_auditget_source_auditlist_source_auditsregister_sourcerecord_claim_mappingreplace_claim_mappingrun_mechanical_checksgenerate_source_reportapprove_source_integrity_findingacknowledge_finding
URL availability checks are opt-in. run_mechanical_checks and generate_source_report default check_urls to false.
When enabled, the server performs bounded HTTP(S) reachability checks and treats failures as warnings only. Before each request (including redirects), it rejects local/private DNS answers and pins the connection to the validated public addresses to narrow DNS-rebinding exposure. This is a convenience check, not a trust decision or a replacement for host-level egress controls.
Source-retrieval warnings use a stable acknowledgment string; transport details are preserved separately in the verification output.
Source-integrity warnings are handled differently. They appear in a dedicated publish/update review list in the report and require explicit user approval before the report becomes ready_for_publish_or_update.
npm test
npm run smoke
npm run syntax
node --check server.mjs