{"name":"io.routescore/mcp","slug":"routescore-mcp","title":"Routescore","description":"Read-only pre-sign evidence for onchain agents: route quality, MEV exposure, clear/caution verdict.","url":"https://mcp.market/server/routescore-mcp","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":25,"stars":0,"forks":0,"downloads_week":30,"last_push_at":"2026-07-14T18:11:33.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T10:30:59.118Z","last_ok_at":"2026-11-04T10:30:59.118Z","latency_ms":349},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/routescore/mcp","website":"https://www.routescore.io/developers","version":"0.3.5","remotes":[{"type":"streamable-http","url":"https://www.routescore.io/api/mcp","headers":[{"description":"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.","isRequired":true,"format":"string","isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@routescore/mcp","version":"0.3.5","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Routescore API key (rs_live_...), free to mint on any tier. check_swap daily quotas are per account (free 100/day, Pro 1,000, Power 10,000); per-minute burst limits are per key. The broader modeled-quote, scenario, manifest, and record-retrieval surface requires Power. Generate one at https://www.routescore.io/account. Shown once.","isRequired":true,"format":"string","isSecret":true,"name":"ROUTESCORE_API_KEY"},{"description":"Override the API base URL (default https://www.routescore.io). For local development use http://localhost:3000.","format":"string","name":"ROUTESCORE_API_URL"}]}],"tools":[{"name":"check_swap","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"notional_usd":{"type":"number","exclusiveMinimum":0,"maximum":1000000000000,"description":"Trade size in USD."},"chain_id":{"type":"integer","exclusiveMinimum":0,"description":"Chain ID. 1 = Ethereum (default), 4663 = Robinhood Chain."},"route":{"type":"string","description":"Route id to score, e.g. 'uniswap-v3-rho'. Omit to score the chain's default public route."},"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."},"token_in":{"type":"string","description":"Token being sold (address or symbol)."},"slippage_allowance_bps":{"type":"number","minimum":0,"maximum":10000,"description":"Slippage allowance in bps. Default 50."}},"required":["notional_usd"],"additionalProperties":false}},{"name":"get_detector_manifest","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_preflight_record","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"record_id":{"type":"string","minLength":1,"description":"The record id returned by check_swap (its record_id field)."}},"required":["record_id"],"additionalProperties":false}},{"name":"quote_bridge_refund","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"notional_usd":{"type":"number","exclusiveMinimum":0,"description":"Amount bridged in USD."},"bridge":{"type":"string","description":"Bridge name, e.g. 'across'."},"source_chain_id":{"type":"integer","description":"Source chain ID. Default 1."},"dest_chain_id":{"type":"integer","description":"Destination chain ID. Default 8453 (Base)."},"sla_seconds":{"type":"integer","exclusiveMinimum":0,"description":"Expected delivery SLA in seconds. Default 60."},"bridge_risk_score":{"type":"number","minimum":0,"maximum":1,"description":"Bridge risk score 0–1. Default 0.05."}},"required":["notional_usd"],"additionalProperties":false}},{"name":"quote_lrt_slashing","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"covered_eth_amount":{"type":"number","exclusiveMinimum":0,"description":"ETH amount used as the modeled position size."},"lrt_token":{"type":"string","description":"LRT token, e.g. 'weETH'."},"underlying_avs_exposure":{"type":"object","description":"AVS exposure weights, e.g. { \"EigenDA\": 1.0 }."},"correlation_max_overlap":{"type":"number","minimum":0,"maximum":1,"description":"Max correlation overlap 0–1. Default 0.5."},"cover_duration_weeks":{"type":"integer","minimum":1,"maximum":520,"description":"Modeled cover duration in weeks. Default 12."}},"required":["covered_eth_amount"],"additionalProperties":false}},{"name":"quote_mev_cover","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"notional_usd":{"type":"number","exclusiveMinimum":0,"description":"Trade size in USD."},"asset_pair":{"type":"string","description":"Asset pair, e.g. 'USDC/ETH'. Default USDC/ETH."},"route":{"type":"string","description":"Execution route, e.g. 'uniswap-v3'."},"chain_id":{"type":"integer","description":"Chain ID (1 = Ethereum). Default 1."},"slippage_allowance_bps":{"type":"number","description":"Slippage allowance in bps. Default 50."},"refund_threshold_bps":{"type":"number","description":"Modeled refund threshold in bps. Default 50."},"historical_sandwich_freq":{"type":"number","minimum":0,"maximum":1,"description":"Historical sandwich frequency as a 0–1 fraction. Default 0.012."}},"required":["notional_usd"],"additionalProperties":false}},{"name":"record_execution","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"pattern":"^(?=.*\\S)[^\\u0000-\\u001F\\u007F]+$","description":"Stable caller key for this exact records array. Reuse it only for an exact retry."},"records":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":true},"description":"One to 100 complete routescore.execution_record.v1 documents. The MCP argument envelope is additionally capped at 32 KiB."}},"required":["idempotency_key","records"],"additionalProperties":false}},{"name":"review_execution","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"record_id":{"type":"string","format":"uuid","minLength":36,"maxLength":36,"description":"UUID of an execution_record.v1 already stored under the configured key’s personal account."}},"required":["record_id"],"additionalProperties":false}},{"name":"review_public_transaction","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"chain_id":{"type":"integer","const":1,"minimum":1,"maximum":1,"description":"Ethereum mainnet chain id. Public transaction review currently accepts only 1."},"tx_hash":{"type":"string","minLength":66,"maxLength":66,"pattern":"^0x[0-9a-fA-F]{64}$","description":"One public Ethereum 32-byte transaction hash."}},"required":["chain_id","tx_hash"],"additionalProperties":false}},{"name":"simulate_scenario","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"notional_usd":{"type":"number","exclusiveMinimum":0,"description":"Per-swap notional in USD."},"sandwich_freq_pct":{"type":"number","minimum":0,"maximum":100,"description":"Sandwich frequency as a percentage 0–100. Default 1.2."},"avg_loss_bps":{"type":"number","minimum":0,"description":"Average sandwich loss in bps. Default 40."},"horizon_days":{"type":"integer","minimum":1,"maximum":365,"description":"Horizon in days (≈ swaps). Default 30."},"deductible_bps":{"type":"number","minimum":0,"description":"Deductible in bps. Default 100."}},"required":["notional_usd"],"additionalProperties":false}},{"name":"whoami","description":"Confirm the configured API key works and report which plan tier it carries. Returns the owning account email and tier.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}}],"scan":{"score":89,"grade":"A","scanned_at":"2026-09-25T17:25:17.362Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:25:17.329Z","components":{"code":{"score":25,"max":25,"notes":["10 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1238ms"]},"poisoning":{"score":15,"max":15,"notes":["11 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":12,"max":15,"notes":["last push 73 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://www.routescore.io/api/mcp","reachable":true,"authRequired":false,"latencyMs":1238,"serverInfo":{"name":"routescore","version":"0.4.0"}}],"packages":[{"registryType":"npm","identifier":"@routescore/mcp","version":"0.3.5","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-07-19T06:06:24.507Z","repositoryUrl":"git+https://github.com/routescore/mcp.git","weeklyDownloads":30}],"repo":{"found":true,"owner":"routescore","repo":"mcp","archived":false,"pushedAt":"2026-07-14T18:11:33Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/304597056?v=4","ownerCreatedAt":"2026-07-13T18:31:49Z","license":"MIT"},"icon":{"url":"https://www.routescore.io/apple-touch-icon.png","source":"site","width":180,"height":180},"presence":{"stars":0,"forks":0,"downloadsWeek":30,"license":"MIT","lastPushAt":"2026-07-14T18:11:33.000Z","score":25}}}},"grade_history":[],"reviews":[]}