Skip to content

pdata Prediction Markets

by pdata.world · remote · no sign-in to list tools · v2.4.3 · published by world.pdata

Polymarket, Kalshi + 6 more prediction markets: live odds, volume, movers. Read-only, no auth.

Changes · 5

14 tools: 5 change things and 9 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http pdata https://api.pdata.world/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Changes things 5Claude Code: ask
  • closing_soonUse when the user wants to see markets that will resolve within the next 36 hours.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use when the user wants to see markets that will resolve within the next 36 hours. Returns markets sorted by close timestamp ascending. Takes the /markets filters, e.g. `source=` and `categories=` (CSV); price-derivative markets are included unless `hide_price_derivatives=true`.

    Annotations the server declares

    • title: Markets closing soon
    • readOnlyHint: true
    • openWorldHint: true
  • map_heatUse when you need a geographic snapshot of where prediction-market attention is concentrated.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use when you need a geographic snapshot of where prediction-market attention is concentrated. Returns per-country heat (capped news score, summed) for the current moment (`at=now`) or a past hour (`at=<ISO8601>`).

    Annotations the server declares

    • title: Country heat map
    • readOnlyHint: true
    • openWorldHint: true
  • map_timelineUse when you need the hourly total-heat time series that drives the /map playback scrubber.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use when you need the hourly total-heat time series that drives the /map playback scrubber. History accretes from launch (no backfill).

    Annotations the server declares

    • title: Country heat timeline
    • readOnlyHint: true
    • openWorldHint: true
  • news_movers_by_categoryUse when the user wants the news feed bucketed by category.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use when the user wants the news feed bucketed by category. Returns the same data shape as `list_news_movers` but pre-grouped into the canonical 14-category vocabulary, with cluster grouping inside each bucket. Useful for 'what's moving in politics?' style queries.

    Annotations the server declares

    • title: News movers by category
    • readOnlyHint: true
    • openWorldHint: true
  • top_moversUse when the user wants to see markets with the largest 24h probability swings.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Use when the user wants to see markets with the largest 24h probability swings. Returns the top N movers (default 5, max 20) ranked by absolute `prob_24h_change`, among open markets that moved more than 2 points on over 1,000 units of 24h volume, one per event. Takes the /markets filters; Climate and Weather and Mentions are always left out. Price-derivative markets are included unless `hide_price_derivatives=true`. Useful for 'what changed today?' style queries.

    Annotations the server declares

    • title: Biggest 24h probability moves
    • readOnlyHint: true
    • openWorldHint: true
