{"server":{"name":"com.crosscheckapi/crosscheck","title":"crosscheck","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://crosscheckapi.com/mcp","type":"streamable-http"}],"version":"0.5.5","packages":[{"version":"0.5.5","transport":{"type":"stdio"},"identifier":"crosscheckapi","registryType":"npm","environmentVariables":[{"name":"CROSSCHECK_WALLET_KEY","format":"string","isSecret":true,"description":"Private key of a dedicated EVM wallet with a few dollars of USDC on Base (or test USDC on Base Sepolia). Pays for checks."},{"name":"CROSSCHECK_MAX_USD","format":"string","description":"Refuse to pay more than this per check. Default 0.10."},{"name":"CROSSCHECK_NETWORKS","format":"string","description":"Networks to pay on, in order of preference. Default eip155:8453,eip155:84532. Set eip155:84532 for test USDC only."}]}],"repository":{"url":"https://github.com/maxugc/crosscheck","source":"github","subfolder":"client"},"websiteUrl":"https://crosscheckapi.com","description":"Checks for AI agents over x402: review drafts, accept-check handoffs, scan skills before install."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-28T02:42:16.046489Z","publishedAt":"2026-09-28T02:42:16.046489Z","statusChangedAt":"2026-09-28T02:42:16.046489Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://crosscheckapi.com/mcp","transport":"streamable-http","templated":false,"headers":[],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2025-06-18"],"stateless":true},"health":{"reachable":true,"uptime_30d":0.92105263,"latency_ms_p50":374,"consecutive_failures":0,"last_probe_at":"2026-10-20T00:02:50.614Z","last_ok_at":"2026-10-20T00:02:50.614Z"}}],"packages":[{"idx":0,"registry_type":"npm","identifier":"crosscheckapi","version":"0.5.5","runtime_hint":null,"transport":"stdio","secrets":["CROSSCHECK_WALLET_KEY"],"requires_execution":true}]},"dev.protogrid/tools":[{"name":"accept","title":"Check a deliverable against its task","description":"Checks work another agent handed back against the task it was given, before you pay, release escrow, or pass it on. Returns accept, reject, or verify_externally with every requirement judged; counts, required JSON fields, and sums are checked in code. Optional payment_tx is verified on chain. $0.03 base. Paid per call in USDC over x402 (Base, or free test USDC on Base Sepolia). An x402-aware MCP client pays automatically: the first call returns the price as an x402 PaymentRequired error, and the retry carries the payment in _meta[\"x402/payment\"]. Without one, use the npm client `npx -y crosscheckapi`, which pays from a wallet you set.","annotations":null,"source":"probe","observed_at":"2026-10-20T00:02:50.614Z"},{"name":"check","title":"Review a draft","description":"Independent review of a draft (email, report, summary, PR description) before its human sees it. Returns pass or specific issues with fixes; arithmetic is recomputed in code. With request (what the human asked), it also checks the draft answers that. With sources, each claim is checked against them and quotes are verified; with source_urls or fetch_cited, crosscheck fetches up to 3 web pages itself and checks against those (+$0.01 a page, and a dead link the draft gives fails it). $0.02. Paid per call in USDC over x402 (Base, or free test USDC on Base Sepolia). An x402-aware MCP client pays automatically: the first call returns the price as an x402 PaymentRequired error, and the retry carries the payment in _meta[\"x402/payment\"]. Without one, use the npm client `npx -y crosscheckapi`, which pays from a wallet you set.","annotations":null,"source":"probe","observed_at":"2026-10-20T00:02:50.614Z"},{"name":"result","title":"Get a result","description":"Free. Status, verdict, and signed receipt of an earlier paid call that was still running, using the job_id and result_token it returned.","annotations":null,"source":"probe","observed_at":"2026-10-20T00:02:50.614Z"},{"name":"skillcheck","title":"Security review of a skill or MCP server","description":"Security review of a skill or MCP server's files before you install or connect it: read, never run. Free when these exact files were scanned before (looked up by bundle hash); otherwise paid, $0.03 base. Never says safe. Paid per call in USDC over x402 (Base, or free test USDC on Base Sepolia). An x402-aware MCP client pays automatically: the first call returns the price as an x402 PaymentRequired error, and the retry carries the payment in _meta[\"x402/payment\"]. Without one, use the npm client `npx -y crosscheckapi`, which pays from a wallet you set.","annotations":null,"source":"probe","observed_at":"2026-10-20T00:02:50.614Z"},{"name":"skillcheck_lookup","title":"Look up a past skillcheck","description":"Free. The latest skillcheck of an exact bundle, by its bundle_sha256 (SHA-256 of the canonical JSON of the files sorted by path, each as {path, sha256}).","annotations":null,"source":"probe","observed_at":"2026-10-20T00:02:50.614Z"},{"name":"verify_receipt","title":"Verify a crosscheck receipt","description":"Free. Before trusting work that arrives with a crosscheck receipt, check in code that crosscheck issued it, its signature is valid, what the outcome was, and that it covers exactly the text you were handed. Pass receipt_hash (or the receipt object) plus that text: draft, request, and sources for check, task and deliverable for accept, files for skillcheck, and the verdict if one came with it.","annotations":null,"source":"probe","observed_at":"2026-10-20T00:02:50.614Z"}],"dev.protogrid/trust":{"score":95,"components":{"hygiene":100,"liveness":97,"freshness":100,"provenance":85},"drivers":["+repository","+dns-namespace","+website","+reachable","+uptime-92%","+updated-22d-ago"],"flags":[],"blocked":false,"computed_at":"2026-10-20T04:42:43.796Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":73,"label":"needs work","components":{"auth":null,"hygiene":71,"protocol":75,"stability":75,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"newest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28","status":"warn","category":"protocol"},{"id":"protocol.stateless","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"only applies to 2026-07-28 servers","status":"na","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones","status":"fail","category":"hygiene"},{"id":"tools.directory_hints","detail":"no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: result (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); skillcheck_lookup (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); check (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …","status":"fail","category":"hygiene"},{"id":"tools.token_cost","detail":"about 1,850 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"9 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"deps.dev does not know crosscheckapi@0.5.5","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"deps.dev does not know crosscheckapi@0.5.5","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"deps.dev does not know crosscheckapi@0.5.5","status":"na","category":"dependencies"}],"drivers":["-tools.annotations","-tools.directory_hints","~protocol.modern","~stability.changes"],"flags":[],"tool_count":6,"token_estimate":1850,"tools_hash":"471aeba81922e43ba856479e740671ff","tools_changed_at":"2026-09-27T15:27:38.481Z","computed_at":"2026-10-20T04:41:29.314Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"com.crosscheckapi/crosscheck","aliases":[],"alias_count":0,"repository_key":"github:maxugc/crosscheck","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/com.crosscheckapi%2Fcrosscheck/tools","arguments":{"name":"com.crosscheckapi/crosscheck"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/com.crosscheckapi%2Fcrosscheck/connection?target=mcpServers","arguments":{"name":"com.crosscheckapi/crosscheck","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}