🔗 MCP API

Tool Reference

Complete reference for the tools exposed by the FinFeedAPI Prediction Markets MCP server.

Prediction Markets MCP Tool Reference

The Prediction Markets MCP server currently exposes 14 tools.

Exchange and market discovery tools

exchanges_list

Returns all supported prediction market exchanges.

Arguments

This tool does not require any arguments.

Returns

Each item can include fields such as:

  • exchange_id
  • market_name_institution_description
  • website

Use when

  • You need to discover supported venues before making market-level requests.
  • You want the canonical exchange_id values exposed by the MCP server.

exchanges_get

Returns metadata for one exchange.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET or KALSHI.

Use when

  • You already know the venue and want its display metadata.
  • You want to validate one exchange_id before issuing market requests.

markets_get_active

Returns active market IDs for one exchange.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET or KALSHI.

Optional arguments

ArgumentTypeDescription
limitintegerMaximum number of market IDs to return. Default: 100.
pageinteger1-based page number. Default: 1.

Important

This tool returns only market IDs, not full market objects.

Use when

  • You want a compact discovery step before querying current state.
  • You need valid market_id values but not the full market metadata yet.

markets_get_history

Returns market objects for one exchange, including descriptive and pricing fields.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET or KALSHI.

Optional arguments

ArgumentTypeDescription
limitintegerMaximum number of markets to return. Default: 100.
pageinteger1-based page number. Default: 1.

Returns

Each market object can include fields such as:

  • market_id
  • title
  • description
  • outcome_name
  • price
  • status
  • exchange_id
  • outcome_type
  • source_specific_data

Use when

  • You need titles, descriptions, status, or last-known pricing.
  • You want richer context than markets_get_active provides.

Market activity tools

activity_get_current

Returns the latest trade and latest quote for one market.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome, for example will-it-rain-tomorrow_yes.

Notes

  • The tool description indicates either side of the payload may be null when data is unavailable.
  • In practice, sparse markets may also return an explicit no-activity error.

Use when

  • You need the freshest market activity signal.
  • You are building quote cards, status monitors, or lightweight polling loops.

activity_get_latest

Returns a recent batch of trades and quotes for one market.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome, for example will-it-rain-tomorrow_yes.

Use when

  • You want more than just the single latest trade and quote.
  • You are inspecting recent activity without going to flat-file history.

activity_get_quotes_history

Returns historical quote updates from flat files for one market.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome.

Optional arguments

ArgumentTypeDescription
datestringFull-day query in ISO 8601 date format such as 2024-01-15. Mutually exclusive with time_start.
time_startstringLower time bound in ISO 8601 format. Required if date is not provided.
time_endstringOptional upper time bound in ISO 8601 format.
limitintegerMaximum number of quote rows to return. Default: 100.

Important

  • Results are filtered by data processing time, time_coinapi.
  • Swagger describes the response as being in ascending time order.
  • Use narrow windows for active markets to avoid large payloads.

Returns

Each row follows the quote tick schema and can include:

  • entry_time
  • recv_time
  • ask
  • bid
  • ask_volume
  • bid_volume

Use when

  • You need historical bid/ask evolution rather than current state.
  • You are replaying quote history for analytics or monitoring.

activity_get_trades_history

Returns historical trades from flat files for one market.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome.

Optional arguments

ArgumentTypeDescription
datestringFull-day query in ISO 8601 date format such as 2024-01-15. Mutually exclusive with time_start.
time_startstringLower time bound in ISO 8601 format. Required if date is not provided.
time_endstringOptional upper time bound in ISO 8601 format.
limitintegerMaximum number of trade rows to return. Default: 100.

Important

  • Results are filtered by data processing time, time_coinapi.
  • Prefer a small limit or a bounded time window when exploring.

Use when

  • You need trade-level history rather than summary candles.
  • You want to study execution flow or build time-and-sales style views.

OHLCV tools

ohlcv_list_periods

Returns the list of supported candle granularities.

Arguments

This tool does not require any arguments.

Typical periods

  • 1SEC
  • 1MIN
  • 1HRS
  • 1DAY
  • 1MTH

Each row also includes metadata such as length_seconds, length_months, unit_count, unit_name, and display_name.

ohlcv_get_latest_market

Returns the latest OHLCV candles for one market in descending time order.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome.
period_idstringCandle period such as 1MIN or 1DAY.

Optional arguments

ArgumentTypeDescription
limitintegerMaximum number of rows to return. Default: 100.

Returns

Rows can include fields such as:

  • time_period_start
  • time_period_end
  • time_open
  • time_close
  • price_open
  • price_high
  • price_low
  • price_close
  • volume_traded
  • trades_count

ohlcv_get_history_market

