Read-only pre-sign evidence for onchain agents: route quality, MEV exposure, clear/caution verdict.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer rs_live_... — a Routescore API key, free to mint on any tier at https://www.routescore.io/account. Required for tools/call (check_swap, record retrieval, quotes); discovery (initialize, tools/list) works without a key. Same tiers and quotas as the stdio package.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Trade size in USD.
Route id to score, e.g. 'uniswap-v3-rho'. Omit to score the chain's default public route.
Chain ID. 1 = Ethereum (default), 4663 = Robinhood Chain.
Token being sold (address or symbol).
Token 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 registry contract address; symbol-only input is downgraded to unverified. Symbol-only recognition is not contract verification. Recognition is not a safety, sellability, rights, redemption, liquidity, or investment-quality verdict; unverified means Routescore has not confirmed the token.
Slippage allowance in bps. Default 50.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| route | string | Route id to score, e.g. 'uniswap-v3-rho'. Omit to score the chain's default public route. |
| chain_id | integer | Chain ID. 1 = Ethereum (default), 4663 = Robinhood Chain. |
| token_in | string | Token being sold (address or symbol). |
| token_out | string | Token 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 registry contract address; symbol-only input is downgraded to unverified. Symbol-only recognition is not contract verification. Recognition is not a safety, sellability, rights, redemption, liquidity, or investment-quality verdict; unverified means Routescore has not confirmed the token. |
| notional_usd* | number | Trade size in USD. |
| slippage_allowance_bps | number | Slippage allowance in bps. Default 50. |
{
"type": "object",
"required": [
"notional_usd"
],
"properties": {
"route": {
"type": "string",
"description": "Route id to score, e.g. 'uniswap-v3-rho'. Omit to score the chain's default public route."
},
"chain_id": {
"type": "integer",
"description": "Chain ID. 1 = Ethereum (default), 4663 = Robinhood Chain.",
"exclusiveMinimum": 0
},
"token_in": {
"type": "string",
"description": "Token being sold (address or symbol)."
},
"token_out": {
"type": "string",
"description": "Token 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 registry contract address; symbol-only input is downgraded to unverified. Symbol-only recognition is not contract verification. Recognition is not a safety, sellability, rights, redemption, liquidity, or investment-quality verdict; unverified means Routescore has not confirmed the token."
},
"notional_usd": {
"type": "number",
"maximum": 1000000000000,
"description": "Trade size in USD.",
"exclusiveMinimum": 0
},
"slippage_allowance_bps": {
"type": "number",
"maximum": 10000,
"minimum": 0,
"description": "Slippage allowance in bps. Default 50."
}
},
"additionalProperties": false
}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.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| record_id* | string | The record id returned by check_swap (its record_id field). |
{
"type": "object",
"required": [
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"minLength": 1,
"description": "The record id returned by check_swap (its record_id field)."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| bridge | string | Bridge name, e.g. 'across'. |
| sla_seconds | integer | Expected delivery SLA in seconds. Default 60. |
| notional_usd* | number | Amount bridged in USD. |
| dest_chain_id | integer | Destination chain ID. Default 8453 (Base). |
| source_chain_id | integer | Source chain ID. Default 1. |
| bridge_risk_score | number | Bridge risk score 0–1. Default 0.05. |
{
"type": "object",
"required": [
"notional_usd"
],
"properties": {
"bridge": {
"type": "string",
"description": "Bridge name, e.g. 'across'."
},
"sla_seconds": {
"type": "integer",
"description": "Expected delivery SLA in seconds. Default 60.",
"exclusiveMinimum": 0
},
"notional_usd": {
"type": "number",
"description": "Amount bridged in USD.",
"exclusiveMinimum": 0
},
"dest_chain_id": {
"type": "integer",
"description": "Destination chain ID. Default 8453 (Base)."
},
"source_chain_id": {
"type": "integer",
"description": "Source chain ID. Default 1."
},
"bridge_risk_score": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Bridge risk score 0–1. Default 0.05."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| lrt_token | string | LRT token, e.g. 'weETH'. |
| covered_eth_amount* | number | ETH amount used as the modeled position size. |
| cover_duration_weeks | integer | Modeled cover duration in weeks. Default 12. |
| correlation_max_overlap | number | Max correlation overlap 0–1. Default 0.5. |
| underlying_avs_exposure | object | AVS exposure weights, e.g. { "EigenDA": 1.0 }. |
{
"type": "object",
"required": [
"covered_eth_amount"
],
"properties": {
"lrt_token": {
"type": "string",
"description": "LRT token, e.g. 'weETH'."
},
"covered_eth_amount": {
"type": "number",
"description": "ETH amount used as the modeled position size.",
"exclusiveMinimum": 0
},
"cover_duration_weeks": {
"type": "integer",
"maximum": 520,
"minimum": 1,
"description": "Modeled cover duration in weeks. Default 12."
},
"correlation_max_overlap": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Max correlation overlap 0–1. Default 0.5."
},
"underlying_avs_exposure": {
"type": "object",
"description": "AVS exposure weights, e.g. { \"EigenDA\": 1.0 }."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| route | string | Execution route, e.g. 'uniswap-v3'. |
| chain_id | integer | Chain ID (1 = Ethereum). Default 1. |
| asset_pair | string | Asset pair, e.g. 'USDC/ETH'. Default USDC/ETH. |
| notional_usd* | number | Trade size in USD. |
| refund_threshold_bps | number | Modeled refund threshold in bps. Default 50. |
| slippage_allowance_bps | number | Slippage allowance in bps. Default 50. |
| historical_sandwich_freq | number | Historical sandwich frequency as a 0–1 fraction. Default 0.012. |
{
"type": "object",
"required": [
"notional_usd"
],
"properties": {
"route": {
"type": "string",
"description": "Execution route, e.g. 'uniswap-v3'."
},
"chain_id": {
"type": "integer",
"description": "Chain ID (1 = Ethereum). Default 1."
},
"asset_pair": {
"type": "string",
"description": "Asset pair, e.g. 'USDC/ETH'. Default USDC/ETH."
},
"notional_usd": {
"type": "number",
"description": "Trade size in USD.",
"exclusiveMinimum": 0
},
"refund_threshold_bps": {
"type": "number",
"description": "Modeled refund threshold in bps. Default 50."
},
"slippage_allowance_bps": {
"type": "number",
"description": "Slippage allowance in bps. Default 50."
},
"historical_sandwich_freq": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Historical sandwich frequency as a 0–1 fraction. Default 0.012."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| records* | array | One to 100 complete routescore.execution_record.v1 documents. The MCP argument envelope is additionally capped at 32 KiB. |
| idempotency_key* | string | Stable caller key for this exact records array. Reuse it only for an exact retry. |
{
"type": "object",
"required": [
"idempotency_key",
"records"
],
"properties": {
"records": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"maxItems": 100,
"minItems": 1,
"description": "One to 100 complete routescore.execution_record.v1 documents. The MCP argument envelope is additionally capped at 32 KiB."
},
"idempotency_key": {
"type": "string",
"pattern": "^(?=.*\\S)[^\\u0000-\\u001F\\u007F]+$",
"maxLength": 200,
"minLength": 1,
"description": "Stable caller key for this exact records array. Reuse it only for an exact retry."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| record_id* | string | UUID of an execution_record.v1 already stored under the configured key’s personal account. |
{
"type": "object",
"required": [
"record_id"
],
"properties": {
"record_id": {
"type": "string",
"format": "uuid",
"maxLength": 36,
"minLength": 36,
"description": "UUID of an execution_record.v1 already stored under the configured key’s personal account."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| tx_hash* | string | One public Ethereum 32-byte transaction hash. |
| chain_id* | integer | Ethereum mainnet chain id. Public transaction review currently accepts only 1. |
{
"type": "object",
"required": [
"chain_id",
"tx_hash"
],
"properties": {
"tx_hash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$",
"maxLength": 66,
"minLength": 66,
"description": "One public Ethereum 32-byte transaction hash."
},
"chain_id": {
"type": "integer",
"const": 1,
"maximum": 1,
"minimum": 1,
"description": "Ethereum mainnet chain id. Public transaction review currently accepts only 1."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| avg_loss_bps | number | Average sandwich loss in bps. Default 40. |
| horizon_days | integer | Horizon in days (≈ swaps). Default 30. |
| notional_usd* | number | Per-swap notional in USD. |
| deductible_bps | number | Deductible in bps. Default 100. |
| sandwich_freq_pct | number | Sandwich frequency as a percentage 0–100. Default 1.2. |
{
"type": "object",
"required": [
"notional_usd"
],
"properties": {
"avg_loss_bps": {
"type": "number",
"minimum": 0,
"description": "Average sandwich loss in bps. Default 40."
},
"horizon_days": {
"type": "integer",
"maximum": 365,
"minimum": 1,
"description": "Horizon in days (≈ swaps). Default 30."
},
"notional_usd": {
"type": "number",
"description": "Per-swap notional in USD.",
"exclusiveMinimum": 0
},
"deductible_bps": {
"type": "number",
"minimum": 0,
"description": "Deductible in bps. Default 100."
},
"sandwich_freq_pct": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Sandwich frequency as a percentage 0–100. Default 1.2."
}
},
"additionalProperties": false
}Confirm the configured API key works and report which plan tier it carries. Returns the owning account email and tier.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}