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_idmarket_name_institution_descriptionwebsite
Use when
- You need to discover supported venues before making market-level requests.
- You want the canonical
exchange_idvalues exposed by the MCP server.
exchanges_get
Returns metadata for one exchange.
Required arguments
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET or KALSHI. |
Use when
- You already know the venue and want its display metadata.
- You want to validate one
exchange_idbefore issuing market requests.
markets_get_active
Returns active market IDs for one exchange.
Required arguments
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET or KALSHI. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
limit | integer | Maximum number of market IDs to return. Default: 100. |
page | integer | 1-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_idvalues but not the full market metadata yet.
markets_get_history
Returns market objects for one exchange, including descriptive and pricing fields.
Required arguments
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET or KALSHI. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
limit | integer | Maximum number of markets to return. Default: 100. |
page | integer | 1-based page number. Default: 1. |
Returns
Each market object can include fields such as:
market_idtitledescriptionoutcome_namepricestatusexchange_idoutcome_typesource_specific_data
Use when
- You need titles, descriptions, status, or last-known pricing.
- You want richer context than
markets_get_activeprovides.
Market activity tools
activity_get_current
Returns the latest trade and latest quote for one market.
Required arguments
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome, for example will-it-rain-tomorrow_yes. |
Notes
- The tool description indicates either side of the payload may be
nullwhen 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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market 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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
date | string | Full-day query in ISO 8601 date format such as 2024-01-15. Mutually exclusive with time_start. |
time_start | string | Lower time bound in ISO 8601 format. Required if date is not provided. |
time_end | string | Optional upper time bound in ISO 8601 format. |
limit | integer | Maximum 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_timerecv_timeaskbidask_volumebid_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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
date | string | Full-day query in ISO 8601 date format such as 2024-01-15. Mutually exclusive with time_start. |
time_start | string | Lower time bound in ISO 8601 format. Required if date is not provided. |
time_end | string | Optional upper time bound in ISO 8601 format. |
limit | integer | Maximum number of trade rows to return. Default: 100. |
Important
- Results are filtered by data processing time,
time_coinapi. - Prefer a small
limitor 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
1SEC1MIN1HRS1DAY1MTH
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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome. |
period_id | string | Candle period such as 1MIN or 1DAY. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
limit | integer | Maximum number of rows to return. Default: 100. |
Returns
Rows can include fields such as:
time_period_starttime_period_endtime_opentime_closeprice_openprice_highprice_lowprice_closevolume_tradedtrades_count
ohlcv_get_history_market
Returns historical OHLCV candles for one market in ascending time order.
Required arguments
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome. |
period_id | string | Candle period such as 1MIN or 1DAY. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
time_start | string | ISO 8601 lower bound. |
time_end | string | ISO 8601 upper bound. |
limit | integer | Maximum 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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
period_id | string | Candle period such as 1MIN or 1DAY. |
time_start | string | ISO 8601 start of the requested window. |
time_end | string | ISO 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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome. |
Returns
The response can include:
exchange_idmarket_idtime_exchangetime_coinapiasksbids
Each asks or bids row includes:
pricesize
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
| Argument | Type | Description |
|---|---|---|
exchange_id | string | Exchange identifier such as POLYMARKET. |
market_id | string | Market identifier including outcome. |
Optional arguments
| Argument | Type | Description |
|---|---|---|
date | string | Full-day query in ISO 8601 date format such as 2024-01-15. Mutually exclusive with time_start. |
time_start | string | Lower time bound in ISO 8601 format. Required if date is not provided. |
time_end | string | Optional upper time bound in ISO 8601 format. |
limit | integer | Maximum 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_listandmarkets_get_activewhen you need quick discovery with small payloads. - Use
markets_get_historywhen you need human-readable titles, descriptions, and price context. - Call
ohlcv_list_periodsbefore issuing candle requests from a new client or workflow. - Use
activity_get_currentandorderbook_get_currentfor low-latency monitoring. - Prefer bounded
time_start/time_endwindows over full-day historical pulls when exploring flat-file tools. - Remember that
orderbook_get_historyreturns raw updates, so consumers usually need their own reconstruction logic.
Getting Started
Connect your MCP client to the FinFeedAPI Prediction Markets MCP server and start querying exchanges, markets, activity, order books, and OHLCV data.
Use Cases
Practical Prediction Markets MCP workflows for market discovery, liquidity monitoring, historical backfills, and exchange-level analytics.
