Skip to main content
Glama

clearsigned-mcp

An MCP server that gives any agent a verify_claim tool: calibrated claim verification against live web evidence, paid per call over x402 ($0.05 USDC on Base), with an Ed25519-signed receipt the server verifies offline against Clearsigned's pinned published key before your agent sees it.

Tools

Tool

Paid?

What it returns

verify_claim(claim, evidence?)

$0.05 USDC

SUPPORTED / REFUTED / UNVERIFIABLE, calibrated confidence (a measured realized rate), per-source stances, receipt id, settlement tx, signature_verified_offline

quote()

free

the price an unpaid request is quoted right now, decoded from the 402

service_status()

free

what is serving, ledger height, published buyer counts

UNVERIFIABLE is a real answer, not an error: the engine abstains instead of guessing. The price never depends on the verdict; refunds exist only for failure to deliver. A request with no claim is refused locally, before any payment.

Related MCP server: Recommend Agentic Trust Layer

Install

pip install clearsigned-mcp        # or: pipx install clearsigned-mcp
export CLEARSIGNED_BUYER_KEY=0x…   # an EVM key holding a little USDC on Base mainnet
clearsigned-mcp                    # stdio transport

Claude Desktop / Claude Code / any MCP client:

{
  "mcpServers": {
    "clearsigned": {
      "command": "clearsigned-mcp",
      "env": { "CLEARSIGNED_BUYER_KEY": "0x…" }
    }
  }
}

The key signs x402 payment authorizations wherever this server runs: on your machine for a local install, or on the registry's runner if you connect through a hosted URL (Smithery offers one). It is never sent to Clearsigned; the service sees the payment, not the key.

How to check us

Source of truth

This package is developed inside the Clearsigned monorepo (products/mcp-server/) and mirrored to a public repository for registries and installs. Issues and pull requests on the mirror are welcome; changes land in the monorepo first.

Development

python -m pytest tests/

The tests never touch the network or a wallet: the exchange is injected, and receipts are signed with a throwaway Ed25519 key to exercise the offline verification exactly as production does it.

Available Tools

3 tools
quoteA

Free. The price an unpaid request is quoted right now (USDC atomic units, asset, network, scheme, pay-to address), decoded from the service's HTTP 402 challenge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

This tool has no annotations, so the description carries the full burden of behavioral disclosure. It adds useful context by indicating the quote is free, real-time, and derived from an HTTP 402 challenge, which implies a read-only, side-effect-free operation. It does not, however, mention whether authentication is required, failure modes, or what happens if no 402 challenge is available.

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 short, front-loaded with 'Free.', and covers the essential purpose and output fields in a single sentence. The 'Free.' fragment is somewhat cryptic but not wasteful; overall, the definition is appropriately concise.

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 zero-parameter tool with no output schema, the description provides a solid summary of what the quote contains and where it comes from. It is slightly incomplete regarding the exact invocation context (i.e., that a prior HTTP 402 is required) and the precise format of the decoded data, but it is largely sufficient for an agent to understand and call the tool.

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 tool has zero parameters, so the empty input schema requires no explanation; the baseline of 4 applies. The description adds value by describing the output contents (USDC atomic units, asset, network, scheme, pay-to address), which compensates for the absence of an output schema.

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 states that the tool returns the current price for an unpaid request, decoded from an HTTP 402 challenge, and lists concrete fields (USDC atomic units, asset, network, scheme, pay-to address). It is clear enough to identify the tool's purpose and distinguish it from the sibling tools, though it lacks an explicit verb like 'get' or 'retrieve' and the leading 'Free.' adds slight ambiguity.

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

Usage Guidelines3/5

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

The phrase 'decoded from the service's HTTP 402 challenge' implies the tool should be used when an unpaid request receives a 402 response, giving meaningful context. However, it does not explicitly state when to use this tool versus verify_claim or service_status, nor does it mention any exclusions or prerequisites.

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

service_statusA

