Skip to main content
Glama
huntbuilds

MCP Prediction Markets

by huntbuilds

MCP Prediction Markets

Live prediction market intelligence for AI agents via the Model Context Protocol.

Tools

Tool

Description

search_prediction_markets

Search markets by keyword across Polymarket & Kalshi

get_trending_markets

Top markets by volume and activity

get_market_odds

Current odds and pricing for a specific market

find_arbitrage

Cross-platform price discrepancies (Kalshi vs Polymarket)

get_category_markets

Browse markets by category (crypto, politics, economics)

All data from free public APIs (Polymarket, Kalshi). No API keys required.

Related MCP server: Polymarket MCP Server

Install

pip install mcp-prediction-markets

Usage with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "prediction-markets": {
      "command": "mcp-prediction-markets"
    }
  }
}

Then ask Claude things like:

  • "Search for Bitcoin prediction markets"

  • "What are the trending markets on Polymarket?"

  • "Find arbitrage opportunities between Kalshi and Polymarket"

  • "What are the odds on the Fed cutting rates?"

License

MIT

Available Tools

5 tools
find_arbitrageA

Find cross-platform arbitrage between Polymarket and Kalshi.

Scans equivalent markets on both platforms for price discrepancies. When the combined cost of opposing positions < $1.00, the difference is guaranteed profit regardless of outcome.

Real arbs are typically 1-5 cents and close within seconds/minutes. Larger spreads (>20 cents) usually indicate markets are NOT equivalent.

Args: min_spread_cents: Minimum spread to report in cents (default 2.0)

Returns: JSON with arbitrage opportunities, matched pairs, and spread analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_spread_centsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It explains the arbitrage principle and return type, but omits details like auth needs, rate limits, or whether it performs a live scan. It is adequate but not rich.

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 concise (~8 sentences) and front-loaded with purpose, followed by explanatory context. Each sentence adds value; no redundancy.

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?

Given the single optional parameter and presence of an output schema, the description covers the tool's purpose, usage hints, and parameter meaning adequately. It could mention output structure but is sufficient.

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 input schema has 0% description coverage, so the description's mention of 'min_spread_cents: Minimum spread to report in cents (default 2.0)' adds essential meaning beyond the schema alone.

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?

The description clearly states the tool's specific action: finding cross-platform arbitrage between Polymarket and Kalshi. It distinctly separates itself from sibling tools like get_category_markets or get_trending_markets by focusing on price discrepancy detection.

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

Usage Guidelines4/5

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

The description provides context on typical arb spreads (1-5 cents) and warns that larger spreads (>20 cents) likely indicate non-equivalent markets, helping the agent interpret results. It lacks explicit when-to-use or when-not-to-use directives compared to alternatives.

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

get_category_marketsA

Browse prediction markets by category.

Categories: crypto, economics, politics, climate, sports, entertainment, geopolitics, tech, other.

Args: category: Market category (crypto, economics, politics, climate, sports, entertainment, geopolitics, tech, other) platform: "both", "polymarket", or "kalshi" (default "both") limit: Max results (default 20, max 50)

Returns: JSON with markets in the specified category, sorted by volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNocrypto
platformNoboth
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It states results are sorted by volume and returns JSON with markets, but does not mention if the operation is read-only, any side effects, or performance considerations. The description is adequate but could be more transparent.

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 well-structured with Args and Returns sections, concise yet informative. It could be slightly more compact, but it earns its sentences. No unnecessary words.

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?

Given the tool's simplicity (3 params, no required params) and the presence of an output schema, the description covers input parameters and return format adequately. It explains category values and sorting. It is complete enough for agent invocation.

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?

The input schema has 0% description coverage, so the description fully compensates by explaining each parameter: category lists valid values, platform explains options and default, limit explains default and max. This adds significant meaning beyond the schema.

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?

The description clearly states the tool's purpose: 'Browse prediction markets by category.' It lists specific categories, making it distinct from siblings like search_prediction_markets or get_trending_markets.

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

Usage Guidelines4/5

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

The description provides categories and parameter defaults, implying when to use this tool for category-based browsing. It doesn't explicitly state when not to use it or name alternatives, but the context signals (sibling tools) and the listing of categories provide implicit guidance.

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

get_market_oddsB

Get detailed current odds and pricing for a specific prediction market.

Provides YES/NO prices, implied probability, volume, and market metadata. Use the market_id from search_prediction_markets or get_trending_markets.

Args: market_id: The market identifier (Kalshi ticker like "KXBTC-26MAR15-B100000" or Polymarket condition_id) platform: "polymarket" or "kalshi"

Returns: JSON with detailed market odds, pricing, and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
market_idYes
platformNopolymarket

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must cover behavioral traits. It mentions the output includes YES/NO prices, implied probability, volume, and metadata, but lacks disclosure on error handling, authentication requirements, rate limits, or what happens with invalid inputs.

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 concise with two main sentences plus structured Args/Returns. Every sentence serves a purpose, and the main action is front-loaded.

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?

