Skip to main content
Glama
chand1012

Polymarket US MCP server

by chand1012

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HOSTYesThe server's bind address. Required on startup for the HTTP transport.
PORTYesThe server's bind port. Required on startup for the HTTP transport.
POLYMARKET_KEY_IDYesYour Polymarket US key ID.
POLYMARKET_SECRET_KEYYesYour Polymarket US secret key.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_a_bucketed_ohlc_price_series_for_one_or_more_assetsA

Returns a dense, ascending OHLC candle series per requested asset between from and to, one candle per bucket. Buckets with no ticks are gap-filled: close is carried forward, open/high/low equal that close, and tick_count is 0. The server clamps rather than rejects: a to of 0 or in the future becomes now, and from is raised so the series holds at most 3600 candles. That count is the only size limit, so the widest window scales with the bucket: an hour at 1S, 60 hours at 1M, 150 days at 1H. The effective bounds are echoed on each series. Duplicate assets are deduped; the response holds one series per distinct asset. Match a series to a requested asset by its asset field, never by position: the order is not guaranteed, and the REST surface returns the series sorted by symbol because a repeated query parameter does not keep its order. An unknown symbol, or an asset whose markets are not available yet, fails the whole request with 404 (asset price history is not available). An available asset with no prices yet returns an empty series; an unknown class is rejected.

get_eventsC

Retrieve all events

get_event_by_slugC

Retrieve an event by its slug

get_event_by_idC

Retrieve a specific event by its ID

get_event_by_partner_external_idA

Resolve a partner external event ID (e.g. OpticOdds fixture ID) to the internal event and its mapped market sides

get_incentive_programsB

Returns active and historical incentive programs grouped by market.

get_your_incentive_earningsA

Returns rewards earned by the authenticated caller. Each entry sums all payouts for a single (market, date) pair, where date is in Eastern Time.

get_market_by_idC

Retrieve a specific market by its ID

get_market_by_slugC

Retrieve a specific market by its slug

get_marketsC

Retrieve all markets

get_market_bboB

Retrieve current market data (best bid/offer, stats) for a specific market by its slug in a lightweight format

get_market_bookB

Retrieve current market data (order book, stats) for a specific market by its slug

get_market_settlementC

Retrieve the settlement price for a specific market by its slug

create_orderB

LIVE ACCOUNT ACTION: Create a new order to enter into a market This operation may affect real funds or account state.

get_open_ordersB

Get all open orders for the authenticated user

cancel_all_open_ordersB

LIVE ACCOUNT ACTION: Cancel all open orders, optionally filtered by market slugs This operation may affect real funds or account state.

create_multiple_ordersA

LIVE ACCOUNT ACTION: Create up to 20 orders in a single request. If any entry fails request-shape validation, the whole batch is rejected by the gateway before reaching the exchange. Per-entry exchange outcomes (accept, fill, reject) are delivered on the order stream, not in this response. createdOrderIds are returned in request order. This operation may affect real funds or account state.

cancel_multiple_ordersA

LIVE ACCOUNT ACTION: Cancel up to 20 orders in a single request. If any entry fails request-shape validation, the whole batch is rejected by the gateway before reaching the exchange. The exchange may silently ignore unknown orderIds. canceledOrderIds is an echo of the request, not a confirmation; observe actual outcomes on the order stream. This operation may affect real funds or account state. Returned IDs may not confirm exchange execution; verify the outcome.

modify_multiple_ordersA

LIVE ACCOUNT ACTION: Modify up to 20 existing orders in a single request. Each entry is forwarded to the exchange as a cancel-replace. If any entry fails request-shape validation, the whole batch is rejected by the gateway before reaching the exchange. The exchange may silently ignore unknown orderIds. modifiedOrderIds is an echo of the request, not a confirmation; observe actual outcomes on the order stream. This operation may affect real funds or account state. Returned IDs may not confirm exchange execution; verify the outcome.

get_orderA

Get details for a specific order by its exchange-assigned ID

cancel_orderB

LIVE ACCOUNT ACTION: Cancel a specific order by its exchange-assigned ID This operation may affect real funds or account state.

modify_orderB

LIVE ACCOUNT ACTION: Modify an existing order in the marketplace. Allows changing price, quantity, time in force, and other parameters. This operation may affect real funds or account state.

preview_orderA

Preview an order before submission to validate parameters and see expected fills

close_position_orderA

LIVE ACCOUNT ACTION: Create an order to close an existing position in a market. This will sell all contracts held in the specified market. This operation may affect real funds or account state.

get_user_positionsB

Get user's trading positions across all markets or filtered by specific market

get_activitiesB

Get activities for a user including trades, position resolutions, and account balance changes

get_account_balancesA

Get user's current account balances including buying power, asset values, and pending transactions

get_price_historyA

Returns book-derived Yes and No display prices for one market. Use the market slug as symbol.

Supported fixed profiles:

  • INTERVAL_1H with fidelity=1: approximately one-minute points for the last hour

  • INTERVAL_6H with fidelity=1: approximately one-minute points for the last six hours

  • INTERVAL_1D with fidelity=5: five-minute points for the last day

  • INTERVAL_1W with fidelity=180: three-hour points for the last week

  • INTERVAL_1M with fidelity=180: three-hour points for the last 30 days

  • INTERVAL_ALL with fidelity=180: three-hour points for newer markets and daily points for longer histories

  • INTERVAL_LIVE with fidelity=1: from 15 minutes before the event starts through now