Free. What the service is serving (calibrated engine or stub, curve version), the public ledger height, and the published buyer counts (receipts, distinct payers, external payers).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. The description is transparent about being free ('Free') and details the exact data fields returned (engine, curve version, ledger height, buyer counts). This goes beyond a generic status message and informs the agent of the operational context. It doesn't mention side effects or return format, but for a read-only status tool, the description is sufficient. Since annotations are absent, this adds significant value.

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 concise and front-loaded with 'Free' and the core purpose. It lists key data points in a compact manner. The structure is a single sentence that efficiently packs information without fluff. It could be slightly improved by breaking into a list, but it's clear and direct.

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 has no parameters and no output schema, the description provides all essential information about what the tool does and what it returns. It includes enough detail about the data fields (engine, curve version, ledger height, buyer counts) to help an agent interpret the result. The lack of an output schema is compensated by this descriptive detail. The description is complete for the tool's simplicity.

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 tool has zero parameters, so the schema is essentially empty. The description compensates by explaining what data will be returned, which is critical for an agent to know what to expect. Even though there are no parameters, the description's detail about the return contents provides semantic value beyond the empty schema. With zero params, baseline is 4, and the description meets that by adding context.

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 it provides service status information, including engine type, curve version, ledger height, and buyer counts. It distinguishes this status tool from sibling tools (verify_claim and quote) by its focus on service-level data rather than claims or pricing. While it doesn't explicitly name siblings, the purpose is specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies this tool is for checking service status, which is a standalone health/status check. It doesn't explicitly say when to use it versus alternatives, but given that siblings are 'verify_claim' and 'quote', the context makes it clear this is for status checks, not operations. No explicit exclusions or alternatives provided, but the purpose is distinct enough.

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

verify_claimA

Verify one factual claim (PAID: $0.05 USDC over x402). Returns verdict, calibrated confidence, per-source stances, receipt id, settlement transaction, and whether the receipt's signature verified offline against the pinned published key. Optional evidence: strings the caller already holds, admitted as secondary-tier evidence. Takes about 5-15 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
claimYes
evidenceNo

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are present, so the description carries the full burden—and it delivers. It discloses the payment requirement, latency, the offline signature-verification behavior against the pinned published key, and the verdict/confidence/stances outputs. This is comprehensive behavioral disclosure for a zero-annotation tool.

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?

A single dense paragraph, properly front-loaded with the core purpose ('Verify one factual claim') before cost and return details. Every clause earns its place—cost, latency, outputs, and evidence semantics—with no filler. It could be slightly more structured, but it remains efficient for the information carried.

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?

With no output schema and no annotations, the description must fully explain return format and behavior, and it does—listing all return fields (verdict, confidence, stances, receipt id, settlement transaction, signature verification) plus cost and latency. Nothing an agent needs to call this 2-param tool correctly is missing.

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 coverage is 0%, so the description must compensate. It fully explains `evidence` (strings the caller already holds, admitted as secondary-tier evidence) beyond the bare schema type. The `claim` parameter is only described as 'one factual claim'; its expected format is not elaborated, leaving a minor semantic gap.

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?

States a specific verb and resource ('Verify one factual claim') and enumerates its concrete outputs (verdict, calibrated confidence, per-source stances, receipt id, settlement transaction, signature verification). It is clearly distinguishable from siblings quote and service_status, which are obviously different operations, so an agent can route correctly from the description alone.

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?

Provides clear context on when this is appropriate: it is a paid call ($0.05 USDC over x402), takes 5-15 seconds, and the optional `evidence` parameter's role is explained. It does not name a sibling alternative or state when-not-to-use, but quote and service_status differ enough that no routing ambiguity exists, so the absence of exclusions is not a meaningful gap.

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. 3 tool updatesv0.1.0
    • First observedquote
    • First observedservice_status
    • First observedverify_claim

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a completely distinct purpose: verify_claim handles paid claim verification, quote provides pricing information, and service_status reports operational metrics. There is no overlap or ambiguity between them.

Naming Consistency4/5

Names are clear and follow a lowercase_with_underscores convention, but the pattern is not uniform: verify_claim is verb_noun, quote is a bare verb, and service_status is noun_noun. This minor inconsistency is easily readable.

Tool Count4/5

With only 3 tools, the set is on the smaller side, but it is well-scoped for a focused service that offers claim verification, pricing, and status. Each tool earns its place without feeling sparse.

Completeness4/5

The core workflow of verifying a single claim is fully covered, along with necessary supporting operations for pricing and status. A potential gap is lack of batch verification, but that may be outside the intended scope.

Related MCP Connectors

Related MCP Servers