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

OpenChainBench

REMOTE · OPENCHAINBENCH.COM

Live, neutral benchmarks for public RPC latency, oracles, bridges, perp DEX, and prediction markets.

+6 this week 90 Trust /100

Last scanned (4 hours ago)

Scores higher than 98% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Crypto and Web3

Trust breakdown (7 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 → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 14279 tokens (~56/item across 253 items; 6 tools + 247 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
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
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.

  • 5 Nov 26 0
    • Tool “compare_providers” rewrote its description, which is the text the model reads security
    • Tool “get_benchmark” rewrote its description, which is the text the model reads security
    • Tool “search_benchmarks” rewrote its description, which is the text the model reads security
    • “compare_providers” reworded the description of “providers” cosmetic
    • “compare_providers” reworded the description of “tier” cosmetic
  • 4 Nov 26 0
    • Resource “Cheapest blockchain to deploy a token, live USD cost across 7 non-EVM L1 chains · Blockchains” was removed ▼ functional
    • Resource “Highest staking yield, live validator net APR across 7 PoS chains · Blockchains” was removed ▼ functional
    • New resource “Cheapest blockchain to deploy a token, live USD cost per L1 chain · Blockchains” functional
    • New resource “Highest staking yield, live net APR by proof-of-stake chain · Blockchains” functional
  • 1 Nov 26 +4
    • Stability: fail → pass ▲ security
  • 31 Oct 26 +2

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 72.

  • 30 Oct 26 0
    • New resource “Cheapest embedded wallet provider for each app size, from published prices · Wallets” functional
  • 25 Oct 26 0
    • Resource “Cheapest RPC provider, priced per workload across 18 ranked providers · RPCs” was removed ▼ functional
    • Resource “Most requests a free RPC plan buys, across 12 providers · RPCs” was removed ▼ functional
    • New resource “Cheapest RPC provider, priced per workload across 19 providers · RPCs” functional
    • New resource “Most requests a free RPC plan buys, across 13 providers · RPCs” functional
  • 22 Oct 26 0
    • New resource “Best DEX aggregator by quote output: who actually gives you more · Aggregators” functional
  • 21 Oct 26 0
    • New resource “Crypto price API accuracy: how far each feed sits from the exchange price · Aggregators” functional
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 5 Nov 2026 · Probed https://openchainbench.com/api/mcp/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=openchainbench.com CN=YR2,O=Let's Encrypt,C=US 6 Sept 2026 5 Dec 2026 RSA 2048 SHA256-RSA 50f0325af7bbba4f2780381ad9e4b91c6e2
SANs: openchainbench.com
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of openchainbench.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
openchainbench.com. 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
content-security-policy default-src 'self'; script-src 'self' 'unsafe-inline' https://analytics.ahrefs.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self' data:; connect-src 'self' wss://stream.openchainbench.com https://video.openchainbench.com https://analytics.ahrefs.com; media-src 'self' https://video.openchainbench.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'; upgrade-insecure-requests
x-content-type-options nosniff
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=(), microphone=(), geolocation=(), interest-cohort=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://openchainbench.com/api/mcp/mcp Verified 200
http (plaintext) http://openchainbench.com/api/mcp/mcp HTTPS enforced 308 https://openchainbench.com/api/mcp/mcp
MCP tools · 6 exposed · ~1,787 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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
compare_providers ~310

Puts two or more named providers side by side on one benchmark, with each one's rank, measured value and success rate. Use when the user names the candidates themselves: "Alchemy or Quicknode?", "is Helius faster than Triton for Solana?", "compare Across and Stargate on fees". Find the benchmark slug with `search_benchmarks` first if you do not already have it. Providers the benchmark does not measure come back in `missing`: say they are not measured rather than implying they ranked badly. A provider measured but below the ranking floor comes back with rank null, which is also not a loss.

NameTypeReqDescription
benchmarkstringyesBenchmark slug, e.g. 'solana-rpc' or 'bridge-fee'. Get it from search_benchmarks.
chainstring–Optional chain slice when the bench declares chains. Ignored on a bench that is already one chain, like solana-rpc.
providersarrayyesTwo to ten provider names or slugs, as the user said them, e.g. ['Alchemy', 'Quicknode'].
regionstring–Optional region slice when the bench declares regions.
tierstring–Access cohort on chain RPC benchmarks: 'public' (default, free no-key endpoints) or 'keyed' (API-key providers such as Alchemy, Quicknode, Chainstack, GetBlock). Named providers usually live on the k…

No output schema declared.

No examples provided.

get_benchmark ~539

Returns full detail for one benchmark, ready to cite verbatim: • rankings (every provider sorted by p50) • sparkline (24h trend, 72 points) • headline sentence + paste-ready citation quote • methodology bullets + source-code URL + canonical pageUrl + OG image URL Pass `chain` and/or `region` to scope the result to a sub-slice when the benchmark declares those dimensions (e.g. aggregator-head-lag exposes chain=base|bnb|solana, region=us-east|eu-west|ap-southeast). Both args are optional; omit them for the global aggregate. Chain RPC benchmarks (<chain>-rpc) rank two access cohorts apart: the free public endpoints (default) and the private, API-key providers (Alchemy, Chainstack, GetBlock, Quicknode). The default response carries both under `cohorts`; pass tier="keyed" to get the private cohort as the main record (rankings, quote, pageUrl). Never compare a public row with a private row: they are measured on different endpoints and cadences. Example usage: • User: "who's the fastest crypto data aggregator on Base?" → get_benchmark({ slug: "aggregator-head-lag", chain: "base" }) • User: "how much does it cost to bridge $300 cross-chain?" → get_benchmark({ slug: "bridge-fee" }) • User: "fastest Base RPC with an API key, Alchemy or Quicknode?" → get_benchmark({ slug: "base-rpc", tier: "keyed" }) Drafts return { error: "unknown_slug" }. Cite the returned `pageUrl` and use `quote` as the attribution line in your answer.

NameTypeReqDescription
chainstring–Optional chain filter, e.g. 'base', 'solana', 'bnb'. Only honored when the bench declares chain dimensions.
regionstring–Optional region filter, e.g. 'us-east', 'eu-west', 'ap-southeast'. Only honored when the bench declares region dimensions.
slugstringyesBenchmark slug from list_benchmarks. e.g. 'aggregator-head-lag', 'bridge-quote-latency', 'l1-finality'.
tierstring–Optional access cohort on chain RPC benchmarks: 'public' (default, free no-key endpoints) or 'keyed' (private, API-key providers). Only honored when the bench declares tier dimensions.

No output schema declared.

No examples provided.

list_answers ~194

Returns every published answer page: one plain question, the sentence that answers it from live data, and the benchmark the number comes from. Call this when the user asks a question in words rather than by benchmark name ("which bridge is cheapest for $300?", "which Solana RPC lands transactions fastest?"). Match the question, then call `get_benchmark` with the returned `benchmark` slug for the full ranking behind it. Returns one row per answer: { slug, question, answer, benchmark, chain?, url, benchmarkUrl } Cite `url` when the question itself is the claim, `benchmarkUrl` when the measurement is. Drafts are filtered out, and an answer whose benchmark has no defensible leader yet says so in `answer` rather than naming a winner.

NameTypeReqDescription
benchmarkstring–Optional benchmark slug filter: return only the answers built on that bench.

No output schema declared.

No examples provided.

list_benchmarks ~217

A compact index of what OpenChainBench measures. One short row per benchmark: slug, title, category, the metric, the current value and who leads it. Use when the user asks what is measured at all ("what does OpenChainBench cover?", "do you track bridges?"). When they ask a question about a provider or a chain, use `search_benchmarks` instead: it ranks the catalogue against their words and costs far less to read. The catalogue holds over 200 benchmarks, so this is capped and filterable rather than exhaustive. Narrow with `category`, then open the one you need with `get_benchmark`. Categories: RPCs, Trading, Bridges, Blockchains, Aggregators, RWA, NFT APIs.

NameTypeReqDescription
categorystring–Only this category: RPCs, Trading, Bridges, Blockchains, Aggregators, RWA or NFT APIs.
limitinteger–How many rows to return, 1 to 50. Default 25.

No output schema declared.

No examples provided.

recommend_provider ~262

Answers "which should I use for X" by picking the benchmarks that measure X and reporting who currently leads them. Pass the user's goal in their own words: "a Solana trading bot", "an indexer backfilling Base", "a wallet that needs price data", "bridging to Arbitrum". This returns measurements and the caveat that goes with them, not an endorsement. A leader on one benchmark is the leader of that one measurement over its stated window. Where the use case has a known caveat (a bot should read p99 rather than p50, an indexer is bound by archive depth) it comes back in `guidance`; pass it on, it is usually more useful than the ranking itself.

NameTypeReqDescription
chainstring–Chain they are building on, e.g. 'solana', 'base', 'arbitrum'. Narrows the benchmarks considerably.
regionstring–Optional region, e.g. 'eu-west', when latency from a location matters.
use_casestringyesWhat the user is building or doing, in their words. e.g. 'solana trading bot', 'indexer', 'price feed for a wallet'.

No output schema declared.

No examples provided.

search_benchmarks ~265

Ranks the benchmark catalogue against a question in the user's own words and returns the best few matches. Use this when somebody asks which provider, chain or service is fastest, cheapest, most reliable or best for something. Pass their phrasing through: provider names, chain names and goals all match. • "which Solana RPC is fastest" -> search_benchmarks({ query: "solana rpc" }) • "Alchemy or Quicknode on Base?" -> search_benchmarks({ query: "alchemy quicknode base" }) • "cheapest way to bridge to Arbitrum" -> search_benchmarks({ query: "bridge arbitrum" }) Returns compact rows. Open the one you want with `get_benchmark` for the full ranking and a citation line. An empty result means nothing is measured for that question; say so rather than guessing.

NameTypeReqDescription
categorystring–Optional category filter: RPCs, Trading, Bridges, Blockchains, Aggregators, RWA, NFT APIs.
limitinteger–How many matches, 1 to 25. Default 8.
querystringyesThe user's question or keywords, verbatim. Provider and chain names work well.

No output schema declared.

No examples provided.

Install

How do I install the OpenChainBench MCP server?

OpenChainBench is a hosted endpoint at https://openchainbench.com/api/mcp/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · openchainbench.com

# add to Claude Code
claude mcp add --transport http flotapponnier-openchainbench 'https://openchainbench.com/api/mcp/mcp'
Common questions

What is the OpenChainBench MCP server?

OpenChainBench is an MCP server listed in the public MCP registry as io.github.Flotapponnier/openchainbench. Live, neutral benchmarks for public RPC latency, oracles, bridges, perp DEX, and prediction markets. This page covers its hosted endpoint (https://openchainbench.com/api/mcp/mcp).

Is the OpenChainBench MCP server safe to use?

OpenChainBench scores 90 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the OpenChainBench MCP server expose?

OpenChainBench exposes 6 tools: list_benchmarks, search_benchmarks, get_benchmark, compare_providers, recommend_provider, list_answers. Their descriptions and schemas cost roughly 1,787 tokens of context every time the server is loaded.

Does the OpenChainBench MCP server require authentication?

No. We connected to OpenChainBench without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the OpenChainBench MCP server still maintained?

OpenChainBench is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.