Skip to main content
Glama
jiroamato

Polymarket MCP Server

by jiroamato

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_marketsA

Search events and markets by free-text keyword.

Use this as the primary discovery tool when the user names a topic but not an event/market ID. Matches against event titles, market questions, and descriptions.

  • query: Free-text query. Short topical terms work best ("bitcoin", "ukraine", "nba mvp"). Not fuzzy — overly-specific queries may return nothing.

  • limit: Max results per result type (default 10, typical useful 5-20).

Returns a list of event dicts with nested markets. Key fields:

  • id: event ID for get_event.

  • markets[].id: market ID for get_market.

  • markets[].outcome_prices: JSON-encoded probability list (see server instructions); can be null for untraded markets.

Does NOT include best_bid / best_ask / last_trade_price / volume_24hr / spread. Call get_event or get_market on a result id for order-book data.

get_active_marketsA

Browse active (open, unresolved) events sorted by a field.

Use this for discovery when the user asks "what's hot / most liquid / expiring soon" without naming a topic. For keyword search, use search_markets.

  • limit: Events to return (default 10, max ~100).

  • offset: Pagination offset (default 0). Page by incrementing offset by limit.

  • order: Sort field. Supported values:

    • "volume" — cumulative USD traded (default; "biggest overall")

    • "liquidity" — USD in the order book now ("where you can trade")

    • "end_date" — resolution deadline ("expiring soonest")

    • "start_date" — listing date

    • "competitive" — closest to 50/50 ("most contested"; best-effort semantics)

  • ascending: False (default) returns largest/latest first.

  • tag_slug: Category filter. Known slugs include "politics", "crypto", "sports", "elections", "geopolitics". Omit for all categories.

  • volume_min: Minimum cumulative USD volume. Useful to exclude long-tail markets with near-zero activity.

Returns a list of event dicts with nested markets. Each event has id, end_date, volume, volume_24hr, liquidity, and markets[]. Each nested market has id, outcomes, outcome_prices, best_bid, best_ask, last_trade_price.

Does NOT include event-level active / closed / category, or market-level closed / liquidity / one_day_price_change. Call get_market for those.

get_eventA

Get one event with all of its nested markets.

Use when the user cares about a whole topic (all candidates, all strike brackets, etc.). For one specific sub-question, use get_market.

  • event_id: Numeric string ID (e.g. "36173"). Obtain from search_markets or get_active_markets (returned as id).

Returns the event dict with its full markets[]. Notable fields:

  • volume, volume_24hr, liquidity: USD floats (may be null).

  • active, closed: state flags; closed = all sub-markets resolved.

  • end_date: ISO 8601 UTC; null when sub-markets have staggered dates.

  • markets[].outcome_prices: JSON-encoded probability list; null if untraded.

  • markets[].best_bid, best_ask, last_trade_price: probabilities in [0, 1].

  • markets[].one_day_price_change: 24h absolute change in probability (float).

  • markets[].closed: true once that individual market has resolved.

Does NOT include per-market spread, one_week_price_change, or full market description / slug. Use get_market for those.

get_marketA

Get full details for one market, including order-book edges and momentum.

Use when the user cares about a single specific question (one candidate's odds, one strike price). For the whole topic, use get_event.

  • market_id: Numeric string ID (e.g. "573655"). Obtain from search_markets, get_event, or get_active_markets (returned as id or markets[].id).

Returns a single market dict. Notable fields:

  • question: the prediction question itself.

  • description: full resolution rules (can be long — tells you how the market settles).

  • outcome_prices, outcomes: JSON-encoded string lists (see server instructions).

  • best_bid, best_ask: order-book edges as probabilities in [0, 1].

  • spread: best_ask - best_bid (narrower = more liquid).

  • last_trade_price: most recent fill price (probability).

  • one_day_price_change, one_week_price_change: absolute change in probability.

  • volume, volume_24hr, liquidity: USD floats.

  • end_date: ISO 8601 UTC resolution deadline.

  • active, closed: tradeability + resolution state.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/jiroamato/polymarket_mcp'

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