Skip to main content
Glama

Server Details

Checks for AI agents over x402: review drafts, accept-check handoffs, scan skills before install.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
maxugc/crosscheck
GitHub Stars
0
Server Listing
crosscheck

TDQS

A4/5.0

Scored across 6 tools

Disambiguation4/5

Each tool addresses a distinct function—acceptance review, draft review, result polling, security review, skillcheck lookup, and receipt verification. The only potential confusion is between 'accept' and 'check' (both are review actions) and between 'skillcheck' and 'skillcheck_lookup', but descriptions clearly separate them.

Naming Consistency3/5

Tool names are readable and all lowercase, but follow no single convention: simple verbs (accept, check), a noun (result), a compound noun (skillcheck), and verb_noun compounds (skillcheck_lookup, verify_receipt). It is not chaotic, but the mix of styles is inconsistent.

Tool Count5/5

Six tools is an appropriate size for this niche service; each earns its place and no redundant tools exist.

Completeness5/5

The surface covers the full workflow: generating reviews (check, accept, skillcheck), polling async results (result), looking up cached results (skillcheck_lookup), and verifying externally supplied receipts (verify_receipt). No obvious dead ends.

Available Tools

6 tools
acceptCheck a deliverable against its taskAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoOptional: the hash of a crosscheck receipt that brought you here. Its wallet earns check credits from your first 90 days of spend.
taskYesThe task as given to the other agent
referenceNoOptional reference material the task points to
payment_txNoOptional transaction hash of the payment for this work
deliverableYesWhat came back
payment_networkNoNetwork of payment_tx, for example eip155:8453

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description carries the full disclosure burden, and it does so thoroughly. It states the three return values, reveals that counts, required JSON fields, and sums are checked in code, notes that payment_tx is verified on chain, and fully explains the unusual x402 payment flow including the PaymentRequired error and retry mechanism. Cost is also disclosed. This is exemplary transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average, but every sentence earns its place—core function, return behavior, cost, and the non-obvious payment protocol are all necessary. The structure is front-loaded with the tool's main purpose, followed by return semantics and then payment details, which is a logical and efficient ordering.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a paid, externally-dependent tool with no output schema and no annotations, so the description must cover invocation, cost, and return values—and it does all of these. It even explains the client-side payment retry protocol and how to use the fallback npm client, leaving little room for guesswork. The term 'verify_externally' is not expanded, but it is reasonably self-explanatory given the context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful value beyond the schema: it clarifies that payment_tx is verified on chain and that checks in code cover counts, required JSON fields, and sums, which gives task and deliverable real semantic weight. This justifies a point above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb-resource pair: 'Checks work another agent handed back against the task it was given.' It clearly explains the purpose and the pre-payment/escrow context, and the unique return values (accept, reject, verify_externally) help separate it from vague siblings like 'check' and 'result'. However, it never explicitly names a sibling or contrasts itself, so it stops just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear trigger conditions: 'before you pay, release escrow, or pass it on.' It also explains how to invoke payment, either through an x402-aware MCP client or the npm client, which is important operational guidance. But it does not discuss when to prefer alternative sibling tools or what would make this tool inappropriate, so it lacks explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

