Skip to main content
Glama
KalshiEye

Kalshi Eye MCP Server

by KalshiEye

Kalshi Eye MCP server

An MCP server that lets AI assistants such as Claude and Cursor search the Kalshi Eye archive of prediction market data. It can find Kalshi, Polymarket and Limitless markets, show how a market's price moved, check what was recorded, and list the order book files you can download.

It needs a Kalshi Eye API key: create one at API keys (a free account works) and set it as KALSHIEYE_API_KEY.

Install

Claude Code:

claude mcp add kalshieye -e KALSHIEYE_API_KEY=clab_your_key -- uvx kalshieye-mcp

Claude Desktop, Cursor and other clients (claude_desktop_config.json, .cursor/mcp.json, ...):

{
  "mcpServers": {
    "kalshieye": {
      "command": "uvx",
      "args": ["kalshieye-mcp"],
      "env": { "KALSHIEYE_API_KEY": "clab_your_key" }
    }
  }
}

Without a key, or with a placeholder, every tool answers with how to get one. Listing files and download links cover the datasets your plan includes.

uvx comes with uv. With pip instead: pip install kalshieye-mcp, then use kalshieye-mcp as the command.

Related MCP server: Polymarket MCP Server

Tools

Tool

What it does

search

Find series, events and markets by keyword, venue, category or status. Series lead and come a page at a time (series_total, has_more, offset); events and markets are the 10 best whose words hold the query, with events_found / markets_found (exact up to 10,000, then *_found_exact: false) and more_events / more_markets, the paged calls that list every match

get_series

One series: what it is, how often it runs, markets in the catalog, and days of data files

list_markets

A series' markets, or the markets on every venue holding each word of q (venue narrows it), newest first, with status and result. A page at a time: total (with q, exact up to 10,000, then total_exact: false), and next_cursor (with q) or next_offset, passed back until it is null

list_events

Every event on every venue whose title, series name or category holds each word of the query, newest first, a page at a time (next_cursor), with total and total_exact

get_market

One market's terms, status, result, and how much of it was recorded

market_price_history

The recorded YES bid/ask path, up to about 240 points over the market's busiest stretch; path_source is life, busiest or window

list_datasets

Every dataset: what it holds, columns, plan, days available

dataset_series

Which series have files in a dataset, with days, rows and size, up to 500 a page with total and next_offset

recording_status

Whether recording is running, and the recorded share of recent days by venue

list_files

Daily Parquet files for a dataset, date range and series, page by page

download_links

Signed download URLs for up to 100 of those files (counts toward the monthly allowance)

Things to ask:

  • "Which bitcoin markets does Kalshi Eye record, and since when?"

  • "What were the last few hours of the Bills vs Rams market on October 12 like?"

  • "How much of the Fed decision series is in the order book files?"

  • "Is the recorder running, and how complete was last week?"

Notes

  • Kalshi is recorded since October 12, 2026; Polymarket, Limitless and Chainlink prices since October 15, 2026. Each UTC day is published the next morning.

  • Prices are dollars between 0 and 1. A Kalshi YES ask is 1 minus the best NO bid. Times are UTC.

  • Free data without any key: a one-day sample on Hugging Face and runnable examples. The Python client for downloading files is kalshieye.

  • KALSHIEYE_BASE_URL points the server at another deployment (default https://kalshieye.com).

Kalshi Eye is independent and is not affiliated with Kalshi, Polymarket or Limitless. MIT licensed.

Available Tools

10 tools
dataset_seriesC
Read-only

Which series have files in one dataset (for example book_l2 or trades), with days, rows and size.

NameRequiredDescriptionDefault
limitNo
queryNo
dataset_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety behavior is covered. The description adds useful context about the metrics returned (days, rows, size), but does not discuss pagination despite the limit parameter, authentication needs, or other behavioral details.

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?

The description is a single efficient sentence with the core purpose front-loaded. It contains no filler, though it is sparse enough that it leaves key parameter meaning unaddressed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations cover read-only/open-world behavior, but the tool has three parameters with zero schema descriptions and the description does not explain query or limit. For an agent to invoke it confidently, more parameter and routing guidance is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only indirectly identifies dataset_id via 'in one dataset' and examples, and says nothing about the query or limit parameters.

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

Purpose4/5

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

The description clearly states that the tool lists series with files in one dataset, with examples like book_l2 and trades, and mentions returned metrics (days, rows, size). It is specific about the resource and scope but does not differentiate itself from nearby tools such as get_series or list_files.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like get_series, search, or list_files. The dataset-scoped purpose implies usage, but no exclusions, prerequisites, or alternative-selection criteria are given.

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

get_marketA
Read-only

One market by ticker (Kalshi ticker, or a Polymarket token id): terms, status, result, and how much of its life was recorded.

NameRequiredDescriptionDefault
tickerYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real value beyond that: it discloses that the key namespace spans two venues (Kalshi ticker or Polymarket token id) and that the response reports how much of the market's life was recorded, a non-obvious behavioral detail. It doesn't cover not-found behavior, which is the main remaining gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the core action and key identifier caveat front-loaded; every clause adds information and nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not required, and the description still hints at it. Combined with the identifier dual-namespace note, an agent has enough to call this correctly; only error/empty-result handling is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must carry the lone parameter — and it does, naming accepted identifier formats (Kalshi ticker or Polymarket token id). That is meaningful disambiguation for an otherwise bare string field. It omits format examples or validation notes, so it is not a 5.

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

Purpose4/5

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

States a specific resource (one market), the lookup key (ticker), and enumerates what comes back: terms, status, result, recording coverage. This clearly separates it from list_markets and market_price_history by singling out a single market's record. It stops short of explicitly naming a sibling to route away from, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

Usage is only implied — an agent can infer this is the detail-lookup call for a single known market versus the listing tools. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g. 'use list_markets to find a ticker first').

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

