Provides an independent second opinion on AI-generated drafts to catch errors, contradictions, leaked secrets, and prompt injections.
Also known as maxugc/crosscheck, crosscheckapi
- Stars
- 1
- Tools
- —
- Downloads, 30 days
- 749
- Latest version
- 0.6.0
- Last commit
- Oct 24, 2026
- License
- MIT
What is crosscheck MCP?
crosscheck provides an independent second opinion on AI-generated drafts to catch errors, contradictions, leaked secrets, and prompt injections.
Summary generated from the project's README
About crosscheck MCP server
Crosscheck provides an independent verification layer for AI-generated content to identify errors, contradictions, and security risks. It is designed for developers building agents that produce emails, reports, or pull request descriptions. By sending a draft to the service, users receive a JSON verdict containing specific issues and suggested fixes, accompanied by an Ed25519-signed receipt for verification.
The server operates via an MCP implementation using npx and requires a CROSSCHECK_WALLET_KEY for paid operations. Payments are handled in USDC on the Base network through x402. Users can perform various tasks using tools like order for draft verification, accept for auditing work from other agents, and skillcheck for scanning MCP server folders. The system also includes a quote tool to estimate costs and a result tool to retrieve previous job statuses.
This service distinguishes itself by using code to verify arithmetic rather than relying on model logic. It can also cross-reference drafts against up to three external URLs to ensure accuracy. While it offers high security through signed receipts and an append-only ledger, users should avoid sending confidential text as drafts are processed by a review model.
What you can do with it
- 1Verify AI draft accuracyAn agent can check an email or report for arithmetic errors, contradictions, or leaked secrets before a human sees it.
- 2Validate against external sourcesThe system can open and check a draft against specific web pages to ensure the information is correct.
Written from the project's README. Every use case is checked against a quote from it.
How to install crosscheck MCP
Formats verified 10 Nov 2026Install crosscheck MCP in Claude Code
$ claude mcp add --env CROSSCHECK_WALLET_KEY=<YOUR_CROSSCHECK_WALLET_KEY> crosscheck -- npx -y crosscheckapiInstall crosscheck MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"crosscheck": {
"command": "npx",
"args": [
"-y",
"crosscheckapi"
],
"env": {
"CROSSCHECK_WALLET_KEY": "<YOUR_CROSSCHECK_WALLET_KEY>"
}
}
}
}Install crosscheck MCP in VS Code
.vscode/mcp.json
{
"servers": {
"crosscheck": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"crosscheckapi"
],
"env": {
"CROSSCHECK_WALLET_KEY": "<YOUR_CROSSCHECK_WALLET_KEY>"
}
}
}
}Install crosscheck MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"crosscheck": {
"command": "npx",
"args": [
"-y",
"crosscheckapi"
],
"env": {
"CROSSCHECK_WALLET_KEY": "<YOUR_CROSSCHECK_WALLET_KEY>"
}
}
}
}Install crosscheck MCP in Codex
~/.codex/config.toml
[mcp_servers.crosscheck] command = "npx" args = ["-y", "crosscheckapi"] [mcp_servers.crosscheck.env] CROSSCHECK_WALLET_KEY = "<YOUR_CROSSCHECK_WALLET_KEY>"
Install crosscheck MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"crosscheck": {
"command": "npx",
"args": [
"-y",
"crosscheckapi"
],
"env": {
"CROSSCHECK_WALLET_KEY": "<YOUR_CROSSCHECK_WALLET_KEY>"
}
}
}
}Configuration
CROSSCHECK_WALLET_KEYSecretPrivate key of a dedicated EVM wallet with a few dollars of USDC on Base (or test USDC on Base Sepolia). Pays for checks.
CROSSCHECK_MAX_USDRefuse to pay more than this per check. Default 0.10.
CROSSCHECK_NETWORKSNetworks to pay on, in order of preference. Default eip155:8453,eip155:84532. Set eip155:84532 for test USDC only.
| Name | Description | |
|---|---|---|
| CROSSCHECK_WALLET_KEY | Private key of a dedicated EVM wallet with a few dollars of USDC on Base (or test USDC on Base Sepolia). Pays for checks. | Secret |
| CROSSCHECK_MAX_USD | Refuse to pay more than this per check. Default 0.10. | |
| CROSSCHECK_NETWORKS | Networks to pay on, in order of preference. Default eip155:8453,eip155:84532. Set eip155:84532 for test USDC only. |
Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSPass
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHubcrosscheckapi
An independent second opinion on a draft before your human sees it.
Your agent sends the text it wrote: an email, report, message, PR description, or summary. crosscheck returns a JSON verdict, either pass or a list of specific issues with fixes, plus an Ed25519-signed receipt. It catches wrong arithmetic (checked in code, not by the model), contradictions, leftover placeholders, leaked secrets, unauthorized commitments, and prompt injection. Each check costs $0.02 in USDC on Base for up to 12,000 units (one per English character), paid per request over x402. There is no account and no API key.
To try it without real money, pay with test USDC on Base Sepolia (free at https://faucet.circle.com) and set
CROSSCHECK_NETWORKS=eip155:84532.
MCP server
{
"mcpServers": {
"crosscheck": {
"command": "npx",
"args": ["-y", "crosscheckapi"],
"env": { "CROSSCHECK_WALLET_KEY": "0x<private key of a dedicated wallet>" }
}
}
}
Tools:
quote: free. The price for a draft, and whether checks are available now.order: pays the quoted price and returns the verdict and signed receipt. Passmoltbook_identityto use a free check if you are a verified Moltbook agent. Optional:request(what your human asked, word for word; the draft fails if it answers a different question or leaves part out),sources(text the draft relies on),source_urls(up to 3 pages crosscheck opens and checks the draft against, +$0.01 each), andfetch_cited(also open the draft's own links).accept: pays about $0.03 and checks work another agent or service handed back against the task you gave it. Returns accept or reject with each requirement judged, before you pay for the work or pass it on.skillcheck: security-checks a skill or MCP server folder before you install it. Free when someone already scanned the same files, otherwise about $0.03.result: free. Status, verdict, and receipt of an earlier order.
CLI
npx -p crosscheckapi crosscheck quote draft.txt
npx -p crosscheckapi crosscheck order draft.txt
npx -p crosscheckapi crosscheck accept task.txt deliverable.txt
npx -p crosscheckapi crosscheck skillcheck ./some-skill
npx -p crosscheckapi crosscheck result <job_id> <result_token>
npx -p crosscheckapi crosscheck credits [wallet]
npx -p crosscheckapi crosscheck order draft.txt --request "What will 12 seats cost per year?" --url https://example.com/pricing
The draft is read from the file, or from stdin if no file is given. Output is JSON.
Referrals: the paid commands (order, accept, skillcheck) take --ref <receipt hash>, the id in a crosscheck proof link (/r/<hash>) that led you here. When your wallet's first check paid in real USDC carries a ref, the wallet behind that receipt earns check credits worth 20% of what you pay for 90 days; it costs you nothing. --credits pays with your own wallet's referral credits by signing a credit order instead of paying, and falls back to USDC only when the credits do not cover the price. crosscheck credits shows your balance. The MCP tools take the same options as ref and credits, and add a free credits tool.
Settings
| Variable | Meaning |
|---|---|
CROSSCHECK_WALLET_KEY |
Private key of the wallet that pays. Use a dedicated wallet holding a few dollars, never your main wallet. Only needed for paid orders. |
CROSSCHECK_MAX_USD |
Refuse to pay more than this per check. Default 0.10. |
CROSSCHECK_URL |
Service URL. Default https://crosscheckapi.com. |
CROSSCHECK_NETWORKS |
Networks the client may pay on, in order of preference. Default eip155:8453,eip155:84532 (Base, then Base Sepolia). Set eip155:84532 to use test USDC only. |
Receipts
Every paid check returns receipt with body, hash, and sig. The client verifies it automatically against the public key at https://crosscheckapi.com/.well-known/crosscheck-keys.json and reports receipt_check.valid. The receipt covers a SHA-256 of your draft (never the text), the payment, and a SHA-256 of the verdict, and it is chained into an append-only ledger.
Privacy
The draft is sent to crosscheck and to its review model, then deleted when the check finishes. Only its hash is kept. Do not send text your human has marked confidential.
Source, examples for Claude Code, Cursor, VS Code, OpenAI Agents SDK, LangChain, and more: https://github.com/maxugc/crosscheck
Service summary for agents: https://crosscheckapi.com/llms.txt
crosscheck MCP questions
How do I add crosscheck MCP to Claude Code?
Run claude mcp add --env CROSSCHECK_WALLET_KEY=<YOUR_CROSSCHECK_WALLET_KEY> crosscheck -- npx -y crosscheckapi in your terminal. Add --scope user to make it available in every project.
How do I add crosscheck MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How much does a check cost?
Each check costs $0.02 in USDC on Base for up to 12,000 units, which is one per English character.
Can I test the service without using real money?
Yes, you can use test USDC on Base Sepolia by setting the CROSSCHECK_NETWORKS environment variable to eip155:84532.
Does the service require an account or API key?
No, there is no account or API key required to use the service.
Is my data kept private?
The draft is sent to the review model and then deleted once the check is finished; only the hash is retained.