Skip to main content
Glama
Polymarket US MCP server

Polymarket US MCP server

by chand1012

Get Price History

get_price_history
Read-onlyIdempotent

Retrieves historical Yes and No display prices for a single market by slug, using fixed intervals or a custom Unix timestamp range.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
queryYesQuery parameters and pagination; use the exact field names shown.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered by structured data. The description nonetheless adds real behavioral context beyond those hints: a 20 requests/second/IP limit, a 30-second cache recommendation, refresh staggering across markets, and the caveat that custom ranges return stored observations that may be irregular or sub-minute. Return-shape caveats (bid-ask spread preserved, prices can sum above 1) are also disclosed.

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?

Front-loaded with the purpose, then a bulleted profile table that is dense but scannable; the length is largely justified by seven enum values that each need a fidelity pairing. The closing caching/rate-limit sentence is operationally useful but adds bulk and a markdown link, which slightly dilutes the otherwise tight structure.

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?

There is no output schema, so the description must explain the returned fields itself — it does, defining `longPrice` and `shortPrice` and warning that they preserve the spread and are not trades. Combined with mode selection, rate limits, and the live-update alternative, nothing essential for a correct call is missing.

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?

Schema coverage is 100%, so a 3 would be the baseline, but the description adds meaning the schema cannot: it maps each enum interval to the exact `fidelity` value (1, 5, 180), states that custom ranges require both Unix timestamps plus `fidelity=1`, and equates `symbol` with the market slug. That is substantive guidance on mutually exclusive parameter combinations rather than a restatement of field docs.

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

Purpose5/5

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

Opens with a specific verb and resource: "Returns book-derived Yes and No display prices for one market." It pins the scope (one market per request) and clarifies the semantics of the returned values (derived from best ask / one minus best bid, not individual trades), which separates it from the OHLC series sibling and from get_market_bbo.

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

Usage Guidelines5/5

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

Gives explicit when-to-use routing: enumerated fixed profiles with their required `fidelity` values, custom ranges for short windows "up to 24 hours," and a direct handoff to the Markets WebSocket "for live updates after loading history." An agent can pick the correct mode without inference.

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