# Routescore (remote · www.routescore.io)

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

- Trust score: 74/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `www.routescore.io`: 74/100 (this document), [markdown](https://verifymcp.io/servers/io-routescore-mcp/api-mcp.md), [page](https://verifymcp.io/servers/io-routescore-mcp/api-mcp)
- npm · `@routescore/mcp`: 35/100, [markdown](https://verifymcp.io/servers/io-routescore-mcp/routescore-mcp.md), [page](https://verifymcp.io/servers/io-routescore-mcp/routescore-mcp)

## Channel facts

- Endpoint: `https://www.routescore.io/api/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.3.5`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http io-routescore-mcp https://www.routescore.io/api/mcp
```

### Codex

```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
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-routescore-mcp --url https://www.routescore.io/api/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-routescore-mcp:
    url: "https://www.routescore.io/api/mcp"
```

### Other

```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 recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 74, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] 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”

### 2026-08-01 (score 74, +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.

### 2026-07-31 (score 73, +3)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 70, +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.

### 2026-07-28 (score 69, +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.

### 2026-07-27 (score 68, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 67)

First indexed and scored.

## MCP tools (11)

### `check_swap` (~380 tokens)

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.

Input parameters:

- `chain_id` (integer): Chain ID. 1 = Ethereum (default), 4663 = Robinhood Chain.
- `notional_usd` (number, required): Trade size in USD.
- `route` (string): Route id to score, e.g. 'uniswap-v3-rho'. Omit to score the chain's default public route.
- `slippage_allowance_bps` (number): Slippage allowance in bps. Default 50.
- `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 reg…

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `chain` (object|null): Resolved chain (chainId, name, supportLevel), or null.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `evidence_bundle_id` (string|null): Id of the evidence bundle; null when not persisted.
- `market_regime` (object): Reference-market open/closed regime evidence (additive).
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `reasons` (array): Stable reason codes; open vocabulary — tolerate unknown codes.
- `record_id` (string|null): Id of the persisted evidence record; null if persistence failed.
- `record_output_hash` (string|null): sha256:<hex> content hash of the record; null if persistence failed.
- `reference_price` (object): Basis-regime gap-state evidence for tokenized assets (additive).
- `route` (object|null): Scored route with modeled grade / quality / leak / slippage fields, or null.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `token_safety` (object): Registry recognition read: recognized vs unverified, with flags and caveats. Recognition only.
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.
- `verdict` (string): Advisory pre-sign verdict.

### `get_preflight_record` (~181 tokens)

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.

Input parameters:

- `record_id` (string, required): The record id returned by check_swap (its record_id field).

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `evidence_bundle` (object|null): The stored evidence bundle, or null when none was captured.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `record` (object): The full routescore.preflight_record.v0 document (schema, record_id, recorded_at, request, actor, policy_ref, response, integrity).
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `record_execution` (~168 tokens)

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.

Input parameters:

- `idempotency_key` (string, required): Stable caller key for this exact records array. Reuse it only for an exact retry.
- `records` (array, required): One to 100 complete routescore.execution_record.v1 documents. The MCP argument envelope is additionally capped at 32 KiB.

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `intake_id` (string)
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `records` (array)
- `rejected` (array)
- `schema` (string)
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `summary` (object)
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `review_execution` (~122 tokens)

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.

Input parameters:

- `record_id` (string, required): UUID of an execution_record.v1 already stored under the configured key’s personal account.

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `review` (object): Deterministic routescore.review_execution.v1 result. It is retrospective decision support, not advice or a best-execution certification.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `review_public_transaction` (~231 tokens)

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.

Input parameters:

- `chain_id` (integer, required): Ethereum mainnet chain id. Public transaction review currently accepts only 1.
- `tx_hash` (string, required): One public Ethereum 32-byte transaction hash.

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `review` (object): Tenant-free deterministic routescore.public_transaction_review.v1 result from normalized public Ethereum evidence.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `whoami` (~30 tokens)

Verify API key & tier

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

Output parameters:

- `authenticated` (boolean): True when the key is valid.
- `caveats` (array): Caveat sentences to relay verbatim.
- `check_swap_enabled` (boolean): Whether the pre-sign check_swap endpoint is available (every tier).
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `email` (string): The owning account email.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `plan_includes_api` (boolean): Back-compat alias for quote_api_enabled.
- `quote_api_enabled` (boolean): Whether the modeled-quote / scenario tools are available (Power only).
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `tier` (string): The owning account tier.
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `get_detector_manifest` (~43 tokens)

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.

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `detector_version_hash` (string): SHA-256 of the detector + pricing source.
- `eligible_universe` (object): The pinned pool / token universe scanned.
- `generated_at` (string): ISO-8601 generation timestamp.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `quote_mev_cover` (~212 tokens)

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.

Input parameters:

- `asset_pair` (string): Asset pair, e.g. 'USDC/ETH'. Default USDC/ETH.
- `chain_id` (integer): Chain ID (1 = Ethereum). Default 1.
- `historical_sandwich_freq` (number): Historical sandwich frequency as a 0–1 fraction. Default 0.012.
- `notional_usd` (number, required): Trade size in USD.
- `refund_threshold_bps` (number): Modeled refund threshold in bps. Default 50.
- `route` (string): Execution route, e.g. 'uniswap-v3'.
- `slippage_allowance_bps` (number): Slippage allowance in bps. Default 50.

Output parameters:

- `allowed` (boolean): Whether the engine produced a modeled quote.
- `bond_id` (string)
- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `conditions` (object): Engine-defined conditions.
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `cvar95_loss_bps` (number): Modeled CVaR-95 loss in bps.
- `expected_loss_bps` (number): Modeled expected loss in bps.
- `expected_outcome` (object): Engine-defined expected-outcome payload.
- `expires_at` (string|null): ISO-8601 expiry timestamp, or null.
- `issued_at` (string): ISO-8601 issue timestamp.
- `margin_bps` (number): Modeled margin component in bps.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `no_quote_reason` (string|null): Reason a modeled quote was withheld, or null.
- `premium_amount_usd` (number): Modeled premium in USD.
- `premium_bps` (number): Modeled premium in bps.
- `product` (string)
- `reason_codes` (array): Stable reason codes.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `quote_bridge_refund` (~153 tokens)

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.

Input parameters:

- `bridge` (string): Bridge name, e.g. 'across'.
- `bridge_risk_score` (number): Bridge risk score 0–1. Default 0.05.
- `dest_chain_id` (integer): Destination chain ID. Default 8453 (Base).
- `notional_usd` (number, required): Amount bridged in USD.
- `sla_seconds` (integer): Expected delivery SLA in seconds. Default 60.
- `source_chain_id` (integer): Source chain ID. Default 1.

Output parameters:

- `allowed` (boolean): Whether the engine produced a modeled quote.
- `bond_id` (string)
- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `conditions` (object): Engine-defined conditions.
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `cvar95_loss_bps` (number): Modeled CVaR-95 loss in bps.
- `expected_loss_bps` (number): Modeled expected loss in bps.
- `expected_outcome` (object): Engine-defined expected-outcome payload.
- `expires_at` (string|null): ISO-8601 expiry timestamp, or null.
- `issued_at` (string): ISO-8601 issue timestamp.
- `margin_bps` (number): Modeled margin component in bps.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `no_quote_reason` (string|null): Reason a modeled quote was withheld, or null.
- `premium_amount_usd` (number): Modeled premium in USD.
- `premium_bps` (number): Modeled premium in bps.
- `product` (string)
- `reason_codes` (array): Stable reason codes.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `quote_lrt_slashing` (~158 tokens)

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.

Input parameters:

- `correlation_max_overlap` (number): Max correlation overlap 0–1. Default 0.5.
- `cover_duration_weeks` (integer): Modeled cover duration in weeks. Default 12.
- `covered_eth_amount` (number, required): ETH amount used as the modeled position size.
- `lrt_token` (string): LRT token, e.g. 'weETH'.
- `underlying_avs_exposure` (object): AVS exposure weights, e.g. { "EigenDA": 1.0 }.

Output parameters:

- `allowed` (boolean): Whether the engine produced a modeled quote.
- `bond_id` (string)
- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `conditions` (object): Engine-defined conditions.
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `cvar95_loss_bps` (number): Modeled CVaR-95 loss in bps.
- `expected_loss_bps` (number): Modeled expected loss in bps.
- `expected_outcome` (object): Engine-defined expected-outcome payload.
- `expires_at` (string|null): ISO-8601 expiry timestamp, or null.
- `issued_at` (string): ISO-8601 issue timestamp.
- `margin_bps` (number): Modeled margin component in bps.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `no_quote_reason` (string|null): Reason a modeled quote was withheld, or null.
- `premium_amount_usd` (number): Modeled premium in USD.
- `premium_bps` (number): Modeled premium in bps.
- `product` (string)
- `reason_codes` (array): Stable reason codes.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

### `simulate_scenario` (~144 tokens)

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.

Input parameters:

- `avg_loss_bps` (number): Average sandwich loss in bps. Default 40.
- `deductible_bps` (number): Deductible in bps. Default 100.
- `horizon_days` (integer): Horizon in days (≈ swaps). Default 30.
- `notional_usd` (number, required): Per-swap notional in USD.
- `sandwich_freq_pct` (number): Sandwich frequency as a percentage 0–100. Default 1.2.

Output parameters:

- `caveats` (array): Caveat sentences to relay verbatim.
- `commercial_disclosure` (object): No-pay-to-rank disclosure (paid_placement, score_influenced_by_partner, message).
- `confidence_band` (object): Confidence band (low, high, unit, label); low/high are null when not calibrated.
- `distribution` (array): Loss-distribution histogram bins for charting.
- `expected_loss_usd` (number): Modeled expected loss in USD over the horizon.
- `expected_premium_usd` (number): Modeled expected premium in USD over the horizon.
- `expected_refund_usd` (number): Modeled expected refund in USD over the horizon.
- `loss_ratio_pct` (number): Modeled loss ratio as a percentage.
- `methodology_version` (string): Methodology-version string, e.g. routescore.public_api.v1.
- `narrative` (string): Plain-language summary of the modeled scenario.
- `score_state` (string): Overall state of the response.
- `source_freshness` (object): Per-source freshness reading (state, checked_at, max_age_seconds, sources[]).
- `trust` (object): The full nested trust envelope; additionally carries generated_at and decision_support_only.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-routescore-mcp/api-mcp#diagnostics

## Score history

- 2026-08-03: 74
- 2026-08-02: 74
- 2026-08-01: 74
- 2026-07-31: 73
- 2026-07-30: 70
- 2026-07-29: 69
- 2026-07-28: 69
- 2026-07-27: 68
- 2026-07-26: 67

## Links

- Remote endpoint: https://www.routescore.io/api/mcp
- Authorisation metadata: https://www.routescore.io/.well-known/oauth-protected-resource/api/mcp
- Repository: https://github.com/routescore/mcp
- Website: https://www.routescore.io/developers
- Changelog RSS feed: https://verifymcp.io/servers/io-routescore-mcp/api-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-routescore-mcp/api-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/io-routescore-mcp/api-mcp