Returns historical OHLCV candles for one market in ascending time order.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome.
period_idstringCandle period such as 1MIN or 1DAY.

Optional arguments

ArgumentTypeDescription
time_startstringISO 8601 lower bound.
time_endstringISO 8601 upper bound.
limitintegerMaximum number of rows to return. Default: 100.

Use when

  • You need a bounded historical window for one market.
  • You want deterministic ascending output for backfills or batch processing.

ohlcv_get_history_exchange

Returns historical OHLCV data for all markets on one exchange within a bounded time range.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
period_idstringCandle period such as 1MIN or 1DAY.
time_startstringISO 8601 start of the requested window.
time_endstringISO 8601 end of the requested window.

Important

The time span between time_start and time_end cannot be more than 24 hours.

Use when

  • You need venue-wide candles instead of a single market.
  • You are building cross-sectional or exchange-level analytics for a short window.

Order book tools

orderbook_get_current

Returns the current order book snapshot for one market outcome.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome.

Returns

The response can include:

  • exchange_id
  • market_id
  • time_exchange
  • time_coinapi
  • asks
  • bids

Each asks or bids row includes:

  • price
  • size

Use when

  • You need the current liquidity ladder for one market outcome.
  • You are computing spread, depth, or order book imbalance.

orderbook_get_history

Returns historical limit order updates from flat files for one market.

Required arguments

ArgumentTypeDescription
exchange_idstringExchange identifier such as POLYMARKET.
market_idstringMarket identifier including outcome.

Optional arguments

ArgumentTypeDescription
datestringFull-day query in ISO 8601 date format such as 2024-01-15. Mutually exclusive with time_start.
time_startstringLower time bound in ISO 8601 format. Required if date is not provided.
time_endstringOptional upper time bound in ISO 8601 format.
limitintegerMaximum number of limit order rows to return. Default: 100.

Important

  • This tool returns raw order updates, not reconstructed snapshots.
  • Use small windows and explicit limits for active markets.

Use when

  • You need order add, update, or delete events for replay.
  • You are reconstructing book state in your own downstream system.

Practical examples

Example: list supported exchanges

{
  "tool": "exchanges_list",
  "arguments": {}
}

Example: active market IDs on Polymarket

{
  "tool": "markets_get_active",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "limit": 100,
    "page": 1
  }
}

Example: rich market objects for one venue

{
  "tool": "markets_get_history",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "limit": 25,
    "page": 1
  }
}

Example: latest daily candles for one market

{
  "tool": "ohlcv_get_latest_market",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "market_id": "1-MEGATON-METEOR-STRIKE-IN-2026_NO",
    "period_id": "1DAY",
    "limit": 2
  }
}

Example: historical market candles for a fixed window

{
  "tool": "ohlcv_get_history_market",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "market_id": "1-MEGATON-METEOR-STRIKE-IN-2026_NO",
    "period_id": "1DAY",
    "time_start": "2026-04-01T00:00:00Z",
    "time_end": "2026-04-07T00:00:00Z",
    "limit": 100
  }
}

Example: current order book snapshot

{
  "tool": "orderbook_get_current",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "market_id": "1-MEGATON-METEOR-STRIKE-IN-2026_NO"
  }
}

Example: bounded trades history

{
  "tool": "activity_get_trades_history",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "market_id": "1-MEGATON-METEOR-STRIKE-IN-2026_NO",
    "time_start": "2026-04-07T12:00:00Z",
    "time_end": "2026-04-07T13:00:00Z",
    "limit": 100
  }
}

Example: bounded quotes history

{
  "tool": "activity_get_quotes_history",
  "arguments": {
    "exchange_id": "POLYMARKET",
    "market_id": "1-MEGATON-METEOR-STRIKE-IN-2026_NO",
    "time_start": "2026-04-07T13:35:00Z",
    "time_end": "2026-04-07T13:40:00Z",
    "limit": 5
  }
}

Example response shape:

[
  {
    "entry_time": "2026-04-07T13:35:12.0000000Z",
    "recv_time": "2026-04-07T13:35:12.1230000Z",
    "ask": 0.949,
    "bid": 0.928,
    "ask_volume": 112.39,
    "bid_volume": 81.55
  }
]

Usage guidance

  • Start with exchanges_list and markets_get_active when you need quick discovery with small payloads.
  • Use markets_get_history when you need human-readable titles, descriptions, and price context.
  • Call ohlcv_list_periods before issuing candle requests from a new client or workflow.
  • Use activity_get_current and orderbook_get_current for low-latency monitoring.
  • Prefer bounded time_start / time_end windows over full-day historical pulls when exploring flat-file tools.
  • Remember that orderbook_get_history returns raw updates, so consumers usually need their own reconstruction logic.
Service StatusGitHub SDK