checkReview a draftAInspect

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 sources, each claim is checked against them and quotes are verified. $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.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoOptional: the hash of a crosscheck receipt that brought you here. Its wallet earns check credits from your first 90 days of spend.
draftYesThe draft text to review
sourcesNoOptional texts the draft relies on; turns on grounding
open_reviewNoOptional: let a qualified outside reviewer take the job (not routed yet; crosscheck's reviewer does it and the receipt says so)
moltbook_identityNoOptional: 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

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the paid-per-call model, the x402 PaymentRequired error flow, the retry with _meta['x402/payment'], the free tier via moltbook_identity, and the fact that arithmetic is recomputed in code. It does not state whether the operation mutates anything, but the tool is a review/check operation and the description's payment and retry behavior is substantial transparency. A small gap: no explicit statement that it is read-only or that it does not store drafts, though 'Not stored' is mentioned for moltbook_identity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well-structured: it front-loads the core purpose, then covers return behavior, sources, and payment. Every sentence adds information, and the payment explanation is compact despite being complex. It is slightly long, but the complexity of the x402 flow justifies the length. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and no annotations, the description covers the main behavioral context: what it returns (pass or issues with fixes), how sources affect it, and how payment works. It does not describe the exact output format or error cases beyond the PaymentRequired error, but the description is strong for a paid review tool. The sibling tools (accept, result, skillcheck, etc.) suggest a workflow, but the description does not need to explain them for this tool to be invoked correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining the payment flow tied to the first call, the free tier tied to moltbook_identity, and the grounding behavior tied to sources. It does not add detail for ref or open_review beyond the schema, but the schema already describes those well. The description's added context for sources and payment parameters justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Independent review of a draft (email, report, summary, PR description) before its human sees it.' It names concrete artifact types and the review's purpose, and it distinguishes the tool from siblings by describing a paid, source-checking review service rather than a generic check. The title 'Review a draft' is expanded into a clear, actionable statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to use the tool: before a human sees a draft, and with sources to verify claims and quotes. It also gives payment/usage context: x402-aware clients pay automatically, and the npm client is named as an alternative invocation path. It does not explicitly name sibling tools as alternatives, but it clearly states the conditions for using this tool and how to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resultGet a resultAInspect

Free. Status, verdict, and signed receipt of an earlier paid call that was still running, using the job_id and result_token it returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesjob_id from the paid call
result_tokenYesresult_token from the paid call

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does add useful traits: the operation is free, it returns status/verdict/signed receipt, and it relates to an earlier asynchronous paid call. However, it does not disclose whether retrieval is one-time or repeatable, whether authentication is required, or any rate limits. Adequate but with notable gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly packed sentence. 'Free.' is front-loaded and immediately communicates a key trait. Every remaining phrase adds meaning: what is returned, the context, and the required inputs. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with no output schema and no nested objects, the description covers the essential points: what the tool returns, when to use it, and what inputs are needed. It does not explain error cases or polling behavior, but those are not critical for this straightforward retrieval operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters already have descriptions saying they come from the paid call. The description's phrase 'using the job_id and result_token it returned' adds little beyond the schema. Baseline 3 is appropriate because the schema already documents the parameters sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource and action: retrieving the status, verdict, and signed receipt of an earlier paid call using job_id and result_token. It goes beyond the title 'Get a result' by specifying the content of the result. It does not explicitly differentiate from sibling tools like check or skillcheck_lookup, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the triggering context: an earlier paid call was still running and returned job_id and result_token. This implies the tool is the follow-up retrieval step for asynchronous calls. It does not explicitly name alternatives or exclusions, but the usage context is clear enough for an agent to select it appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skillcheckSecurity review of a skill or MCP serverAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoOptional: the hash of a crosscheck receipt that brought you here. Its wallet earns check credits from your first 90 days of spend.
filesYesEvery text file of the skill or server, docs included; code rules read all of them
freshNoScan again even when a past scan of these exact files exists

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so excellently. It discloses that the tool reads and never runs, that it never claims safety, and it thoroughly explains the payment mechanism, including the x402 error flow and retry behavior. This is far beyond typical transparency and leaves no ambiguity about side effects or costs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: purpose, safety, pricing, payment flow, and client instructions. It front-loads the core purpose and safety, then details the payment mechanism without fluff. The structure is logical and efficient, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (payment, error handling, client requirements), the description covers nearly all necessary context: what it does, how to pay, what happens on first call, and how to retry. It does not explicitly describe the return value format, but it states 'Never says safe,' implying a judgment output. Since there is no output schema, a bit more detail on the return could improve completeness, but overall it is quite thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters (files, ref, fresh) with descriptions. The tool description does not add extra meaning about these parameters beyond what the schema provides, such as format or constraints. It mentions 'read, never run' but that is not parameter-specific. Thus, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a security review of a skill or MCP server's files, with the key qualifier 'read, never run.' This is a specific verb-resource pair that distinguishes it from typical execution tools. However, it does not explicitly name sibling tools like accept, check, result, or skillcheck_lookup to differentiate them, so it falls short of a perfect 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: 'before you install or connect it' and explains when it is free vs. paid based on prior scans. It also details how to use it with an x402-aware client or the npm fallback. It does not explicitly mention alternatives or when not to use this tool, but the context is strong enough for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

skillcheck_lookupLook up a past skillcheckAInspect

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}).

