Routescore

io.routescorePublished by routescore.ioOfficial publisherv0.3.5Updated Oct 24, 2026

Read-only pre-sign evidence for onchain agents: route quality, MEV exposure, clear/caution verdict.

VerifiedStreamable HTTPWeb executableFinanceSecurity & Monitoring

Overview

AI-generated overview

Routescore gives an assistant read-only pre-sign evidence on onchain swaps: modeled route quality, MEV exposure and a clear/caution verdict.

What you can do
Check a swap before signing: modeled route quality, price-impact band, MEV exposure and token recognition as a clear/caution/unsupported verdict, with a hash-verifiable record persisted and retrievable by record_id, plus a detector manifest and key/tier check via whoami. Record and review post-trade execution evidence, with idempotent batch writes and an owner-scoped review of stored records. Get modeled premium estimates for MEV-sandwich exposure, bridge execution failure and LRT slashing risk. Run what-if Monte Carlo scenarios comparing expected premium against expected loss or refund. Review an arbitrary public Ethereum transaction, only on an explicitly enabled non-production server.
When to use it
Useful when an agent or developer wants a modeled, point-in-time second opinion before signing an onchain swap on Ethereum or Robinhood Chain, or wants durable, re-verifiable evidence of what was known at decision time. Also suited to exploring modeled risk-premium and scenario numbers, not to executing or insuring trades.
Requirements
A Routescore API key in ROUTESCORE_API_KEY (or an Authorization bearer header), free to mint on any tier; the key is checked at startup. Runs as a local npm package via npx or as a remote streamable HTTP endpoint. Optional ROUTESCORE_API_URL overrides the API base. Network access to the Routescore API; daily quotas depend on plan tier.
Before you install
The API key is a secret and is shown only once; keep it out of shared configs. All outputs are modeled decision support, not insurance, cover, investment advice or execution guarantees. check_swap is read-only and never signs or moves funds, but record_execution writes immutable records to your account and is Pro-tier. Retrieval and quote tools are Power-tier, and per-key rate limits apply.

Installation

