{"name":"io.github.Flotapponnier/openchainbench","slug":"flotapponnier-openchainbench","title":"OpenChainBench","description":"Live, neutral benchmarks for public RPC latency, oracles, bridges, perp DEX, and prediction markets.","url":"https://mcp.market/server/flotapponnier-openchainbench","rating":null,"grade":"B","score":81,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":32,"stars":7,"forks":2,"downloads_week":null,"last_push_at":"2026-09-25T21:30:10.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:25:24.072Z","last_ok_at":"2026-11-04T05:25:24.072Z","latency_ms":244},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/ChainBench/OpenChainBench","website":"https://openchainbench.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://openchainbench.com/api/mcp/mcp"}],"packages":[],"tools":[{"name":"get_benchmark","description":"Returns full detail for one benchmark, ready to cite verbatim:\n  • rankings (every provider sorted by p50)\n  • sparkline (24h trend, 72 points)\n  • headline sentence + paste-ready citation quote\n  • methodology bullets + source-code URL + canonical pageUrl + OG image URL\n\nPass `chain` and/or `region` to scope the result to a sub-slice when\nthe benchmark declares those dimensions (e.g. aggregator-head-lag\nexposes chain=base|bnb|solana, region=us-east|eu-west|ap-southeast).\nBoth args are optional; omit them for the global aggregate.\n\nChain RPC benchmarks (<chain>-rpc) rank two access cohorts apart:\nthe free public endpoints (default) and the private, API-key\nproviders (Alchemy, Chainstack, QuickNode). The default response\ncarries both under `cohorts`; pass tier=\"keyed\" to get the private\ncohort as the main record (rankings, quote, pageUrl). Never compare a\npublic row with a private row: they are measured on different\nendpoints and cadences.\n\nExample usage:\n  • User: \"who's the fastest crypto data aggregator on Base?\"\n    → get_benchmark({ slug: \"aggregator-head-lag\", chain: \"base\" })\n  • User: \"how much does it cost to bridge $300 cross-chain?\"\n    → get_benchmark({ slug: \"bridge-fee\" })\n  • User: \"fastest Base RPC with an API key, Alchemy or QuickNode?\"\n    → get_benchmark({ slug: \"base-rpc\", tier: \"keyed\" })\n\nDrafts return { error: \"unknown_slug\" }. Cite the returned `pageUrl`\nand use `quote` as the attribution line in your answer.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,79}$","description":"Benchmark slug from list_benchmarks. e.g. 'aggregator-head-lag', 'bridge-quote-latency', 'l1-finality'."},"chain":{"description":"Optional chain filter, e.g. 'base', 'solana', 'bnb'. Only honored when the bench declares chain dimensions.","type":"string","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$"},"region":{"description":"Optional region filter, e.g. 'us-east', 'eu-west', 'ap-southeast'. Only honored when the bench declares region dimensions.","type":"string","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$"},"tier":{"description":"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.","type":"string","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$"}},"required":["slug"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_benchmarks","description":"Returns a flat index of every published OpenChainBench benchmark with its\ncurrent headline value, leader, category, units, and citation URL.\n\nCall this first when the user asks a discovery question like\n\"what benchmarks does OpenChainBench have?\" or \"compare crypto aggregators\".\nThen use `get_benchmark` for the specific slug(s) the answer needs.\n\nReturns one line per bench:\n  { slug, title, category, metric, unit, value, leader, headline, url, asOf }\n\nDrafts are filtered out: only live benchmarks appear.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"query_prom","description":"Direct PromQL passthrough for advanced questions that don't map cleanly\nto `list_benchmarks` / `get_benchmark`, e.g. \"what was Mobula's p50\nhead-lag yesterday at 14:00 UTC\" or \"plot bridge fees over the last hour\".\n\nPrefer the higher-level tools first; reach for this when you need:\n  • a custom time window (instant query at a specific point, or range)\n  • a derived metric (rates, ratios, deltas)\n  • a histogram bucket aggregation across chains/regions\n\nAllowed metric namespaces (one prefix per OCB bench family):\n  head_lag_seconds (aggregator latency)\n  bridge_quote_latency_ms*, bridge_cost*, bridge_fees*, bridge_fix_fee*,\n  bridge_execution_latency_ms*, bridge_e2e_latency_ms*, bridge_success_total,\n    bridge_reverts_total, bridge_refunds_total, bridge_stuck_total,\n    bridge_refund_latency_ms*, bridge_realized_output_usd, bridge_quote_slippage_usd, bridge_exec_gas_usd,\n    bridge_gas*, bridge_output*, bridge_estimated_time*, bridge_quote_success\n  l1_finality_*, l2_block_time_*\n  metadata_coverage_*, metadata_api_latency_*, network_coverage_*,\n    networks_supported, wallet_labels_*\n  perp_fees_*, perp_funding_*, perp_venue_*, perp_execution_*,\n  perp_liq_*, perp_realized_vol_*,\n  ocb_buyback_*, ocb_oracle_*, ocb_validator_*, ocb_chain_*\n  gas_error_*, gas_predicted_*, gas_realized_*, gas_oracle_*\n  peg_* (stablecoin peg, both variants)\n  solana_landing_* (TX landing observational + active)\n  rpc_latency_*, rpc_call_total, rpc_health, rpc_archive_depth_supported\n  relay_*, per_swap_margin_usd (bridge revenue)\nQueries referencing other metrics (operational/internal ones like `up`,\n`scrape_*`, `process_*`, `go_*`, `wallet_balance_*` or any label-\nenumeration shape) are refused with `{error, reason}`.\n\nExample: instant p50 over 1h for Mobula head-lag on Base:\n  query_prom({\n    query: \"quantile_over_time(0.5, head_lag_seconds{aggregator=\\\"mobula\\\",chain=\\\"base\\\"}[1h]) * 1000\"\n  })\n\nExample: 7-day sparkline of average bridge fees:\n  query_prom({\n    query: \"avg_over_time(bridge_fees_percent[1d])\",\n    windowSec: 604800,\n    steps: 168\n  })\n\nReturns: `{ query, value }` for instant queries, `{ query, windowSec, series }` for range.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":2000,"description":"PromQL expression referencing published benchmark metric prefixes only. Function names, label keys, and quoted label values are fine; bare metric names must be allowlisted."},"windowSec":{"description":"If set, run a range query over the last N seconds (max 7 days = 604800). Omit for an instant query.","type":"integer","exclusiveMinimum":0,"maximum":604800},"steps":{"description":"Number of samples for a range query (2 to 360). Default 60. Step duration = windowSec / steps.","type":"integer","minimum":2,"maximum":360}},"required":["query"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":81,"grade":"B","scanned_at":"2026-09-25T21:46:23.146Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:46:23.117Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 572ms"]},"poisoning":{"score":13,"max":15,"notes":["3 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":3,"max":10,"notes":["namespace and repository owner differ"]}},"findings":[{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool query_prom: …Direct PromQL passthrough for advanced questions that don't map cleanly to `list_benchmarks` / `get_benchmark`, e.g. \"what was Mobula's p50 head-lag yesterday at 14:00 UTC\" or \"plot bridge fees over the last hour\". Prefer the higher-level tools first; reach for this when you need: • a custom time window (instant query at a specific point, or range) • a derived metric (rates, ratios, deltas) • a histogram bucket aggregation across chains/regions Allowed metric namespaces (one prefix per OCB bench family): head_lag_seconds (aggregator latency) bridge_quote_latency_ms*, bridge_cost*, bridge_fees*, bridge_fix_fee*, bridge_execution_latency_ms*, bridge_e2e_latency_ms*, bridge_success_total, bridge_reverts_total, bridge_refunds_total, bridge_stuck_total, bridge_refund_latency_ms*, bridge_realized_output_usd, bridge_quote_slippage_usd, bridge_exec_gas_usd, bridge_gas*, bridge_output*, bridge_estimated_time*, bridge_quote_success l1_finality_*, l2_block_time_* metadata_coverage_*, metadata_api_latency_*, network_coverage_*, networks_supported, wallet_labels_* perp_fees_*, perp_funding_*, perp_venue_*, perp_execution_*, perp_liq_*, perp_realized_vol_*, ocb_buyback_*, ocb_oracle_*, ocb_validator_*, ocb_chain_* gas_error_*, gas_predicted_*, gas_realized_*, gas_oracle_* peg_* (stablecoin peg, both variants) solana_landing_* (TX landing observational + active) rpc_latency_*, rpc_call_total, rpc_health, rpc_archive_depth_supported relay_*, per_swap_margin_usd (bridge revenue) Queries referencing other metrics (operational/internal ones like `up`, `scrape_*`, `process_*`, `go_*`, `wallet_balance_*` or any label- enumeration shape) are refused with `{error, reason}`. Example: instant p50 over 1h for Mobula head-lag on Base: query_prom({ query: \"quantile_over_time(0.5, head_lag_seconds{aggregator=\\\"mobula\\\",chain=\\\"base\\\"}[1h]) * 1000\" }) Example: 7-day sparkline of average bridge fees: query_prom({ query: \"avg_over_time(bridge_fees_percent[1d])\", windowSec: 604800, steps: 168 }) Returns: `{ query, value }` for instant queries, `{ query, windowSec, series }` for range.…"}],"inputs":{"probes":[{"url":"https://openchainbench.com/api/mcp/mcp","reachable":true,"authRequired":false,"latencyMs":572,"serverInfo":{"name":"mcp-typescript server on vercel","version":"0.1.0"}}],"packages":[],"repo":{"found":true,"owner":"ChainBench","repo":"OpenChainBench","archived":false,"pushedAt":"2026-09-25T21:30:10Z","stars":7,"forks":2,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/288104728?v=4","ownerCreatedAt":"2026-05-26T18:20:07Z","license":"MIT"},"icon":{"url":"https://openchainbench.com/apple-icon?668a693fe3761e89","source":"site","width":180,"height":180},"presence":{"stars":7,"forks":2,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-25T21:30:10.000Z","score":32}}}},"grade_history":[],"reviews":[]}