get_seriesA
Read-only

One series (for example KXBTC15M or KXFEDDECISION): what it is, how often it runs, and how many markets and days the archive has.

NameRequiredDescriptionDefault
series_idYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint already tells the agent this is a safe read operation, and the description adds useful content about what information is returned: identity, cadence, market count, and archive day count. It does not add deeper behavioral context such as error handling or rate limits, but with annotations present a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with the resource scope front-loaded and examples placed efficiently in parentheses. Every clause maps directly to what the tool provides.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter lookup with an output schema and read-only annotations, the description gives enough context about what the tool returns. It could be slightly more complete by clarifying how to obtain a series_id, but the core call is understandable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required series_id parameter. The description compensates somewhat by giving concrete example IDs, but it does not explain ID format rules, where to obtain valid IDs, or any constraints beyond the examples.

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

Purpose4/5

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

The description clearly states this retrieves information about a single series, with concrete examples (KXBTC15M, KXFEDDECISION) and the kinds of details returned. It distinguishes scope as singular versus list-oriented siblings, though it does not explicitly name an alternative tool.

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

Usage Guidelines3/5

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

The singular phrasing 'One series' implies this is for looking up a specific series rather than listing many, but there is no explicit guidance on when to choose this over siblings like dataset_series or list_markets. Prerequisites and exclusions are not stated.

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

list_datasetsA
Read-only

Every dataset in the archive (order books, top of book, minute bars, trades, settlements, Polymarket, Chainlink...): what it holds, the plan it needs, days available, and its columns.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The annotations already establish read-only and open-world behavior, and the description adds useful context beyond that: each result includes what the dataset holds, its required plan, available days, and columns. It does not mention ordering or pagination, but for a listing tool this is a solid behavioral summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that immediately states the scope and then enumerates the useful returned fields. The examples are compact and the sentence has no filler.

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?

For a parameterless listing tool with an output schema and clear read-only annotations, the description is complete enough. It explains what the catalog covers and what information each entry supplies, so an agent can call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter behavior to explain. The baseline for a parameterless tool is 4, and the description appropriately focuses on output content rather than inventing parameter semantics.

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

Purpose4/5

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

The description states a specific resource and scope: every dataset in the archive, including examples and the metadata returned for each. It is clear what the tool does, though it does not explicitly distinguish itself from siblings like dataset_series or list_files.

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

Usage Guidelines3/5

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

Usage is implied by the catalog-style description, which suggests it is for discovering datasets and comparing their plans, availability, and columns. However, it gives no explicit when-to-use guidance or alternatives for related tools such as dataset_series or search.

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

list_filesB
Read-only

Daily Parquet files for a dataset and date range (YYYY-MM-DD, UTC), optionally one series. Needs KALSHIEYE_API_KEY.

NameRequiredDescriptionDefault
limitNo
seriesNo
datasetYes
end_dateYes
start_dateYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds a genuinely useful behavioral fact — the KALSHIEYE_API_KEY auth requirement — plus the UTC date convention, but says nothing about pagination or how the default limit of 100 behaves.

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?

A single dense sentence with no filler, front-loading the resource and scope before the auth note. It is telegraphic rather than ungrammatical, and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and auth plus date format are covered. The notable remaining gap is the limit parameter, which is documented nowhere, leaving an agent without guidance on result size or pagination for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 0%, the description compensates well: it explains that dataset, start_date and end_date define the query and that dates use YYYY-MM-DD in UTC, and that series is optional. Only the limit parameter goes unexplained in both schema and description.

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

Purpose4/5

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

The description names the resource precisely — daily Parquet files scoped to a dataset and date range, optionally narrowed to one series — so an agent can tell what it retrieves. It does not, however, distinguish this from siblings like download_links or dataset_series, which an agent must still infer.

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

Usage Guidelines2/5

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

There is no when-to-use vs when-not guidance and no mention of alternatives such as download_links for fetching actual file contents. The agent gets context but no routing logic.

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

list_marketsA
Read-only

Markets in one series that closed or close within the last days days (1 to 7), with status, result and times.

status is a Kalshi market status, such as active or finalized.

NameRequiredDescriptionDefault
daysNo
limitNo
seriesYes
statusNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

