Skip to main content
Glama
BlockRunAI

BlockRun MCP

Official
by BlockRunAI

blockrun_markets

Read-only

Retrieve cross-venue prediction market and derivatives data including markets, outcomes, orders, and analytics. Search and filter across Polymarket, Kalshi, and more.

Instructions

Prediction market + derivatives data via Predexon aggregator. Flat $0.0095/call (every endpoint) — $0.0075 base + $0.002 tx fee.

CANONICAL CROSS-VENUE (Tier 1) — Predexon v2 unified data layer:

  • markets — list canonical market/question containers with cross-venue Predexon IDs

  • markets/listings — venue-native executable listings flattened across canonical markets

  • outcomes/:predexon_id — resolve a canonical outcome ID to its market context + venue listings Filter with ?venue=polymarket|kalshi|limitless|opinion|predictfun, ?status=, ?category=, ?league=, ?event_id=, ?pagination_key=

POLYMARKET (Tier 1):

  • polymarket/events, polymarket/markets — list events/markets (filter, sort, paginate)

  • polymarket/markets/keyset, polymarket/events/keyset — same data, cursor-based keyset pagination (use ?pagination_key=)

  • polymarket/crypto-updown — crypto up/down markets

  • polymarket/market-price/:token_id — current/historical price

  • polymarket/candlesticks/:condition_id — OHLCV by market

  • polymarket/candlesticks/token/:token_id — OHLCV by single outcome token

  • polymarket/volume-chart/:condition_id — volume w/ YES/NO split

  • polymarket/orderbooks, polymarket/trades, polymarket/activity

  • polymarket/markets/:token_id/volume, polymarket/markets/:condition_id/open_interest

  • polymarket/positions — user positions

  • polymarket/leaderboard, polymarket/leaderboard/market/:condition_id

  • polymarket/cohorts/stats, polymarket/market/:condition_id/top-holders

  • polymarket/uma/markets, polymarket/uma/market/:condition_id — UMA oracle questions/timeline

POLYMARKET (Tier 2 — wallet/smart-money analytics):

  • polymarket/wallet/:wallet — full smart-wallet profile

  • polymarket/wallet/:wallet/markets, .../similar

  • polymarket/wallet/pnl/:wallet, .../positions/:wallet, .../volume-chart/:wallet

  • polymarket/wallets/profiles, polymarket/wallets/filter — batch + AND/OR filter

  • polymarket/market/:condition_id/smart-money, polymarket/markets/smart-activity

WALLET IDENTITY & CLUSTERING (Tier 2) — cross-context labels + on-chain relationship graph:

  • polymarket/wallet/identity/:wallet — fetch identity + profile metadata for one wallet

  • polymarket/wallet/identities — POST { addresses: [...] } for bulk lookup (up to 200 wallets)

  • polymarket/wallet/:address/cluster — discover wallets connected via on-chain transfers + identity proofs

SPORTS (Tier 1):

  • sports/categories — list available sports categories

  • sports/markets — list sports markets grouped by game (filter ?league=, ?sport_type=, ?status=, ?venue=)

  • sports/markets/:game_id — single sports game with all venue outcomes

  • sports/outcomes/:predexon_id — equivalent sports outcomes across venues for a Predexon ID

KALSHI: kalshi/markets, kalshi/trades, kalshi/orderbooks LIMITLESS / OPINION / PREDICT.FUN: {platform}/markets, {platform}/orderbooks DFLOW: dflow/trades, dflow/wallet/positions/:wallet, dflow/wallet/pnl/:wallet BINANCE FUTURES: binance/candles/:symbol, binance/ticks/:symbol

CROSS-PLATFORM:

  • matching-markets, matching-markets/pairs — equivalent markets across Polymarket+Kalshi

  • markets/search — search across all platforms in one call

REQUEST CONTRACTS:

  • Discover current markets with markets/search (its search term is "q"), then resolve the chosen Polymarket market with polymarket/markets/keyset and condition_id.

  • On polymarket/markets{,/keyset} the free-text filter is "search" (NOT "q"), and status:"open"/"closed" replaces Gamma's active/closed. "sort", "end_after", and "end_before" are supported; "order"/"ascending" are not.

  • Candlesticks interval is integer minutes: 0|1|5|15|60|1440 (use "60", not "1h"); start_time/end_time are Unix seconds.

  • polymarket/orderbooks requires token_id plus start_time/end_time in Unix milliseconds.

  • Smart-money calls need at least one cohort filter (window, min_trades, min_volume, min_roi, min_*_pnl, min_win_rate, min_profit_factor); a good default is { window: "30d", min_trades: "100" }.

  • Issue paid calls sequentially. The MCP also serializes them to protect one wallet from concurrent x402 payment races.

Pass query params via 'params' (GET). Use 'body' only for POST endpoints (e.g. polymarket/wallet/identities).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON body for POST queries (triggers pmQuery — most endpoints are GET)
pathYesEndpoint path, e.g. 'polymarket/events', 'kalshi/markets/KXBTC-25MAR14', 'polymarket/wallet/0xabc...', 'markets/search'
paramsNoQuery parameters for GET requests (e.g. markets/search uses { q: 'Bitcoin', status: 'open', venue: 'polymarket', limit: '20' })
agent_idNoAgent identifier for budget tracking and enforcement.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false. The description adds critical behavioral context: flat pricing model, serialization to prevent concurrent payment races, GET vs POST expectations, and specific parameter formatting (e.g., candlestick interval as integer minutes, Unix timestamps). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with headers, bullet points, and clear sections. It is front-loaded with essential info (pricing, canonical structure). While every sentence earns its place, the length could be slightly reduced without losing value, but the structure compensates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (many endpoints, nested objects, no output schema), the description is remarkably complete. It covers filtering, pagination, formatting requirements, POST vs GET, and precautions. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all four parameters documented. The description significantly adds meaning by explaining path format, query parameter structure, when to use body vs. params, and the purpose of agent_id for budget tracking. For example, it specifies that polymarket/markets uses 'search' (not 'q') for free-text filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'Prediction market + derivatives data via Predexon aggregator' and lists specific endpoints across multiple venues. It distinguishes itself from sibling tools like blockrun_polymarket by being a cross-venue aggregator.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Extensive usage guidance is provided, including when to use each endpoint, how to filter (e.g., '?venue=polymarket|kalshi'), pagination methods, and explicit warnings about sequential calls to avoid race conditions. Alternatives like 'markets/search' vs. direct list calls are clearly explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BlockRunAI/blockrun-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server