Only reads 9Claude Code: allow
  • get_eventUse when an agent needs the full detail of a single prediction-market event by its composite key (source + event_id).No findings

    Why it is in this group

    • The name "get_event" says "get": a word for reading.
    Description, as the server wrote it
    Use when an agent needs the full detail of a single prediction-market event by its composite key (source + event_id). Returns the event with all of its child markets, latest probabilities, and metadata. The canonical URL `https://pdata.world/events/{source}/{event_id}` is stable for the lifetime of the underlying market. Events that closed more than 10 days ago are removed from the live tables; the same URL then returns a `kind: "tombstone"` object holding the title, close date and final outcome of each top market instead of the live `kind: "live"` object. Check `kind` before reading any other field. Large events carry hundreds of markets (a 311-market event is ~520 KB); pass `markets_limit` to take only the first N.

    Annotations the server declares

    • title: Get an event and its markets
    • readOnlyHint: true
    • openWorldHint: true
  • get_event_similarUse when an agent needs events similar to a given event — cross-platform equivalents and topically-related markets, precomputed nightly from title embeddings.No findings

    Why it is in this group

    • The name "get_event_similar" says "get": a word for reading.
    Description, as the server wrote it
    Use when an agent needs events similar to a given event — cross-platform equivalents and topically-related markets, precomputed nightly from title embeddings. Best-first; empty list (never an error) when no similarities are known yet.

    Annotations the server declares

    • title: Find similar and cross-platform events
    • readOnlyHint: true
    • openWorldHint: true
  • get_marketUse when an agent needs the full detail of a single market by its composite key (source + market_id).No findings

    Why it is in this group

    • The name "get_market" says "get": a word for reading.
    Description, as the server wrote it
    Use when an agent needs the full detail of a single market by its composite key (source + market_id). Returns the market with its parent event reference, current probability, volume, 24h delta, and historical chart points. Includes a `_meta.cite_as` field that the agent can drop directly into its reply.

    Annotations the server declares

    • title: Get a market
    • readOnlyHint: true
    • openWorldHint: true
  • get_summaryUse when an agent needs platform-level context before drilling into individual markets: one row per platform (Polymarket, Kalshi, Manifold, Myriad, Limitless, Predict, Opinion, Gem…No findings

    Why it is in this group

    • The name "get_summary" says "get": a word for reading.
    Description, as the server wrote it
    Use when an agent needs platform-level context before drilling into individual markets: one row per platform (Polymarket, Kalshi, Manifold, Myriad, Limitless, Predict, Opinion, Gemini) carrying 24h notional volume, active event and market counts, and that platform's category mix. Takes no parameters and returns the whole picture in one small response, which makes it the cheapest way to answer 'how big is X relative to Y' or 'which platform covers this topic'. Volumes are in each platform's native units — Manifold reports play-money mana, not USD — so do not sum across platforms without saying so.

    Annotations the server declares

    • title: Per-platform summary
    • readOnlyHint: true
    • openWorldHint: true
  • list_countriesUse when an agent needs the list of country tags that markets have been tagged with.No findings

    Why it is in this group

    • The name "list_countries" says "list": a word for reading.
    Description, as the server wrote it
    Use when an agent needs the list of country tags that markets have been tagged with. Returns the canonical country vocabulary with per-country market counts. Accepts the same filter params as `list_markets` (source, category, status, volume/probability ranges, search, …): the counts then reflect that filtered population, so this doubles as a facet endpoint. The country dimension itself is ignored when computing counts, so passing `country=` does not collapse the menu. Useful as the menu source for the `country=` filter on `list_events` / `list_markets` / `top_movers`.

    Annotations the server declares

    • title: List countries
    • readOnlyHint: true
    • openWorldHint: true
  • list_eventsUse when an agent wants to browse, filter, or search prediction-market events across all 8 platforms.No findings

    Why it is in this group

    • The name "list_events" says "list": a word for reading.
    Description, as the server wrote it
    Use when an agent wants to browse, filter, or search prediction-market events across all 8 platforms. Returns paginated events with their child markets, prices, and platform metadata. Filterable by source (polymarket/kalshi/manifold/myriad/limitless/predict/opinion/gemini), category, country, status (open/closed), and full-text search via `search`. Sortable by `volume_24hr`, `normalized_vol_24hr`, `liquidity`, `end_date`, or `closed_time` (prefix `-` for descending). Cap `page_size` ≤ 50 to keep responses small enough for LLM context windows.

    Annotations the server declares

    • title: List prediction-market events
    • readOnlyHint: true
    • openWorldHint: true
  • list_marketsUse when the user wants to browse, filter, or sort individual markets (not events).No findings

    Why it is in this group

    • The name "list_markets" says "list": a word for reading.
    Description, as the server wrote it
    Use when the user wants to browse, filter, or sort individual markets (not events). Returns paginated markets with their probability, volume, source, parent event ID, and 24h delta. Filterable by source, country, category, status, and full-text `search`. Sortable by `volume_24hr` or `probability`. Cap `page_size` ≤ 50 for chat-friendly responses.

    Annotations the server declares

    • title: List markets
    • readOnlyHint: true
    • openWorldHint: true
  • list_news_moversUse when the user wants to see the news-feed view: markets that exhibited a probability spike in the chosen lookback window, scored by `|Δprob_pp| × log10(1+USD-equivalent volume)`…No findings

    Why it is in this group

    • The name "list_news_movers" says "list": a word for reading.
    Description, as the server wrote it
    Use when the user wants to see the news-feed view: markets that exhibited a probability spike in the chosen lookback window, scored by `|Δprob_pp| × log10(1+USD-equivalent volume)`. Refreshed after each Polymarket ingest cycle, typically every 15-20 min. The `window=` param selects the lookback: 24 (default, ≥15pp), 12 (≥12pp), or 2 (≥2h, ≥10pp); `prob_change` is measured over that window. Includes a `prob_history` array (24h bucketed trajectory) per row regardless of window. Filterable by `source=` and `categories=` (CSV). Soft flags (`is_entertainment`/`is_microprediction`/`is_crypto`/`is_sports`/`is_weather`) default OFF; opt in with `include_*=true`.

    Annotations the server declares

    • title: News movers
    • readOnlyHint: true
    • openWorldHint: true
  • search_suggestUse when an agent has a name or phrase and needs the `(source, id)` of the matching event or market before calling another tool.No findings

    Why it is in this group

    • The name "search_suggest" says "search": a word for reading.
    Description, as the server wrote it
    Use when an agent has a name or phrase and needs the `(source, id)` of the matching event or market before calling another tool. Resolves free text against events AND markets in one call, best-first, and reports `total_events` / `total_markets` so the agent can tell a precise hit from an ambiguous one. Every row carries `event_path`, the internal link to use for follow-up lookups. Prefer this over running `list_events?search=` and `list_markets?search=` separately when the goal is identification rather than a filtered listing. Note: `headline` carries literal `<b>` highlight markup — quote `title` instead, or strip the tags.

    Annotations the server declares

    • title: Search events and markets by name
    • readOnlyHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.4.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http pdata https://api.pdata.world/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__pdata__list_events",
      "mcp__pdata__get_event",
      "mcp__pdata__get_event_similar",
      "mcp__pdata__list_markets",
      "mcp__pdata__get_market",
      "mcp__pdata__search_suggest",
      "mcp__pdata__get_summary",
      "mcp__pdata__list_countries",
      "mcp__pdata__list_news_movers"
    ],
    "ask": [
      "mcp__pdata__top_movers",
      "mcp__pdata__closing_soon",
      "mcp__pdata__news_movers_by_category",
      "mcp__pdata__map_heat",
      "mcp__pdata__map_timeline"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as pdata. Review it before you use it.