Skip to main content
Glama

Server Details

x402 provider rankings + Ed25519-signed payment receipts + signature verification (3 tools).

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
lithvall/TrustBench
GitHub Stars
0
Server Listing
trustbench

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 3 of 3 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: get_rankings retrieves liveness rankings, get_receipt fetches a receipt by ID, and verify_receipt validates receipt signatures. There is no overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case: get_rankings, get_receipt, verify_receipt. The naming is uniform and predictable.

Tool Count4/5

Three tools is a reasonable count for a focused server dealing with rankings and receipt verification. It is slightly on the lower side but not too few, as each tool serves a distinct and necessary function.

Completeness3/5

The tool set covers core operations: retrieving rankings and handling receipts (fetch and verify). However, there are notable gaps such as no tool to list receipts or query provider capabilities beyond rankings, which could limit agent workflows.

Available Tools

3 tools
get_rankingsA
Read-only
Inspect

Get TrustBench liveness rankings for x402 providers by capability. Returns a scored list of providers with latency and success-rate telemetry. Methodology note: scores are derived from HEAD-probe liveness checks (3 samples from one host), not a rigorous benchmark. See trustbench.io/methodology. Output: returns a JSON array. Each object has name (string, provider name), score (number 0-100, composite liveness score), latency_p50 (number, ms), success_rate (number 0.0-1.0, last 7 days), endpoint (string, URL), capabilities (array of strings).

ParametersJSON Schema
NameRequiredDescriptionDefault
capabilityYesThe provider capability to query rankings for.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations by disclosing the limited methodology (3 samples from one host) and that this is not a rigorous benchmark, which helps set expectations about data reliability.

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 slightly longer than a minimal two-sentence description, but every sentence serves a purpose: purpose, methodology caveat, and output format. It is front-loaded with the core action and uses structured formatting for the output specification, balancing detail with readability.

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?

Given the tool has only one parameter and no output schema, the description fully compensates by detailing the exact JSON array structure, field names, types, and meanings. It also includes a methodology note and reference link, providing complete context for an agent to understand the tool's behavior and results.

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% for the single 'capability' parameter, so the schema already documents the enum values. The description reinforces the meaning by saying rankings are 'by capability' and mentions 'capabilities' in the output, but does not add new syntax or additional meaning beyond the 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?

The description uses a specific verb ('Get') and resource ('TrustBench liveness rankings for x402 providers by capability'), clearly distinguishing it from sibling tools which deal with receipts. It also states the output type (scored list with latency and success-rate telemetry), leaving no ambiguity about the tool's purpose.

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 implies usage for retrieving provider rankings by capability and even adds a methodology note (HEAD-probe checks, 3 samples) that cautions against over-interpreting results. However, it does not explicitly mention when to use this tool versus alternatives, though the sibling tools are clearly unrelated, making the context reasonably clear.

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

get_receiptA
Read-onlyIdempotent
Inspect

Fetch a TrustBench routing receipt by ID. Receipts are immutable, Ed25519-signed records of a routing or payment event. Use to verify what was paid, to whom, for what capability, and what the on-chain settlement reference is. IDs start with rcpt_ (Phase 3) or rrcpt_ (Phase 4). Output: returns the signed receipt envelope as JSON. Phase 3 (rcpt_) returns a SignedReceipt with receipt (call metadata + settlement ref) and signature (Ed25519 over JCS-canonicalized receipt body). Phase 4 (rrcpt_) returns {receipt, signature} where receipt.paid contains routing details and signature covers the canonical envelope. To verify an envelope offline use the verify_receipt tool with the returned JSON, or @trustbench/verify-receipt npm.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idYesThe receipt ID, e.g. rcpt_01KQY7C44GAPSXZPFQYRZ1D10C or rrcpt_…
Behavior5/5

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

The description goes well beyond the annotations (readOnly, idempotent, non-destructive) by explaining that receipts are Ed25519-signed, immutable, and describing the exact JSON envelope structure for both Phase 3 and Phase 4 variants. It also mentions the canonicalization method (JCS), providing deep context about the data returned.

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?