With an output schema present, the description does not need to detail return structure, but it does mention key fields. It provides adequate context for a simple tool with two parameters, though missing guidance on error conditions or platform validation.

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 schema has 0% description coverage, but the description adds valuable context: market_id format examples (Kalshi ticker, Polymarket condition_id) and platform values ('polymarket' or 'kalshi'). This compensates well 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 clearly states the tool gets odds and pricing for a specific market, with verb and resource. It references sibling tools for obtaining market_id, distinguishing its purpose. However, 'detailed' is vague and could be more specific.

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?

It advises using market_id from sibling tools, implying when to use this tool, but does not explicitly state when not to use it or compare with alternatives like find_arbitrage or get_category_markets.

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

search_prediction_marketsA

Search prediction markets across Polymarket and Kalshi by keyword.

Find markets about any topic: crypto prices, elections, economic indicators, geopolitics, entertainment, tech, sports, and more. Returns current odds (YES/NO prices), volume, and direct links.

Args: query: Search keywords (e.g., "bitcoin 100k", "trump", "fed rate cut", "gta vi") platform: "both", "polymarket", or "kalshi" (default "both") limit: Maximum results to return (default 15, max 30)

Returns: JSON with matching markets, current odds, and links.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
platformNoboth
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the read-only nature (search) and states what is returned: 'current odds (YES/NO prices), volume, and direct links.' However, it does not mention potential side effects, error conditions, or limitations (e.g., rate limits, pagination), leaving some behavioral aspects unclear.

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 well-structured with a clear first sentence stating purpose, followed by a bulleted args section. It includes useful examples but is slightly verbose with extra lines. The front-loading of the main action is effective.

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?

Given the 0% schema description coverage and no annotations, the description covers all parameters, return format, and provides context via examples. It lacks details on edge cases (e.g., empty results) or platform-specific behaviors, but overall is sufficient for basic usage.

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?

The input schema has 0% parameter description coverage, but the tool description fully compensates by explaining all three parameters: query (with examples), platform (with default and options), and limit (with default and max). This adds significant meaning beyond the bare schema structure.

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?

The description clearly states the tool's function: 'Search prediction markets across Polymarket and Kalshi by keyword.' It uses a specific verb (search) and resource (prediction markets), and distinguishes itself from sibling tools like get_trending_markets by focusing on keyword-based retrieval.

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?

The description provides examples of search queries but does not explicitly state when to use this tool versus alternatives like get_category_markets or get_trending_markets. There is no guidance on when not to use it or which scenarios are better suited for sibling tools.

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. 5 tool updatesv1.0.0
    • First observedfind_arbitrage
    • First observedget_category_markets
    • First observedget_market_odds
    • First observedget_trending_markets
    • First observedsearch_prediction_markets

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: find_arbitrage detects cross-platform arbitrage, get_category_markets browses by category, get_market_odds fetches specific odds, get_trending_markets shows trending markets, and search_prediction_markets searches by keyword. No overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case. Most use 'get_' prefix, while 'find_arbitrage' uses 'find_' which is still a clear verb_noun construction. Naming is predictable and uniform.

Tool Count5/5

Five tools cover the essential information retrieval needs of a prediction markets server: discovering, searching, browsing, and checking odds, plus a unique arbitrage detection tool. The count is well-scoped and not excessive.

Completeness4/5

The tool set covers major read operations: search, browse, trending, odds, and arbitrage. However, it lacks tools for historical data, market analysis, or user portfolio management, which are reasonable extensions for a more complete prediction markets server.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

  • Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.

  • Live prediction markets: Polymarket + Kalshi prices, odds, order books. Pay-per-call USDC, no key.

  • Your agent needs the crowd's number — live odds on elections, policy, macro prints and sport, from the venues where people put money behind the opinion. **What you can ask for** • "What are the current odds on this event?" • "List the open markets on this topic across both venues." • "Show recent trades and how the price moved." • "What is the implied probability now versus a week ago?" **How to use it** Point any MCP client at https://mcp.aisa.one/prediction-market-data/mcp and sign in with OAuth — there is no key to create or paste. 5 tools: Kalshi markets and trades, Polymarket markets, events and activity. **Why this rather than the source** Both venues in one shape, so the same question can be priced twice. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Read the odds here, then ask the same agent for the market data or the news behind them — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/finance/mcp for equities, crypto and prediction markets in one place.

  • Hosted MCP for Kalshi prediction markets: search, odds, order books, settlement rules, and trading.

Related MCP Servers

  • A
    license
    A
    quality
    F
    maintenance
    Aggregates prediction market data from 5 major platforms (Manifold, Polymarket, Metaculus, PredictIt, Kalshi), enabling users to search markets, compare odds across platforms, detect arbitrage opportunities, and track predictions through natural language.
    8
    3
    MIT
  • A
    license
    B
    quality
    Not graded
    maintenance
    Enables AI agents to interact with the Polymarket prediction market platform to discover markets, analyze real-time pricing, and monitor public portfolio data. It provides comprehensive access to market analytics, implied probabilities, and order books through the Model Context Protocol.
    59
    17 npm
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to discover and analyze prediction markets, execute trades, and manage positions on Polymarket via the Model Context Protocol.
    7
    51 npm
    20
    MIT