telekash-mcp-server
The TeleKash MCP Server is a prediction market probability oracle that gives AI agents real-time access to 4,500+ live prediction markets from Kalshi, Polymarket, and Metaculus across crypto, politics, sports, economics, weather, and entertainment.
Core Capabilities:
Get real-time probabilities (
get_probability): Query YES/NO odds, volume, and liquidity for any market using natural language or a market ID.Browse markets (
list_markets): Filter by category, source, jurisdiction, and sort by volume, probability, or closing date.Search markets (
search_markets): Full-text search across markets using keywords or natural language queries.View historical trends (
get_history): Retrieve probability snapshots over 1h, 24h, 7d, or 30d timeframes to analyze momentum.AI sentiment analysis (
get_sentiment): Get sentiment scores, directional recommendations (bullish/bearish/neutral), and confidence levels.Trending markets (
get_trending): Discover markets with the biggest probability swings to identify breaking events.Aggregate statistics (
get_market_stats): High-level overview of all markets including totals, category distribution, and volume.
Advanced Features (paid tiers):
Arbitrage detection & trading signals (Calibration): Identify cross-source arbitrage and receive TPF signals combining probability, sentiment, and noise filtering.
Advanced analytics (Calibration): Kelly Criterion sizing, expected value calculations, and Brier score performance tracking.
Trade execution & order management (Edge): Route trades to Kalshi, Polymarket, or native parimutuel pools.
Custom market creation & bulk data export (Edge): Create binary prediction markets and export probability history and arbitrage reports.
Webhook alerts (Edge): Notifications for probability crosses, mispricings, and volume spikes.
API Management:
Generate API keys (
generate_api_key): Free tier (100 calls/day), Calibration ($0.01/query), Edge ($0.05/query).Monitor usage (
get_usage): Track quota, rate limits, and tier status.Flexible payments: Pay per-call via USDC (x402 on Base/Polygon/Solana), fiat (Stripe), or TON — no subscription required.
Uses the Coinbase x402 facilitator to enable per-call USDC payments for oracle services on Base, Polygon, and Solana networks.
Supports processing tool usage payments in USDC on the Polygon network via the x402 protocol to access premium prediction market intelligence.
Supports processing tool usage payments in USDC on the Solana network via the x402 protocol to access premium prediction market intelligence.
Integrates Stripe for fiat-based per-query payments, allowing access to advanced analytics, trading signals, and broker execution tools.
Connects to a Supabase backend to retrieve and manage live prediction market data, historical probability history, and market metadata.
Provides API key management and interaction with native parimutuel pools through the @TeleKashBot on the Telegram platform.
Enables direct per-call payments for oracle services and query tools using the TON cryptocurrency on the TON mainnet.
TeleKash MCP Server
Prediction market probability oracle for AI agents.
What is this?
TeleKash is the probability oracle for the agent economy. Real-time access to 4,500+ live prediction markets from Kalshi (CFTC-regulated) and Polymarket. Structured trading signals, cross-source arbitrage detection, noise filtering, and smart trade routing across crypto, politics, sports, entertainment, finance, weather, tech, and science.
What makes it different:
Multi-source — Kalshi + Polymarket + native pools, not single-exchange
Self-calibrating — Platt scaling with daily recalibration cycles and Brier score tracking
Universal Payment Layer — agents pay per-call with USDC (Base/Polygon/Solana via x402), fiat (Stripe), or TON
28 tools — from free probabilities to broker execution with 1% commission
Related MCP server: Rekko MCP
Quick Install
npx telekash-mcp-serverClaude Code
claude mcp add telekash-oracle npx telekash-mcp-serverClaude Desktop / Cursor
Add to your MCP configuration file:
{
"mcpServers": {
"telekash-oracle": {
"command": "npx",
"args": ["telekash-mcp-server"]
}
}
}Tools
28 tools across 4 categories. All tools work without an API key on the Free tier (100 queries/day). 4,500+ live markets.
Intelligence
Tool | What it does | Tier |
| Real-time YES/NO probability with volume-weighted confidence score | Free |
| Browse markets by category, source, jurisdiction, with sorting | Free |
| Full-text search across 4,500+ markets | Free |
| Historical probability changes over 1h, 24h, 7d, 30d | Free |
| AI sentiment analysis with conviction, momentum, and noise filter | Free |
| Aggregate statistics across all markets and sources | Free |
| Markets with the biggest probability swings | Free |
| Kalshi vs Polymarket side-by-side odds comparison | Calibration |
Analytics
Tool | What it does | Tier |
| Cross-source arbitrage opportunities with buy/sell signals | Calibration |
| Structured TPF signal: probability + sentiment + noise filter + verdict | Calibration |
| Markets where sources disagree most (STRONG/MODERATE/WEAK) | Calibration |
| Kelly Criterion sizing, expected value, and risk classification | Calibration |
| Record predictions for accuracy tracking | Calibration |
| Brier score, calibration curve, edge-vs-market analysis | Calibration |
Trading
Tool | What it does | Tier |
| Route trades to Kalshi, Polymarket, or native parimutuel pools | Edge |
| Check fill status, price, and commission on broker orders | Edge |
| Cancel pending or submitted broker orders | Edge |
| Native pool composition, participant counts, implied odds | Edge |
| Agent balance, P&L, win rate, and pool position count | Edge |
| Multi-source resolution verification and confidence levels | Edge |
| Create custom binary prediction markets | Edge |
| Bulk export: probability history, resolutions, catalogs, arbitrage | Edge |
Admin
Tool | What it does | Tier |
| Generate a free API key (no signup required) | Free |
| Check current API usage, rate limits, and tier status | Free |
| Webhook alerts for probability crosses, mispricings, volume spikes | Edge |
| List active webhook alerts with delivery stats | Edge |
| Delete a webhook alert | Edge |
| System health: connectivity, data freshness, broker status | Free |
Pricing
Per-query pricing. No subscriptions. Free tier requires no API key.
Tier | Cost | Queries/Day | What you get |
Free | $0 | 100 | Probabilities, search, trending, sentiment, stats, health |
Calibration | $0.01/query | 1,000 | + Cross-source comparison, arbitrage, signals, divergence, Kelly sizing, performance tracking |
Edge | $0.05/query | Unlimited | + Broker trading (1% commission), native pools (5% fee), webhooks, data export, market creation |
Revenue model
Stream | Rate | Description |
Intelligence queries | $0 - $0.05/query | Real-time probability, sentiment, signals |
Broker trades | 1% commission | Best-price execution routed to Kalshi or Polymarket |
Native pool trades | 5% fee at resolution | Parimutuel pools alongside Telegram users |
Universal Payment Layer
Agents can also pay per-call without an API key or tier — attach payment proof directly in tool arguments.
Rail | Network | Asset | Fee |
x402 (Coinbase) | Base, Polygon, Solana | USDC | Free (0%) |
Stripe MPP | Fiat | USD (cards, bank) | 2.9% |
TON | TON mainnet | TON | Free (0%) |
// Agent pays per-call — no subscription needed
const result = await client.callTool({
name: "get_signal",
arguments: {
query: "Bitcoin 200K",
x402_payment: {
tx_hash: "0xabc...",
network: "base",
rail: "x402",
},
},
});Get an API key
# Via the MCP server itself (free tier, no signup)
# Call the generate_api_key tool
# Or via Telegram
# Message @TeleKashBot with /apikeyExample
Connect to the server and query a market probability:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
const transport = new StdioClientTransport({
command: "npx",
args: ["telekash-mcp-server"],
});
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
// Get probability for a market
const result = await client.callTool({
name: "get_probability",
arguments: { query: "Will Bitcoin hit $200K by end of 2026?" },
});
console.log(result.content);
// => { probability: { yes: 34, no: 66 }, confidence: { grade: "HIGH", score: 82 }, ... }More examples in the examples/ directory:
quick-start.ts-- Connect, search, get probabilitiesarbitrage-scanner.ts-- Find cross-source mispricingsportfolio-scanner.ts-- Scan markets and build a ranked portfoliomarket-monitor.ts-- Watch a market and log probability changes
Environment Variables
The server works without any credentials (returns demo data). For live market access:
SUPABASE_URL=https://rrkjtdnxkscukexbsrue.supabase.co
SUPABASE_ANON_KEY=your-anon-key
TELEKASH_API_KEY=your-api-key # Optional: enables paid tiers
TELEKASH_PAYMENT_ADDRESS=0x... # Optional: EVM wallet for x402 USDC payments
TELEKASH_TON_ADDRESS=UQ... # Optional: TON wallet for TON payments
STRIPE_SECRET_KEY=sk_... # Optional: Stripe for fiat payments
X402_FACILITATOR_URL=https://x402.org/facilitator # Default: Coinbase facilitatorData Sources
Source | Type | Sync Frequency |
Kalshi | CFTC-regulated US exchange | Every 15 minutes |
Polymarket | Crypto-native exchange | Every hour |
All sources are aggregated, deduplicated, and categorized automatically across 8 categories: crypto, politics, sports, entertainment, finance, weather, tech, science.
Links
License
MIT
Available Tools
9 toolsgenerate_api_keyA
Generate a free TeleKash API key for rate-limited access to prediction market intelligence.
Free tier: 100 calls/day, 7 core tools (probability, markets, search, history, sentiment, stats, trending). Calibration tier ($99/mo): 1,000 calls/day + arbitrage, divergence, and performance tracking tools. Edge tier ($499/mo): Unlimited + TPF signals, Kelly sizing, and market creation.
The API key is returned ONCE — save it immediately. Set it as TELEKASH_API_KEY environment variable.
| Name | Required | Description | Default |
|---|---|---|---|
| owner_id | Yes | Your agent or user identifier (used for key management) | |
| owner_email | No | Contact email (optional, for billing if upgrading) |
TDQS
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 effectively describes key behaviors: the API key is returned only once (ephemeral nature), requires immediate saving, and outlines rate limits and tier differences (free vs. paid). It misses details like error handling or authentication requirements, but covers critical operational aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. However, the tier details (free, calibration, edge) could be more concise, as they occupy multiple lines without adding critical guidance for tool invocation. Most sentences earn their place, but some trimming would improve efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description does a good job covering key aspects: purpose, behavioral traits (key generation, one-time return, tier limits), and usage context. It lacks details on output format or error cases, but for a tool with simple parameters and clear intent, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (owner_id and owner_email). The description does not add any parameter-specific semantics beyond what the schema provides (e.g., it doesn't clarify format or usage examples). Baseline score of 3 is appropriate as the schema handles parameter documentation adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate a free TeleKash API key for rate-limited access to prediction market intelligence.' It specifies the verb ('Generate'), resource ('API key'), and distinguishes it from sibling tools (which are data retrieval tools, not key generation tools).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool: to obtain API access for using other tools. It implicitly suggests alternatives (upgrading tiers for more features) but does not explicitly name when NOT to use it or compare to specific sibling tools. The guidance is practical but lacks explicit exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historyA
Get historical probability changes and trend data for a prediction market over time.
Returns probability snapshots showing how odds, sentiment, and market consensus have shifted over 1h, 24h, 7d, or 30d. Use for trend analysis, momentum detection, volatility assessment, and understanding how predictions evolve. Essential for backtesting strategies, identifying probability swings, and spotting market-moving events.
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | The market UUID or external_id (ticker) | |
| timeframe | No | Time range for history (default: 24h) |
TDQS
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 describes what the tool returns ('probability snapshots showing how odds, sentiment, and market consensus have shifted') and the timeframe options, but doesn't mention important behavioral aspects like rate limits, authentication requirements, error conditions, or pagination for potentially large datasets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with three focused paragraphs: purpose, return values, and usage scenarios. Each sentence adds value, though the third paragraph could be slightly more concise by combining some of the use case examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, 100% schema coverage, but no annotations or output schema, the description provides adequate context about what the tool does and when to use it. However, it lacks details about the return format structure, error handling, and operational constraints that would be important for an agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents both parameters thoroughly. The description adds marginal value by mentioning the timeframe options in context ('over 1h, 24h, 7d, or 30d') but doesn't provide additional semantic context beyond what's in the schema descriptions for market_id and timeframe.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get historical probability changes and trend data') and resource ('for a prediction market over time'). It distinguishes from siblings like get_market_stats, get_probability, and get_sentiment by focusing on historical trends rather than current state or aggregated statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context ('Use for trend analysis, momentum detection, volatility assessment...') and mentions specific applications like backtesting and identifying market-moving events. However, it doesn't explicitly state when NOT to use this tool or name specific alternatives among the sibling tools for different use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_statsA
Get aggregate statistics across all prediction markets — totals, categories, sources, and volume.
Returns total market count, active markets, category distribution, source breakdown (Kalshi vs Polymarket), and aggregate trading volume. Use for market overview, portfolio allocation decisions, or understanding the prediction market landscape.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what data is returned but doesn't mention behavioral aspects like whether this is a read-only operation (implied but not stated), potential rate limits, authentication requirements, or data freshness. The description adds value by specifying the scope ('across all prediction markets') but lacks operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and concise. The first sentence states the core purpose, the second enumerates specific statistics returned, and the third provides usage guidance. Every sentence earns its place with no redundant information, and it's front-loaded with the most important information first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's zero parameters and lack of annotations/output schema, the description provides good contextual completeness. It explains what statistics are returned and when to use the tool. However, without an output schema, it could benefit from more detail about the return format (e.g., whether it's a single object with nested fields). The description is complete enough for basic understanding but has minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters (schema coverage 100%), so the description doesn't need to explain parameters. The baseline for zero parameters is 4, and the description appropriately focuses on what the tool does rather than parameter semantics. It mentions the scope ('across all prediction markets') which helps understand the implicit parameterization.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get aggregate statistics') and resources ('across all prediction markets'), listing the exact types of statistics returned. It distinguishes from siblings like 'list_markets' (which likely lists individual markets) and 'get_trending' (which focuses on trending markets rather than aggregate statistics).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use for market overview, portfolio allocation decisions, or understanding the prediction market landscape.' This provides clear guidance on appropriate use cases, distinguishing it from siblings that serve different purposes like getting specific market probabilities or searching/filtering markets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_probabilityA
Get real-time probability, odds, and likelihood for any prediction market outcome.
Returns YES/NO probabilities (0-100%), trading volume, liquidity depth, and market metadata from Kalshi (CFTC-regulated) and Polymarket. Use this when asked about chances, odds, likelihood, forecasts, or predictions for any event — elections, crypto prices, sports, economics, weather, entertainment.
Example queries:
"What are the odds Trump wins 2028?" → election forecasting
"What's the probability BTC hits $200K?" → crypto price prediction
"Will the Fed cut rates?" → economic forecasting, interest rates
"What's the chance of rain in NYC?" → weather betting
"Who will win the Super Bowl?" → sports odds
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | No | The market UUID or external_id (ticker) to query | |
| query | No | Natural language query to search for a market (alternative to market_id) |
TDQS
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 effectively describes the tool's function and data sources (Kalshi and Polymarket), but lacks details on rate limits, authentication requirements, error handling, or response format specifics. It provides basic context but misses deeper behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with core functionality, followed by usage guidelines and examples. While slightly longer due to examples, every sentence adds value by clarifying scope and application, avoiding redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description provides good contextual completeness. It covers purpose, usage, data sources, and examples, though it could benefit from more detail on response structure or error cases to fully compensate for the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (market_id and query). The description doesn't add specific parameter semantics beyond implying that 'query' can be a natural language search, which is already covered in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get real-time probability, odds, and likelihood') and resources ('prediction market outcome'), distinguishing it from siblings like get_history or get_sentiment by focusing on current probability data rather than historical trends or sentiment analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('when asked about chances, odds, likelihood, forecasts, or predictions for any event') and includes specific examples across domains (elections, crypto, sports, etc.), clearly differentiating it from alternative tools like list_markets or search_markets that might handle broader market discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sentimentA
Get AI-powered sentiment analysis, recommendation, and confidence score for any prediction market.
Returns sentiment score (-1 to 1), actionable recommendation (bullish/bearish/neutral), and AI confidence level. Goes beyond raw probability — analyzes market psychology, crowd wisdom, and directional bias. Use for trade signals, contrarian analysis, or augmenting your own prediction models with market sentiment data.
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | The market UUID or external_id (ticker) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses behavioral traits like returning sentiment score (-1 to 1), actionable recommendation, and AI confidence level, which helps understand output. However, it lacks details on rate limits, error handling, or performance characteristics that would be useful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core functionality. Each sentence adds value, such as explaining the return values and use cases, with no redundant or wasted information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (sentiment analysis with AI) and no output schema, the description does a good job explaining return values (sentiment score, recommendation, confidence). However, it could be more complete by detailing error cases or limitations, especially since annotations are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the market_id parameter. The description does not add any specific meaning or usage details about the parameter beyond what the schema provides, such as examples or constraints, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'AI-powered sentiment analysis, recommendation, and confidence score for any prediction market,' specifying both the action (get analysis) and resource (prediction market). It distinguishes from siblings like get_probability by emphasizing it 'goes beyond raw probability' to analyze psychology and crowd wisdom.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it: 'for trade signals, contrarian analysis, or augmenting your own prediction models with market sentiment data.' However, it does not explicitly state when not to use it or name alternatives among siblings, such as get_probability for raw probability data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendingA
Get prediction markets with the biggest probability swings — momentum detection for trending events.
Finds markets where odds moved most in the last 1h, 24h, 7d, or 30d. Surfaces breaking events, sentiment shifts, and market-moving news. Use when looking for actionable opportunities, volatile markets, or events where consensus is rapidly changing. Returns markets ranked by absolute probability change with direction (up/down) and current odds.
| Name | Required | Description | Default |
|---|---|---|---|
| timeframe | No | Lookback window for detecting swings (default: 24h) | |
| limit | No | Maximum markets to return (default: 10, max: 25) |
TDQS
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 effectively describes key behaviors: it finds markets based on odds movement over specified timeframes, surfaces breaking events and sentiment shifts, and returns ranked markets with direction and current odds. However, it lacks details on rate limits, error handling, or authentication needs, which could be important for a tool accessing market data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with three sentences that each serve a distinct purpose: stating the tool's purpose, detailing its functionality and use cases, and explaining the return format. There is no wasted text, and it is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is mostly complete. It covers purpose, usage, and return values adequately. However, without annotations or an output schema, it could benefit from more details on behavioral aspects like error cases or data freshness, but it still provides sufficient context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, providing clear details for both parameters. The description adds minimal semantic context beyond the schema, mentioning 'Finds markets where odds moved most in the last 1h, 24h, 7d, or 30d,' which aligns with the 'timeframe' parameter but doesn't elaborate further. Since the schema is well-documented, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get prediction markets with the biggest probability swings — momentum detection for trending events.' It specifies the verb ('Get'), resource ('prediction markets'), and scope ('biggest probability swings'), and distinguishes it from siblings like 'list_markets' or 'get_market_stats' by focusing on momentum detection rather than listing or general statistics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Use when looking for actionable opportunities, volatile markets, or events where consensus is rapidly changing.' It also implies alternatives by differentiating its purpose from siblings, such as using 'list_markets' for general listing or 'get_market_stats' for detailed statistics, without needing to name them directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageB
Check your current API usage, rate limits, and tier status.
Returns calls made today, calls remaining, tier, and upgrade options.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 describes the return content (calls made today, calls remaining, tier, upgrade options) which is helpful, but lacks details on rate limits, authentication requirements, error conditions, or whether this counts against API usage itself. It adds some value but leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the purpose, the second details the return values. Every word contributes meaning with zero waste, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides basic completeness by explaining what the tool does and what it returns. However, for a tool that reports on API usage and limits, more detail on behavioral aspects (like whether calling it consumes API calls) would be beneficial. It's adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the input requirements. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose and output. This meets the baseline expectation for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Check', 'Returns') and resources ('API usage, rate limits, and tier status'). It distinguishes from siblings by focusing on API usage metrics rather than market data or key generation. However, it doesn't explicitly differentiate from 'get_history' which might also involve usage tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites, frequency recommendations, or contrast with sibling tools like 'get_history' that might overlap in functionality. Usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketsA
Browse and discover prediction markets across 7 categories with filtering and sorting.
Lists active betting markets from Kalshi, Polymarket, and Metaculus. Filter by category, sort by trading volume, probability, or closing date. 500+ markets available. Categories: sports, crypto, politics, economics, pop_culture, weather, other. Use when exploring what predictions are available, finding trending markets, or discovering betting opportunities.
Example queries:
"Show me crypto prediction markets" → Bitcoin, Ethereum, altcoin forecasts
"What sports markets are trending?" → NFL, NBA, soccer odds
"List political predictions" → elections, legislation, geopolitics
"What economic forecasts are available?" → GDP, inflation, interest rates
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (default: all) | |
| sort_by | No | Sort order (default: volume) | |
| limit | No | Maximum markets to return (default: 10, max: 50) | |
| source | No | Filter by data source (default: all) | |
| jurisdiction | No | Filter by regulatory jurisdiction. US-regulated = Kalshi (CFTC-regulated), international = Polymarket, forecasting = Metaculus (not gambling). Default: all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It mentions '500+ markets available' (scale), 'active betting markets' (scope), and data sources, but lacks details on rate limits, authentication needs, pagination, error handling, or response format. It adequately describes what the tool does but misses operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with core functionality, followed by usage guidance and examples. It's appropriately sized but could be slightly more concise by integrating the category list into the first sentence. The example queries are helpful but add length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is moderately complete. It covers purpose, usage, and high-level behavior but lacks details on response format, error cases, and operational limits. Given the complexity, it should provide more behavioral context to compensate for missing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value by listing categories and mentioning filtering/sorting in general terms, but doesn't provide additional syntax, format, or interaction details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('browse', 'discover', 'lists') and resources ('prediction markets'), and distinguishes it from siblings like 'search_markets' by emphasizing exploration rather than targeted searching. It explicitly mentions the three data sources and 7 categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance with 'Use when exploring what predictions are available, finding trending markets, or discovering betting opportunities,' which clearly differentiates it from siblings like 'search_markets' (likely for targeted queries) and 'get_trending' (likely for a curated list). The example queries further illustrate appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_marketsA
Search 500+ prediction markets by keyword, topic, or natural language query.
Full-text search across Kalshi, Polymarket, and Metaculus. Finds markets matching any topic — politics, crypto, sports, economics, entertainment, science, technology, weather. Returns matching active markets sorted by relevance and trading volume. Use when looking for specific predictions, events, or outcomes to bet on.
Example queries:
"Trump election 2028" → presidential race odds
"Bitcoin price prediction" → BTC price target markets
"Super Bowl winner" → NFL championship odds
"AI regulation" → technology policy predictions
"Fed interest rate" → monetary policy forecasts
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g., 'Trump', 'Bitcoin', 'Super Bowl') | |
| limit | No | Maximum results to return (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: it searches across three specific platforms, returns active markets sorted by relevance and trading volume, and handles natural language queries. It doesn't mention rate limits, authentication needs, or error conditions, but provides substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: first sentence states core function, second expands scope, third explains sorting, fourth gives usage guidance, followed by helpful examples. Every sentence adds value with zero wasted words, and key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 2 parameters, 100% schema coverage, and no output schema, the description is quite complete. It explains what platforms are searched, what types of content are covered, how results are sorted, and when to use it. The main gap is lack of output format details, but given the tool's relative simplicity, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal parameter semantics beyond the schema—it provides example queries that illustrate the 'query' parameter usage but doesn't explain 'limit' beyond what's in the schema. This meets but doesn't exceed baseline expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('search', 'finds', 'returns') and resources ('500+ prediction markets', 'Kalshi, Polymarket, and Metaculus'). It distinguishes from sibling tools like 'list_markets' by specifying full-text search across multiple platforms rather than simple listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use when looking for specific predictions, events, or outcomes to bet on.' This clearly indicates when to use this tool versus alternatives like 'list_markets' or 'get_trending', which likely serve different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: generate_api_key handles authentication, get_history provides historical trends, get_market_stats gives aggregate data, get_probability offers real-time odds, get_sentiment analyzes market psychology, get_trending identifies momentum, get_usage checks API limits, list_markets browses categories, and search_markets performs keyword searches. The descriptions clearly differentiate their functions, making misselection unlikely.
All tool names follow a consistent verb_noun pattern using snake_case, such as generate_api_key, get_history, list_markets, and search_markets. This uniformity makes the toolset predictable and easy to navigate, with no deviations in naming conventions.
With 9 tools, the count is well-scoped for a prediction market intelligence server, covering core functionalities like data retrieval, analysis, and management without being overwhelming. Each tool serves a specific, necessary role in the domain, making the set appropriately sized.
The toolset provides comprehensive coverage for accessing and analyzing prediction market data, including real-time probabilities, historical trends, sentiment, and market discovery. A minor gap exists in lacking tools for direct market interaction (e.g., placing bets or managing positions), but the described tools support core intelligence workflows effectively.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.
Polymarket + Hyperliquid + macro for AI agents. 38 tools, signal backtest, SSE streaming. Free tier.
Calibrated probabilistic foresight for AI agents, powered by live prediction-market signal.
Financial data for AI agents: crypto data, Polymarket odds, weather/oil calibration, trust scoring.
Related MCP Servers
- AlicenseAqualityBmaintenance24/7 autonomous monitoring and edge detection for prediction markets (Kalshi & Polymarket). Features causal tree analysis, orderbook depth tracking, cross-venue comparison, and real-time alerts.1619612MIT
- AlicenseAqualityFmaintenanceProvides prediction market intelligence, research, and strategy signals for platforms like Kalshi, Polymarket, and Robinhood. It enables AI assistants to perform market screening, arbitrage detection, and deep causal analysis to support informed trading decisions.271MIT

meridian-edge-mcpofficial
AlicenseAqualityDmaintenanceProvides AI assistants with real-time prediction market consensus data, including probabilities, opportunities, signals, and settlements.5MIT- AlicenseNot gradedqualityCmaintenanceEnables AI agents to autonomously trade, analyze, and manage positions on Polymarket prediction markets with 45 tools, real-time WebSocket monitoring, and enterprise-grade safety features.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TeleKashOracle/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server