The annotations already establish that this is a read-only, open-world operation. The description adds useful behavioral context beyond that: it narrows results to markets that closed or close within a bounded day window and explains that status values follow Kalshi conventions such as active or finalized.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded, and wastes no words. The scope and day-window constraint appear immediately, followed by a brief clarification of status.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values. Still, for a four-parameter list tool with no schema descriptions, it omits the `limit` parameter and does not clarify whether `status` filters results or merely describes returned records.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains the `days` range (1 to 7) and implies `series`, but it never describes the `limit` parameter and does not clearly present `status` as a filter parameter rather than a returned field.

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

Purpose4/5

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

The description clearly states the resource and scope: markets in one series that closed or close within a recent day window, with status, result, and times. It is specific enough to distinguish this from get_market or get_series, though it does not explicitly name sibling alternatives.

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

Usage Guidelines3/5

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

Usage is implied by the scope: use it for markets belonging to a single series within the last 1-7 days. However, it never names alternatives such as get_market for a single market or search for broader queries, and it does not state when not to use this tool.

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

market_price_historyA
Read-only

The recorded YES best bid and ask over a market's life, about 40 points, plus how much was recorded.

Good for "what did the market think over time". For every order book change, use the daily Parquet files (list_datasets, list_files).

NameRequiredDescriptionDefault
tickerYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnlyHint, openWorldHint), and the description adds substantive behavior beyond them: the result is a coarse ~40-point sample across the market's lifetime and includes a record-count field. That implicitly warns the agent the data is downsampled, which is the key behavioral caveat. It does not mention rate limits, ordering, or gaps in coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what is returned and the sampling granularity, followed by the use case and the alternative route. Every sentence carries information; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value shape needn't be explained, and the description covers the essential caveat (sampled history) plus routing to raw data. The one remaining hole is the ticker argument, which an agent must guess from convention.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter, ticker, has 0% schema description coverage and is never mentioned in the description. 'Over a market's life' weakly implies the ticker identifies a market, but no format, identifier convention, or failure behavior is given, so the description does not compensate for the schema gap.

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

Purpose4/5

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

The description precisely characterizes the resource returned: the recorded YES best bid and ask over a market's life, roughly 40 points, plus a count of what was recorded. It is clearly distinguishable from siblings, explicitly pointing to list_datasets/list_files for full order-book granularity. It stops short of a 5 only because the action framing is nominal ('the recorded ... over a market's life') rather than an explicit verb.

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?

It gives a concrete when-to-use case ('what did the market think over time') and an explicit when-not case with named alternatives (for every order book change, use the daily Parquet files via list_datasets, list_files). Nothing about selection is left to inference.

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

recording_statusA
Read-only

Whether the recorder is running now, the last published day, and the recorded share of recent days by venue.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds useful context about what status dimensions are reported, but does not discuss freshness, caching, or other operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the current state and then lists the historical reporting dimensions. No wasted words.

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?

With zero parameters, a present output schema, and read-only annotations, the description covers the key information an agent needs to understand what this status tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics.

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

Purpose4/5

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

States a specific status resource with concrete reported fields: current recorder state, last published day, and recorded share by venue. Clear enough to distinguish it from data-fetching siblings, though it does not explicitly contrast with them.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any exclusions. The status-diagnostic use case is implied but not stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.0
    • First observeddataset_series
    • First observeddownload_links
    • First observedget_market
    • First observedget_series
    • First observedlist_datasets
    • First observedlist_files
    • First observedlist_markets
    • First observedmarket_price_history
    • First observedrecording_status
    • First observedsearch

TDQS

A3.6/5.0

Scored across 10 tools

Disambiguation4/5

Each tool has a distinguishable target: search (keyword discovery), get_series/list_markets/get_market (drill-down by series ticker or market ticker), and a separate archive tier (list_datasets, dataset_series, list_files, download_links). The only mild overlaps are get_series vs dataset_series and search vs list_markets, but descriptions disambiguate them clearly.

Naming Consistency3/5

Most tools follow verb_noun (download_links, get_series, list_markets, get_market, list_datasets, list_files), but there are notable deviations: the bare verb 'search' and noun-only names like market_price_history, dataset_series, and recording_status. Still readable, but the pattern isn't uniform.

Tool Count5/5

Ten tools is well-scoped for a market data archive: discovery, metadata, file listing, and download each earn their place with no redundant surface.

Completeness4/5

The full pipeline is covered: search/discover markets and series, inspect datasets, list daily Parquet files, and obtain signed download URLs, plus a recorder health check. Minor gaps exist—events are only reachable via search, and there is no direct query tool beyond price history and raw file download.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables access to Polymarket's prediction markets for analyzing market probabilities, trading activity, and event outcomes across politics, sports, crypto, and other categories through natural language queries.
    41 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to query Polymarket prediction markets, accessing real-time odds, market data, price history, order books, and trending markets across categories like politics, crypto, and sports through natural language.
    41 npm
    7
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides search, trending, odds, arbitrage, and category browsing for prediction markets (Polymarket & Kalshi) via the Model Context Protocol, enabling AI agents to access live market data without API keys.
    5
    1
    MIT