Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Routescore

REMOTE · WWW.ROUTESCORE.IO · 2 COMPONENTS · SCANNED AUG 3

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

+6 this week 74 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2297 tokens (~208/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · www.routescore.io

# add to Claude Code
claude mcp add --transport http io-routescore-mcp https://www.routescore.io/api/mcp
# ~/.codex/config.toml
[mcp_servers.io-routescore-mcp]
url = "https://www.routescore.io/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-routescore-mcp": {
      "type": "remote",
      "url": "https://www.routescore.io/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-routescore-mcp --url https://www.routescore.io/api/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-routescore-mcp:
    url: "https://www.routescore.io/api/mcp"
// mcp.json
{
  "mcpServers": {
    "io-routescore-mcp": {
      "type": "http",
      "url": "https://www.routescore.io/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 1590 → 2297 functional
    • Server version: 0.3.5 → 0.4.0 functional
    • New tool “review_execution” functional
    • New tool “record_execution” functional
    • New tool “review_public_transaction” functional
  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +3
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 67

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://www.routescore.io/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=routescore.io CN=WE1,O=Google Trust Services,C=US 21 Jun 2026 19 Sept 2026 ECDSA 256 ECDSA-SHA256 3b947a02f4da740a0ee8495ccf370090
SANs: routescore.io, *.routescore.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of www.routescore.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
routescore.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://www.routescore.io/api/mcp Verified 200
http (plaintext) http://www.routescore.io/api/mcp HTTPS enforced 308 https://www.routescore.io/api/mcp
MCP tools — 11 exposed · ~1,822 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
check_swap ~380

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.

NameTypeReqDescription
chain_idintegerChain ID. 1 = Ethereum (default), 4663 = Robinhood Chain.
notional_usdnumberyesTrade size in USD.
routestringRoute id to score, e.g. 'uniswap-v3-rho'. Omit to score the chain's default public route.
slippage_allowance_bpsnumberSlippage allowance in bps. Default 50.
token_instringToken being sold (address or symbol).
token_outstringToken being received (address or symbol) — checked against Routescore's recognized-token registry (recognized vs unverified). RHC tokenized stock/ETF address-level recognition uses the Routescore reg…
NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
chainobject|nullResolved chain (chainId, name, supportLevel), or null.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
evidence_bundle_idstring|nullId of the evidence bundle; null when not persisted.
market_regimeobjectReference-market open/closed regime evidence (additive).
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
reasonsarrayStable reason codes; open vocabulary — tolerate unknown codes.
record_idstring|nullId of the persisted evidence record; null if persistence failed.
record_output_hashstring|nullsha256:<hex> content hash of the record; null if persistence failed.
reference_priceobjectBasis-regime gap-state evidence for tokenized assets (additive).
routeobject|nullScored route with modeled grade / quality / leak / slippage fields, or null.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
token_safetyobjectRegistry recognition read: recognized vs unverified, with flags and caveats. Recognition only.
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.
verdictstringAdvisory pre-sign verdict.

No examples provided.

get_detector_manifest ~43

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.

Input schema present but exposes no named parameters.

NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
detector_version_hashstringSHA-256 of the detector + pricing source.
eligible_universeobjectThe pinned pool / token universe scanned.
generated_atstringISO-8601 generation timestamp.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

get_preflight_record ~181

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.

NameTypeReqDescription
record_idstringyesThe record id returned by check_swap (its record_id field).
NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
evidence_bundleobject|nullThe stored evidence bundle, or null when none was captured.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
recordobjectThe full routescore.preflight_record.v0 document (schema, record_id, recorded_at, request, actor, policy_ref, response, integrity).
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

quote_bridge_refund ~153

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.

NameTypeReqDescription
bridgestringBridge name, e.g. 'across'.
bridge_risk_scorenumberBridge risk score 0–1. Default 0.05.
dest_chain_idintegerDestination chain ID. Default 8453 (Base).
notional_usdnumberyesAmount bridged in USD.
sla_secondsintegerExpected delivery SLA in seconds. Default 60.
source_chain_idintegerSource chain ID. Default 1.
NameTypeReqDescription
allowedbooleanWhether the engine produced a modeled quote.
bond_idstring
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
conditionsobjectEngine-defined conditions.
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
cvar95_loss_bpsnumberModeled CVaR-95 loss in bps.
expected_loss_bpsnumberModeled expected loss in bps.
expected_outcomeobjectEngine-defined expected-outcome payload.
expires_atstring|nullISO-8601 expiry timestamp, or null.
issued_atstringISO-8601 issue timestamp.
margin_bpsnumberModeled margin component in bps.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
no_quote_reasonstring|nullReason a modeled quote was withheld, or null.
premium_amount_usdnumberModeled premium in USD.
premium_bpsnumberModeled premium in bps.
productstring
reason_codesarrayStable reason codes.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

quote_lrt_slashing ~158

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.

NameTypeReqDescription
correlation_max_overlapnumberMax correlation overlap 0–1. Default 0.5.
cover_duration_weeksintegerModeled cover duration in weeks. Default 12.
covered_eth_amountnumberyesETH amount used as the modeled position size.
lrt_tokenstringLRT token, e.g. 'weETH'.
underlying_avs_exposureobjectAVS exposure weights, e.g. { "EigenDA": 1.0 }.
NameTypeReqDescription
allowedbooleanWhether the engine produced a modeled quote.
bond_idstring
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
conditionsobjectEngine-defined conditions.
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
cvar95_loss_bpsnumberModeled CVaR-95 loss in bps.
expected_loss_bpsnumberModeled expected loss in bps.
expected_outcomeobjectEngine-defined expected-outcome payload.
expires_atstring|nullISO-8601 expiry timestamp, or null.
issued_atstringISO-8601 issue timestamp.
margin_bpsnumberModeled margin component in bps.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
no_quote_reasonstring|nullReason a modeled quote was withheld, or null.
premium_amount_usdnumberModeled premium in USD.
premium_bpsnumberModeled premium in bps.
productstring
reason_codesarrayStable reason codes.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

quote_mev_cover ~212

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.

NameTypeReqDescription
asset_pairstringAsset pair, e.g. 'USDC/ETH'. Default USDC/ETH.
chain_idintegerChain ID (1 = Ethereum). Default 1.
historical_sandwich_freqnumberHistorical sandwich frequency as a 0–1 fraction. Default 0.012.
notional_usdnumberyesTrade size in USD.
refund_threshold_bpsnumberModeled refund threshold in bps. Default 50.
routestringExecution route, e.g. 'uniswap-v3'.
slippage_allowance_bpsnumberSlippage allowance in bps. Default 50.
NameTypeReqDescription
allowedbooleanWhether the engine produced a modeled quote.
bond_idstring
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
conditionsobjectEngine-defined conditions.
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
cvar95_loss_bpsnumberModeled CVaR-95 loss in bps.
expected_loss_bpsnumberModeled expected loss in bps.
expected_outcomeobjectEngine-defined expected-outcome payload.
expires_atstring|nullISO-8601 expiry timestamp, or null.
issued_atstringISO-8601 issue timestamp.
margin_bpsnumberModeled margin component in bps.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
no_quote_reasonstring|nullReason a modeled quote was withheld, or null.
premium_amount_usdnumberModeled premium in USD.
premium_bpsnumberModeled premium in bps.
productstring
reason_codesarrayStable reason codes.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

record_execution ~168

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.

NameTypeReqDescription
idempotency_keystringyesStable caller key for this exact records array. Reuse it only for an exact retry.
recordsarrayyesOne to 100 complete routescore.execution_record.v1 documents. The MCP argument envelope is additionally capped at 32 KiB.
NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
intake_idstringyes
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
recordsarrayyes
rejectedarrayyes
schemastringyes
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
summaryobjectyes
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

review_execution ~122

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.

NameTypeReqDescription
record_idstringyesUUID of an execution_record.v1 already stored under the configured key’s personal account.
NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
reviewobjectyesDeterministic routescore.review_execution.v1 result. It is retrospective decision support, not advice or a best-execution certification.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

review_public_transaction ~231

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.

NameTypeReqDescription
chain_idintegeryesEthereum mainnet chain id. Public transaction review currently accepts only 1.
tx_hashstringyesOne public Ethereum 32-byte transaction hash.
NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
reviewobjectyesTenant-free deterministic routescore.public_transaction_review.v1 result from normalized public Ethereum evidence.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

simulate_scenario ~144

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.

NameTypeReqDescription
avg_loss_bpsnumberAverage sandwich loss in bps. Default 40.
deductible_bpsnumberDeductible in bps. Default 100.
horizon_daysintegerHorizon in days (≈ swaps). Default 30.
notional_usdnumberyesPer-swap notional in USD.
sandwich_freq_pctnumberSandwich frequency as a percentage 0–100. Default 1.2.
NameTypeReqDescription
caveatsarrayCaveat sentences to relay verbatim.
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
distributionarrayLoss-distribution histogram bins for charting.
expected_loss_usdnumberModeled expected loss in USD over the horizon.
expected_premium_usdnumberModeled expected premium in USD over the horizon.
expected_refund_usdnumberModeled expected refund in USD over the horizon.
loss_ratio_pctnumberModeled loss ratio as a percentage.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
narrativestringPlain-language summary of the modeled scenario.
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.

whoami ~30

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

Input schema present but exposes no named parameters.

NameTypeReqDescription
authenticatedbooleanTrue when the key is valid.
caveatsarrayCaveat sentences to relay verbatim.
check_swap_enabledbooleanWhether the pre-sign check_swap endpoint is available (every tier).
commercial_disclosureobjectNo-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
confidence_bandobjectConfidence band (low, high, unit, label); low/high are null when not calibrated.
emailstringThe owning account email.
methodology_versionstringMethodology-version string, e.g. routescore.public_api.v1.
plan_includes_apibooleanBack-compat alias for quote_api_enabled.
quote_api_enabledbooleanWhether the modeled-quote / scenario tools are available (Power only).
score_statestringOverall state of the response.
source_freshnessobjectPer-source freshness reading (state, checked_at, max_age_seconds, sources[]).
tierstringThe owning account tier.
trustobjectThe full nested trust envelope; additionally carries generated_at and decision_support_only.

No examples provided.