Skip to main content
Glama
BlockRunAI

BlockRun MCP

Official
by BlockRunAI

blockrun_markets

Read-only

Fetch prediction market and derivatives data across Polymarket, Kalshi, and other venues using unified Predexon endpoints for markets, outcomes, prices, and trades.

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

  • 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 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 ("1440", not "1h"); it is OPTIONAL (the server defaults). Which intervals a market serves varies — 1440 may work where 60 does not. start_time/end_time are Unix seconds.

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

  • Smart-money needs a smart-wallet CRITERION (min_trades, min_volume, min_roi, min_*_pnl, min_win_rate, min_profit_factor). "window" only scopes time and is NOT sufficient on its own. Default: { window: "30d", min_trades: "100" }.

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.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changedv0.45.1
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed1 schema field changedv0.33.0
    • changedInput schema / properties / params / description
      Previous value: -"Query parameters for GET requests (e.g. { limit: '20', active: 'true' })"New value: +"Query parameters for GET requests (e.g. markets/search uses { q: 'Bitcoin', status: 'open', venue: 'polymarket', limit: '20' })"
  3. First observedv0.16.2

TDQS

A4.5/5.0
Behavior5/5

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

Although annotations already declare readOnly/openWorld/non-destructive, the description adds substantial behavioral detail: flat pricing per call, endpoint-specific requirements such as polymarket/orderbooks needing token_id plus Unix-millisecond start/end_time, smart-money needing a criterion beyond 'window', and candlestick interval behavior that varies by market. This far exceeds what the annotations convey.

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 it is well structured with tiered sections, bullet lists, and a dedicated request-contract block, making the content navigable. The opening states the resource and pricing immediately; however, the sheer volume and some redundancy in endpoint listings prevent it from being truly concise.

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?

For a multi-endpoint aggregator with no output schema, the description is unusually complete: it covers endpoint categories, filters, pagination, request sequencing, required params per endpoint, pricing, and POST exceptions. An agent has enough context to select an endpoint and invoke it correctly even without knowing exact response shapes.

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?

The schema already documents all four parameters, but the description meaningfully enriches them with endpoint path examples, a concrete params example, correct filter names ('search' vs 'q'), status conventions, and the GET/POST body contract. This tells an agent exactly how to populate path, params, and body in practice.

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

Purpose4/5

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

The description opens with 'Prediction market + derivatives data via Predexon aggregator' and immediately frames the tool as a 'CANONICAL CROSS-VENUE (Tier 1) — Predexon v2 unified data layer', which clearly identifies what resource the tool operates on. It is much more than a tautology, but it is structured as an endpoint catalog rather than a single verb+resource statement, and it does not explicitly contrast with sibling Polymarket-focused tools.

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

Usage Guidelines4/5

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

The 'REQUEST CONTRACTS' section gives concrete sequencing guidance — use markets/search to discover, then resolve via polymarket/markets/keyset — and explains GET vs POST usage and filter naming quirks across endpoints. This is clear operational context, but there is no explicit guidance on when to use this tool versus blockrun_polymarket or blockrun_polymarket_read, so no exclusions/alternatives are stated.

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

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