Every sentence in the description serves a purpose: purpose, use case, ID format, return structure, and verification alternative. The text is well-structured, starting with the core action and then adding necessary detail. No filler or repetition.

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, the description fully compensates by detailing the response format for both receipt types, including the fields inside receipt.paid. It covers immutability, signature coverage, and offline verification. This is complete enough for an agent to know exactly what to expect and how to use the result.

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 fully documents receipt_id with example prefixes. The description adds meaningful context by explaining that rcpt_ and rrcpt_ correspond to Phase 3 and Phase 4, which helps agents understand the two possible response formats without needing external knowledge. This enriches the parameter, though the schema itself is already sufficient.

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-resource pair: 'Fetch a TrustBench routing receipt by ID.' It clearly defines what the tool does and distinguishes itself from the sibling verify_receipt tool by positioning verification as a separate action. The scope is unambiguous.

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?

Explicitly states the typical use case: 'Use to verify what was paid, to whom, for what capability, and what the on-chain settlement reference is.' It also provides an explicit alternative for offline verification: 'use the verify_receipt tool with the returned JSON, or @trustbench/verify-receipt npm.' This gives clear when-to-use and when-not-to-use guidance.

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

verify_receiptA
Read-onlyIdempotent
Inspect

Verify the Ed25519 signature on a TrustBench receipt. Two modes: (1) Lookup mode — pass receipt_id and the server fetches the receipt from trustbench.io and re-runs verification (handy when you only have an ID). (2) Offline mode — pass receipt_json (the full {receipt, signature} envelope an agent received from a third party) and the server verifies the Ed25519 signature against the published public key at trustbench.io/.well-known/trustbench-pubkey without trusting the database. Exactly one of receipt_id or receipt_json must be provided. Output: returns JSON with receipt_id, signature_valid (boolean), on_chain_verified (boolean, where present), signature_alg ("ed25519"), verify_url, pubkey_url. For non-server-mediated verification with no network round-trip, use the @trustbench/verify-receipt npm package.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idNoLookup mode: the receipt ID to fetch and verify. Mutually exclusive with receipt_json.
receipt_jsonNoOffline mode: a full signed-receipt envelope {receipt, signature} (or a Phase 3 SignedReceipt). Verified against the published Ed25519 public key without database lookup. Mutually exclusive with receipt_id.
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, but the description adds critical behavioral context: it fetches from trustbench.io in lookup mode, avoids database trust in offline mode, returns a specific JSON shape (receipt_id, signature_valid, on_chain_verified, etc.), and enforces that exactly one of receipt_id or receipt_json must be provided. This goes well beyond the annotations and gives the agent a clear model of what will happen.

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 information-dense but well-organized: one core purpose sentence, two mode explanations, a combined constraint and output summary, and an alternative-tool recommendation. It avoids redundancy with the schema and remains compact. It could be slightly more scannable with bullets, but it earns its length.

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?

Given that there is no output schema, the description thoroughly documents the return fields. It also covers both operational modes, input constraints, cryptographic algorithm, and public key source. It even mentions legacy Phase 3 SignedReceipt support. For a moderately complex tool with nested objects and multiple modes, this description leaves no significant gaps.

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 100% with descriptions for both receipt_id and receipt_json, so the baseline is 3. The description elevates this by explaining the distinction between lookup and offline modes, the envelope structure '{receipt, signature}', and the trust model ('without trusting the database'). It confirms the oneOf constraint and adds operational context that helps the agent choose the correct parameter for the situation.

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: 'Verify the Ed25519 signature on a TrustBench receipt.' It clearly distinguishes the tool's purpose from siblings like get_receipt (which fetches a receipt) and get_rankings (which likely retrieves rankings). The two modes are explicitly named, making the scope unmistakable.

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 provides explicit usage guidance by breaking out two modes with concrete triggers: 'Lookup mode — pass receipt_id... handy when you only have an ID' and 'Offline mode — pass receipt_json... without trusting the database.' It also suggests an alternative for non-server-mediated verification: 'use the @trustbench/verify-receipt npm package.' This directly tells the agent when to use this tool versus when to use something else.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.