ParametersJSON Schema
NameRequiredDescriptionDefault
bundle_sha256Yes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the operation is free and that it returns the 'latest' skillcheck for an 'exact' bundle, but it does not mention error handling (e.g., invalid hash, no matching bundle), response format, or any side effects. It omits critical behavioral context an agent would need for robust invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, information-dense sentence. It front-loads the cost ('Free') and then states the core purpose and the exact input requirement. Every word contributes value; there is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single parameter and no output schema, the description adequately explains the input and the general behavior, but it does not specify what the tool returns (e.g., the skillcheck object, a status, or an error message). It also lacks guidance on edge cases like nonexistent bundles. Given the lack of an output schema, the description should have clarified the return value to be fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides a pattern for the parameter, but the description adds substantial meaning: it explains that bundle_sha256 is the SHA-256 of the canonical JSON of files sorted by path, each as {path, sha256}. This is a detailed semantic definition that goes far beyond the schema, giving the agent precise instructions on how to construct the input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('look up'), a resource ('latest skillcheck'), and a precise identifier ('bundle_sha256') with a detailed definition of that hash. It clearly distinguishes this tool as an exact-match lookup by hash, setting it apart from broader sibling tools like 'skillcheck' without needing explicit naming.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention scenarios like 'when you have the exact bundle hash' or 'for fuzzy lookups use another tool'. The description is purely functional and offers no selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_receiptVerify a crosscheck receiptAInspect

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 and sources for check, task and deliverable for accept, files for skillcheck, and the verdict if one came with it.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoaccept: the task the receipt should cover
draftNocheck: the draft the receipt should cover
filesNoskillcheck: the skill's files
receiptNoOr the whole receipt object {body, hash, sig}
sourcesNocheck: the sources, if the check had any, in the same order (strings or {text})
verdictNoThe verdict that came with the receipt, to confirm nobody edited it
deliverableNoaccept: the deliverable the receipt should cover
receipt_hashNoThe receipt's hash (the last part of its /r/ proof link)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and provides useful behavioral detail: verification happens in code, signature is checked, outcome is inspected, and coverage must match exactly. It also notes the operation is free. It does not describe the return shape, but the non-mutating nature is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no fluff; the key usage instruction is front-loaded and every clause adds information. The parameter grouping is compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-annotation tool with 8 optional-looking parameters and no output schema, it explains the required receipt hash-or-object plus context text and per-type parameters. It could be more explicit about return/error behavior, but the verification goal and input requirements are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents every parameter (100% coverage), so the baseline is 3. The description adds value by grouping parameters by receipt type (check, accept, skillcheck) and clarifying that verdict is optional, which is not obvious from the flat schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb-resource pair ('Verify a crosscheck receipt') and spells out four concrete verification dimensions: issuer, signature validity, outcome, and text coverage. This clearly differentiates it from sibling tools that create or look up receipts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tells the agent when to use it: before trusting work that arrives with a crosscheck receipt. It also maps which payload to pass for each receipt type, though it does not explicitly name alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedcheck1 field changed
      • addedInput schema / properties / moltbook_identity
        Added value: +{
        +  "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"
        +}
  2. 1 tool update
    • Addedverify_receipt
  3. 1 tool update
    • Changedcheck1 field changed
      • addedInput schema / properties / open_review
        Added value: +{
        +  "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"
        +}
  4. 3 tool updates
    • Changedaccept1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "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"
        +}
    • Changedcheck1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "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"
        +}
    • Changedskillcheck1 field changed
      • addedInput schema / properties / ref
        Added value: +{
        +  "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"
        +}
  5. 1 tool update
    • Changedskillcheck2 fields changed
      • changedInput schema / properties / files / description
        Previous value: -"The skill's or server's text files"New value: +"Every text file of the skill or server, docs included; code rules read all of them"
      • changedInput schema / properties / files / maxItems
        Previous value: -50New value: +200
  6. 5 tool updates
    • First observedaccept
    • First observedcheck
    • First observedresult
    • First observedskillcheck
    • First observedskillcheck_lookup

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.