{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "category": "payment-platforms",
    "endpoint": "https://crosscheckapi.com/mcp",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crosscheckapi-crosscheck.json",
    "kind": "mcp",
    "listed": "indexed",
    "liveUrl": "https://www.anchorterminal.com/api/v1/live/crosscheckapi-crosscheck.json",
    "markdownUrl": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck.md",
    "mcpTools": {
      "check": {
        "checker": "anchor-check/1.0",
        "totalTokens": 1965,
        "counts": {
          "error": 0,
          "note": 1,
          "warn": 8
        },
        "findings": [
          {
            "rule": "TC11",
            "severity": "warn",
            "tool": "skillcheck_lookup",
            "message": "its one parameter, bundle_sha256, has no description",
            "fix": "Describe each one: format, units, an example, and what happens when it's left out."
          },
          {
            "rule": "TC13",
            "severity": "warn",
            "tool": "verify_receipt",
            "message": "receipt (object with no properties), sources (array with no items), verdict (object with no properties)",
            "fix": "Declare the properties (or additionalProperties with a schema) and the array's items."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "accept",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "check",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"check\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "result",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "skillcheck",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "skillcheck_lookup",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Its name starts with \"lookup\"; if it only reads, set readOnlyHint: true so harnesses can run it without asking."
          },
          {
            "rule": "TC16",
            "severity": "warn",
            "tool": "verify_receipt",
            "message": "no readOnlyHint or destructiveHint",
            "fix": "Set readOnlyHint: true if it only reads; otherwise set destructiveHint and idempotentHint."
          },
          {
            "rule": "TC24",
            "severity": "note",
            "message": "6 of 6 tools have no outputSchema",
            "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
          }
        ]
      },
      "checkedAt": "2026-10-04T22:22:29Z",
      "count": 6,
      "note": "answered without the initialize handshake",
      "schemaTokens": 1965,
      "status": "ok",
      "tools": [
        {
          "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.",
          "inputSchema": {
            "properties": {
              "draft": {
                "description": "The draft text to review",
                "maxLength": 48000,
                "type": "string"
              },
              "fetch_cited": {
                "description": "Optional: also fetch the links the draft itself cites (up to 3 pages in all, +$0.01 each); a link that is gone fails the draft",
                "type": "boolean"
              },
              "moltbook_identity": {
                "description": "Optional: a Moltbook identity token for the free tier, when it is on (a verified Moltbook agent gets free checks with no payment). Not stored. Without a free check left, the price comes back as usual",
                "type": "string"
              },
              "open_review": {
                "description": "Optional: let a qualified outside reviewer take the job (not routed yet; crosscheck's reviewer does it and the receipt says so)",
                "type": "boolean"
              },
              "ref": {
                "description": "Optional: the hash of a crosscheck receipt that brought you here. Its wallet earns check credits from your first 90 days of spend.",
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              "request": {
                "description": "Optional: what the human asked for, word for word if you have it. The reviewer then also checks that the draft answers it (a missed question, a changed scope, a wrong period)",
                "maxLength": 8000,
                "type": "string"
              },
              "source_urls": {
                "description": "Optional: up to 3 web pages crosscheck fetches after payment and checks the draft against, as sources. +$0.01 each",
                "items": {
                  "description": "A public http or https URL",
                  "type": "string"
                },
                "maxItems": 3,
                "type": "array"
              },
              "sources": {
                "description": "Optional texts the draft relies on; turns on grounding",
                "items": {
                  "properties": {
                    "text": {
                      "description": "Source text",
                      "type": "string"
                    },
                    "title": {
                      "description": "Optional title",
                      "type": "string"
                    },
                    "url": {
                      "description": "Optional URL",
                      "type": "string"
                    }
                  },
                  "required": [
                    "text"
                  ],
                  "type": "object"
                },
                "maxItems": 10,
                "type": "array"
              }
            },
            "required": [
              "draft"
            ],
            "type": "object"
          }
        },
        {
          "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.",
          "inputSchema": {
            "properties": {
              "deliverable": {
                "description": "What came back",
                "type": "string"
              },
              "payment_network": {
                "description": "Network of payment_tx, for example eip155:8453",
                "type": "string"
              },
              "payment_tx": {
                "description": "Optional transaction hash of the payment for this work",
                "type": "string"
              },
              "ref": {
                "description": "Optional: the hash of a crosscheck receipt that brought you here. Its wallet earns check credits from your first 90 days of spend.",
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              "reference": {
                "description": "Optional reference material the task points to",
                "type": "string"
              },
              "task": {
                "description": "The task as given to the other agent",
                "type": "string"
              }
            },
            "required": [
              "task",
              "deliverable"
            ],
            "type": "object"
          }
        },
        {
          "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.",
          "inputSchema": {
            "properties": {
              "files": {
                "description": "Every text file of the skill or server, docs included; code rules read all of them",
                "items": {
                  "properties": {
                    "content": {
                      "description": "File content",
                      "type": "string"
                    },
                    "path": {
                      "description": "Path inside the skill",
                      "type": "string"
                    }
                  },
                  "required": [
                    "path",
                    "content"
                  ],
                  "type": "object"
                },
                "maxItems": 200,
                "minItems": 1,
                "type": "array"
              },
              "fresh": {
                "description": "Scan again even when a past scan of these exact files exists",
                "type": "boolean"
              },
              "ref": {
                "description": "Optional: the hash of a crosscheck receipt that brought you here. Its wallet earns check credits from your first 90 days of spend.",
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              }
            },
            "required": [
              "files"
            ],
            "type": "object"
          }
        },
        {
          "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}).",
          "inputSchema": {
            "properties": {
              "bundle_sha256": {
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              }
            },
            "required": [
              "bundle_sha256"
            ],
            "type": "object"
          }
        },
        {
          "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.",
          "inputSchema": {
            "properties": {
              "deliverable": {
                "description": "accept: the deliverable the receipt should cover",
                "type": "string"
              },
              "draft": {
                "description": "check: the draft the receipt should cover",
                "type": "string"
              },
              "files": {
                "description": "skillcheck: the skill's files",
                "items": {
                  "properties": {
                    "content": {
                      "description": "File content",
                      "type": "string"
                    },
                    "path": {
                      "description": "Path inside the skill",
                      "type": "string"
                    }
                  },
                  "required": [
                    "path",
                    "content"
                  ],
                  "type": "object"
                },
                "type": "array"
              },
              "receipt": {
                "description": "Or the whole receipt object {body, hash, sig}",
                "type": "object"
              },
              "receipt_hash": {
                "description": "The receipt's hash (the last part of its /r/ proof link)",
                "pattern": "^[0-9a-f]{64}$",
                "type": "string"
              },
              "request": {
                "description": "check: the human's request, if the check had one",
                "type": "string"
              },
              "sources": {
                "description": "check: the sources, if the check had any, in the same order (strings or {text})",
                "type": "array"
              },
              "task": {
                "description": "accept: the task the receipt should cover",
                "type": "string"
              },
              "verdict": {
                "description": "The verdict that came with the receipt, to confirm nobody edited it",
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        {
          "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.",
          "inputSchema": {
            "properties": {
              "job_id": {
                "description": "job_id from the paid call",
                "type": "string"
              },
              "result_token": {
                "description": "result_token from the paid call",
                "type": "string"
              }
            },
            "required": [
              "job_id",
              "result_token"
            ],
            "type": "object"
          }
        }
      ]
    },
    "name": "crosscheck",
    "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
    "packages": [
      {
        "registryType": "npm",
        "identifier": "crosscheckapi",
        "version": "0.5.5",
        "transport": "stdio"
      }
    ],
    "pageJsonUrl": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck.json",
    "popularity": {
      "githubStars": 0,
      "npmWeekly": 1663
    },
    "registryName": "com.crosscheckapi/crosscheck",
    "remotes": [
      {
        "type": "streamable-http",
        "url": "https://crosscheckapi.com/mcp"
      }
    ],
    "repository": "https://github.com/maxugc/crosscheck",
    "reviewed": false,
    "slug": "crosscheckapi-crosscheck",
    "source": "the official MCP registry",
    "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.crosscheckapi/crosscheck",
    "summary": "Checks for AI agents over x402: review drafts, accept-check handoffs, scan skills before install.",
    "updatedAt": "2026-09-28T02:42:16Z",
    "url": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck",
    "vendor": "crosscheckapi.com",
    "vendorUrl": "https://crosscheckapi.com",
    "version": "0.5.5",
    "websiteUrl": "https://crosscheckapi.com",
    "where": "both",
    "why": [
      "vendor",
      "popular"
    ]
  }
}