For a custom range, provide both Unix timestamps and use fidelity=1. Custom ranges are intended for short windows of up to 24 hours and return stored observations, which may be irregular or more frequent than once per minute.

longPrice is the Yes display price, normally derived from the best ask. shortPrice is the No display price, normally derived from one minus the best bid. They can sum to more than 1 because they preserve the bid-ask spread; these are not individual trades.

The endpoint supports one market per request. Cache identical responses for at least 30 seconds, stagger refreshes across markets, and observe the 20 requests/second/IP public limit. For live updates after loading history, use the Markets WebSocket.

get_rfqsC

Returns RFQs matching the query filters.

create_rfqB

LIVE ACCOUNT ACTION: Creates a combo RFQ using the authenticated Retail account. This operation may affect real funds or account state.

get_quotesC

Returns quotes matching the query filters.

create_quoteA

LIVE ACCOUNT ACTION: Creates a quote using the authenticated Retail account. Every successful call returns a new quoteId, including replacements. See quote replacement. This operation may affect real funds or account state.

get_rfq_tradesA

Returns anonymous original fills where either order originated from an RFQ, newest first. Includes single instruments, combos, and later fills on resting orders. Repeat the same filters and limit with each cursor; an empty cursor ends the traversal. History is eventually visible. Requery overlapping time windows to find late arrivals and deduplicate by tradeId. Later corrections and busts do not amend these prints.

get_rfq_user_idB

Returns the public RFQ user ID for the authenticated participant.

delete_rfqC

LIVE ACCOUNT ACTION: Closes an open RFQ. This operation may affect real funds or account state.

delete_quoteB

LIVE ACCOUNT ACTION: Deletes a quote so it can no longer be accepted. This operation may affect real funds or account state.

accept_quoteC

LIVE ACCOUNT ACTION: Accepts one side of a quote. This operation may affect real funds or account state.

confirm_quoteC

LIVE ACCOUNT ACTION: Confirms an accepted quote during last look. This operation may affect real funds or account state.

searchC

Search for a given query

get_seriesC

Retrieve all series

get_series_by_idC

Retrieve a specific series by its ID

get_all_leaguesB

Retrieve leagues with pagination (max 50 per page)

get_league_by_slugA

Retrieve a league by its slug

get_events_by_league_slugA

Retrieve events for a league by its slug (e.g., 'nfl', 'nba'). Resolves the league to its active series and returns events.

get_all_sportsC

Retrieve all sports

get_sport_by_slugB

Retrieve a sport by its slug, with all leagues attached

get_events_by_sport_slugA

Retrieve events for a sport by its slug (e.g., 'football', 'basketball'). Fetches all leagues for the sport, collects their active series, and returns combined events.

get_sportsC

Fetch sports data

get_sports_playersB

Fetch sports players, filterable by abbreviation, name, id, team, or provider reference

get_sports_teamsC

Fetch sports teams data for enriching sports events

get_sports_teams_for_providerC

Fetch sports teams data for a specific provider

get_sports_eventsC

Retrieve events sections for a sport series (optional trending, optional live, and sport section). Same structure as home page.

get_tagsC

Get ranked tags with optional filtering

get_tag_by_slugC

Get a tag by its slug

get_tag_by_idC

Get a tag by its ID

get_events_for_a_tagA

Get events filtered by tag slug, sorted by volume descending by default

get_combosA

Returns the combo matching the exact symbol.

create_comboB

LIVE ACCOUNT ACTION: Creates or returns the combo instrument for the supplied legs. Each authenticated exchange participant may create up to 1,000 new combo instruments per week across all of its accounts. The quota resets Monday at 00:00 UTC. Returning an existing canonical combo does not consume the quota. This operation may affect real funds or account state.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.8/5.0

Scored across 58 tools

Disambiguation2/5

The set contains many overlapping read tools: get_sports vs get_all_sports, get_events vs get_events_by_sport_slug/get_events_by_league_slug/get_events_for_a_tag, and get_price_history vs the bucketed OHLC tool. Descriptions add parameters, but an agent still faces multiple near-duplicate retrieval paths and must infer which variant to use.

Naming Consistency4/5

Most names use snake_case with a clear verb (get_, create_, cancel_, modify_, delete_), which is predictable. There are minor deviations such as the extremely long get_a_bucketed_ohlc... name and inconsistent 'all' qualifiers (get_sports vs get_all_sports), but not mixed casing/styles.

Tool Count1/5

58 tools is an extreme overload for an MCP surface; the calibration explicitly treats 50+ tools as a mismatch. Many retrieval variants and batch/lifecycle operations could be consolidated or exposed via parameters.

Completeness4/5

The surface covers the domain broadly: events/markets/series/sports/tags, price history/OHLC, order lifecycle (create/preview/modify/cancel/batch), RFQs/quotes/combos, and account/positions/activities/balances/incentives. Minor gaps remain around some alternate lookup keys and post-trade/order-history specifics, but core workflows are represented.

Maintenance

ActivityMaintained
ResponsivenessNo issues