In SourceWeft

  1. Open Routescore in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.routescore%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "routescore": {
      "type": "http",
      "url": "https://www.routescore.io/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

@routescore/mcp

The read-only pre-sign evidence layer — a "pre-sign journal" — for onchain agents.

Before an agent (or you) signs a swap onchain, check_swap returns a modeled read of route quality, MEV/execution exposure, and token-registry recognition as a clear / caution / unsupported verdict with its caveats — and persists a hash-verifiable record of exactly what was known before signing, re-verifiable offline. That record is the pre-sign journal. It is read-only: it never signs, executes, routes funds, or custodies assets.

An MCP server (and a keyed REST API) for Claude, Codex, Cursor, and any MCP-capable agent — a thin, stateless wrapper around the Routescore public API, storing no request or response data locally.

check_swap is free. A free API key runs 100 pre-sign checks/day (Pro 1,000/day, Power 10,000/day); the modeled premium-estimate tools, simulate_scenario, and persisted-record retrieval are Power-tier. Generate a key at Account → Developer → API & MCP access (/account) — free to mint on any plan. Keys look like rs_live_… and are shown once.

See how these modeled reads have tracked measured on-chain outcomes on the public calibration surface — Routescore publishes its own accuracy (Brier score, ECE, coverage), re-derivable from a bound source manifest.

Setup

Add the server to your MCP client config and set your key in the env block.

Claude Desktop (claude_desktop_config.json) / Cursor (.cursor/mcp.json):

json
{  "mcpServers": {    "routescore": {      "command": "npx",      "args": ["-y", "@routescore/mcp"],      "env": {        "ROUTESCORE_API_KEY": "rs_live_your_key_here"      }    }  }}

Claude Code (CLI):

bash
claude mcp add routescore --env ROUTESCORE_API_KEY=rs_live_... -- npx -y @routescore/mcp

Optional env:

  • ROUTESCORE_API_URL — override the API base (default https://www.routescore.io). Useful for local development: http://localhost:3000.

The server checks the key at startup: if ROUTESCORE_API_KEY is missing or does not match the minted key shape (rs_live_ followed by 64 lowercase hex characters), it exits immediately with an actionable error instead of failing on the first tool call. The configured value is never echoed. This is a shape check only — real key verification stays server-side (run the whoami tool).

Tools

ToolWhat it does
quote_mev_coverModeled premium estimate for MEV-sandwich exposure on a swap (modeled premium, expected/CVaR loss).
quote_bridge_refundModeled premium estimate for cross-chain bridge execution failure vs a modeled SLA expectation.
quote_lrt_slashingModeled premium estimate for slashing risk on an LRT position given AVS exposure.
simulate_scenarioWhat-if Monte Carlo: modeled expected premium vs refund/loss over a horizon.
check_swapPre-trade check an agent runs before it signs: modeled route quality, price-impact / slippage band, modeled MEV/execution exposure where observable, and a token registry read (recognized vs unverified), as a clear / caution / unsupported verdict. Supports Ethereum (1) and Robinhood Chain (4663). Recognition is not safety, sellability, rights, redemption, liquidity, or investment-quality verification. Decision support, not execution. Every keyed call also attempts to persist a hash-verifiable evidence record and returns its record_id, evidence_bundle_id, and record_output_hash — null, with a record_persistence_failed caveat, if the record store is unavailable.
get_preflight_recordFetch one persisted preflight evidence record by record_id (owner-scoped to the configured key's account). The record embeds the original check response verbatim plus a canonical-JSON SHA-256 integrity hash so the evidence can be re-verified offline. Read-only evidence: record creation rejects known execution-material keys (calldata, transaction payloads, signing material) and drops identity-shaped labels from the actor context.
get_detector_manifestLatest public MEV-detector run manifest (version hash + universe).
whoamiConfirm the key works and report its plan tier.

All quote_* tool results are modeled, point-in-time premium estimates — decision support only, not a live cover, insurance, refund, or premium-acceptance offer. Routescore does not underwrite risk.

Output contract

Routescore MCP is decision support, not execution infrastructure. check_swap, quote, and scenario tool results preserve the same trust envelope as the REST API, and the wrapper marks output as degraded if the upstream API ever omits required trust fields.

check_swap answers verdict: unsupported as an HTTP 422 with a full evaluated body — an answer, not an error. The wrapper relays those evaluated 422 bodies as normal structured tool results (gap-state fields, caveats, and record linkage included) so agents receive "not evaluated" as first-class evidence; true errors (400/401/403/404/429/5xx and non-evaluated 422 error envelopes) still surface as tool errors.

Downstream agents and dashboards should render the trust-envelope fields by default (abbreviated example):

json
{  "score_state": "partial",  "source_freshness": {    "state": "partial",    "checked_at": "2026-06-21T00:00:00.000Z",    "sources": [      { "name": "routescore_backend", "freshness_state": "fresh" },      { "name": "bridge_risk_labels", "freshness_state": "unknown" }    ]  },  "methodology_version": "routescore.public_api.v1",  "confidence_band": { "low": null, "high": null, "unit": "bps" },  "caveats": [    "Modeled, point-in-time decision support. Not an execution guarantee.",    "Unsupported or stale inputs widen uncertainty instead of hiding risk."  ],  "commercial_disclosure": {    "paid_placement": false,    "score_influenced_by_partner": false  }}

Local development

bash
npm installnpm run buildROUTESCORE_API_KEY=rs_live_... ROUTESCORE_API_URL=http://localhost:3000 node dist/index.js

Then point MCP Inspector at the command, or wire it into a client config as above.

Public Reddit research utility

The retail-research workflow includes a standard-library parser for a saved, publicly rendered old Reddit thread. It extracts public handles, comment counts, IDs, and permalinks without logging in or attempting to recover deleted authors:

bash
python3 scripts/scrape_reddit_public_handles.py /path/to/thread.html \  --csv work/reddit-public-handles.csv \  --json work/reddit-public-handles.json

The input must be HTML already obtained from a public old.reddit.com thread. The parser does not fetch pages or bypass Reddit access controls.

Notes

  • Scenario and quote outputs are modeled decision-support, not investment advice.
  • MCP does not custody assets, execute transactions, route funds, or guarantee outcomes.
  • Rate limits apply per key; responses carry X-RateLimit-* headers.

Source: README.md at commit e3d5bbf

Tools

11

check_swap

Check swap before signing (pre-sign evidence)

CALL THIS BEFORE SIGNING AN ONCHAIN SWAP. Read-only pre-sign evidence check: given notional, chain, and an optional route and token, it returns a modeled route-quality grade, price-impact / slippage band, modeled MEV/execution exposure where observable, and a token registry read (recognized vs unverified), composed into a clear / caution / unsupported verdict with machine-readable reasons and caveats. Point-in-time decision support: it does not execute, route funds, sign, or promise an outcome — the agent still decides. Recognition is not safety, sellability, redemption, rights, liquidity, or investment-quality verification; unverified tokens, unknown order flow, and uncalibrated sequencer ordering downgrade the verdict rather than reading as safe. Relay the verdict, reasons, and caveats verbatim.

Parametersroutechain_idtoken_intoken_outnotional_usdrequiredslippage_allowance_bps

get_preflight_record

Retrieve pre-sign evidence record

Retrieve the durable evidence record a prior check_swap call persisted — the "record" leg of plan → preflight → execute → record. Fetch one record by the record_id that check_swap returned. Owner-scoped: the configured key only ever sees records belonging to its own account. The record embeds the evaluated check_swap response payload (including its evidence_bundle_id, before the additive record_id / record_output_hash linkage fields) plus a canonical-JSON SHA-256 integrity hash (record_id and recorded_at excluded) so the evidence can be re-verified offline, and includes the stored evidence bundle. Read-only evidence: record creation rejects known execution-material keys (calldata, transaction payloads, signing material) and drops identity-shaped labels from the actor context.

Parametersrecord_idrequired

record_execution

Record immutable execution evidence

Persist 1-100 already-built execution_record.v1 documents as immutable, personal-account post-trade evidence. Requires a stable idempotency_key; an exact replay returns the original result and reuse with different content fails closed. Pro tier, owner-scoped, and bounded by the MCP transport byte limit. This tool never accepts calldata, signing material, routes funds, executes a transaction, applies reviewer overrides, or exposes another tenant. Invalid rows are recorded only as redacted rejection reasons and are never echoed.

Parametersrecordsrequiredidempotency_keyrequired

review_execution

Review stored execution evidence

Review one stored execution_record.v1 by record_id. Authenticated and personal-account owner-scoped: another account’s id is indistinguishable from a missing id. Returns the deterministic review_execution.v1 evidence coverage, exceptions, unavailable-evidence register, caveats, and canonical hash. Read-only retrospective decision support only: it does not query arbitrary public transactions, accept reviewer overrides, certify best execution or compliance, give advice, or expose admin actions.

Parametersrecord_idrequired

review_public_transaction

Review public Ethereum transaction

DEV-ONLY CONTRACT DISCOVERY; DISABLED AGAINST PRODUCTION. On an explicitly enabled non-production server, review one arbitrary public Ethereum transaction by transaction hash. This is separate from review_execution: it does not read an owner-scoped stored execution_record.v1 and never exposes tenant, reviewer, override, or administrative fields. Returns the deterministic tenant-free public_transaction_review.v1 coverage register, conclusions, explicit gap register, source provenance, caveats, and canonical hash. Receipt, block, index, and gas facts are measured; gas cost and point-in-time confirmation depth are calculated. Venue is unavailable in this endpoint until a server-owned verified registry adapter exists. Route, amounts, protocol fee, arrival price, feasible-route benchmark, dropped status, and historical reorg remain unavailable unless the public contract can support them. Read-only retrospective decision support only; it does not certify best execution or compliance and does not give advice.

Parameterstx_hashrequiredchain_idrequired

whoami

Verify API key & tier

Confirm the configured API key works and report which plan tier it carries. Returns the owning account email and tier.

Takes no parameters.

get_detector_manifest

Get MEV-detector manifest

Fetch the latest public MEV-detector run manifest: the detector version hash and the eligible pool/token universe it was committed to. Use to verify what the detector covers.

Takes no parameters.

quote_mev_cover

Quote: MEV-sandwich premium (modeled)

Modeled premium estimate for MEV-sandwich exposure on a swap. Returns a modeled premium (bps + USD), expected/CVaR loss, and conditions. Point-in-time decision support before routing a trade — not a live cover, insurance, or premium-acceptance offer.

Parametersroutechain_idasset_pairnotional_usdrequiredrefund_threshold_bpsslippage_allowance_bpshistorical_sandwich_freq

quote_bridge_refund

Quote: bridge-failure premium (modeled)

Modeled premium estimate for cross-chain bridge execution failure against a modeled SLA expectation. Returns a modeled premium and conditions — not a live cover, refund, or premium-acceptance offer.

Parametersbridgesla_secondsnotional_usdrequireddest_chain_idsource_chain_idbridge_risk_score

quote_lrt_slashing

Quote: LRT-slashing premium (modeled)

Modeled premium estimate for slashing risk on a liquid-restaking-token (LRT) position given its AVS exposure. Returns a modeled premium and slashing bounds — not a live cover offer.

Parameterslrt_tokencovered_eth_amountrequiredcover_duration_weekscorrelation_max_overlapunderlying_avs_exposure

simulate_scenario

Simulate premium-vs-loss scenario (modeled)

Run a what-if Monte Carlo: model expected premium vs expected refund/loss over a horizon, given assumptions about sandwich frequency, average loss, and deductible. Returns a narrative + distribution.

Parametersavg_loss_bpshorizon_daysnotional_usdrequireddeductible_bpssandwich_freq_pct

Version history

1
  1. v0.3.5LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts