# `io.github.lithvall/trustbench` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/io.github.lithvall/trustbench
- JSON: https://anlyon.dev/api/v1/servers/io.github.lithvall/trustbench
- Version: 1.1.1 (active)
- Publisher: io.github.lithvall (GitHub account)
- Runs: remote (streamable-http), local (npm)
- Sign-in to list tools: none
- Repository: https://github.com/lithvall/TrustBench
- Metadata from the official MCP Registry, synced 2026-10-21T18:38:21.866Z

Title and description, as the publisher wrote them:

```untrusted-server-text
TrustBench
x402 provider rankings + Ed25519-signed payment receipts + signature verification (3 tools).
```

Scanned 2026-10-21T19:24:34.939Z over streamable-http.

**3 tools: 1 change things and 2 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 1 | ask |
| Only reads | read | 2 | allow |

## Findings

No check matched anything in these tool definitions.


## Changes things (1)

Creates or changes something that can be changed back. Claude Code: ask.

### `verify_receipt`

- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

Description, as the server wrote it:

```untrusted-server-text
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.
```

## Only reads (2)

Looks things up and changes nothing. Claude Code: allow.

### `get_rankings`

- The name "get_rankings" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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).
```

### `get_receipt`

- The name "get_receipt" says "get": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
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.
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `trustbench`:

```json
{
  "permissions": {
    "allow": [
      "mcp__trustbench__get_rankings",
      "mcp__trustbench__get_receipt"
    ],
    "ask": [
      "mcp__trustbench__verify_receipt"
    ],
    "deny": []
  }
}
```
