{
  "data": {
    "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"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck",
    "json": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck.md",
    "slim": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck.min.md"
  },
  "markdown": "# crosscheck\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by crosscheckapi.com (https://crosscheckapi.com)\n- Category: Payment \u0026 monetisation platforms (https://www.anchorterminal.com/categories/payment-platforms.md)\n- Listed because: It's published in the registry under crosscheckapi.com, a namespace the registry only gives to whoever proves they control that domain. It's in real use: 1,663 npm downloads a week.\n- What the official MCP registry says: Checks for AI agents over x402: review drafts, accept-check handoffs, scan skills before install.\n\n## Facts\n\n- MCP registry: `com.crosscheckapi/crosscheck` 0.5.5\n- Endpoint: https://crosscheckapi.com/mcp (streamable HTTP)\n- Package: npm `crosscheckapi` (stdio)\n- Source: https://github.com/maxugc/crosscheck\n- Website: https://crosscheckapi.com\n- npm downloads a week: 1,663\n- GitHub stars: 0\n- Registry entry updated: 2026-09-28\n\n## Tools\n\n- Tools it lists (6, about 1,965 tokens of context, `tools/list` without credentials, checked 2026-10-04 22:22 UTC):\n  - `check`: Independent review of a draft (email, report, summary, PR description) before its human sees it. Returns pass or specific issues with fixes; arithmetic is…\n  - `accept`: 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…\n  - `skillcheck`: 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…\n  - `skillcheck_lookup`: 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}).\n  - `verify_receipt`: 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…\n  - `result`: Free. Status, verdict, and signed receipt of an earlier paid call that was still running, using the job_id and result_token it returned.\n- How its tools read to an agent (0 errors, 8 warnings, 1 note, about 1,965 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC11 skillcheck_lookup: its one parameter, bundle_sha256, has no description\n  - warn TC13 verify_receipt: receipt (object with no properties), sources (array with no items), verdict (object with no properties)\n  - warn TC16 accept: no readOnlyHint or destructiveHint\n  - warn TC16 check: no readOnlyHint or destructiveHint\n  - warn TC16 result: no readOnlyHint or destructiveHint\n  - warn TC16 skillcheck: no readOnlyHint or destructiveHint\n  - warn TC16 skillcheck_lookup: no readOnlyHint or destructiveHint\n  - warn TC16 verify_receipt: no readOnlyHint or destructiveHint\n  - note TC24 server: 6 of 6 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/crosscheckapi-crosscheck.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "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"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "crosscheck",
        "url": ""
      }
    ],
    "description": "crosscheck, an MCP server by crosscheckapi.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Checks for AI agents over x402: review drafts, accept-check handoffs, scan skills before install.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "crosscheck",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/crosscheckapi-crosscheck",
    "published": "",
    "section": "indexed",
    "title": "crosscheck: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/tools/crosscheckapi-crosscheck"
  },
  "tokens": {
    "markdown": 1000,
    "slim": 930
  },
  "version": 1
}
