Rekko MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REKKO_API_KEY | Yes | Your API key for rekko.ai (get one at rekko.ai/dashboard). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_marketsB | List current prediction markets from Kalshi and Polymarket. Args: source: Filter by platform: "kalshi", "polymarket", or "" for all. limit: Maximum number of markets to return (1-100). |
| get_marketA | Get detailed information about a specific prediction market. Args: market_id: Platform-specific market identifier (e.g. Kalshi ticker or Polymarket slug). source: Platform hint: "kalshi", "polymarket", or "" to search both. |
| search_marketsA | Search prediction markets by keyword in market title. Args: query: Search query string to match against market titles. limit: Maximum number of results to return. |
| get_market_historyB | Get price history for a prediction market over a configurable period. Args: platform: Platform: "kalshi" or "polymarket". market_id: Platform-specific market identifier. period: History window: "48h", "7d", or "30d". max_points: Maximum data points to return. |
| get_resolutionA | Get resolution intelligence for a market — time urgency, mechanism, theta estimate. Args: platform: Platform: "kalshi" or "polymarket". market_id: Platform-specific market identifier. |
| get_execution_guidanceA | Get execution guidance for a market — spread analysis, slippage estimate, order recommendation. Args: platform: Platform: "kalshi" or "polymarket". market_id: Platform-specific market identifier. |
| screen_marketsA | Batch screen markets by score, volume, or specific IDs. Returns scored markets with an action recommendation: "analyze", "watch", or "skip". Args: market_ids: Optional list of specific market IDs to screen. platform: Filter by platform: "kalshi", "polymarket", or "" for all. min_volume_24h: Minimum 24h volume filter. min_score: Minimum composite score filter. limit: Maximum number of results to return. |
| get_calibrationA | Get signal accuracy and calibration metrics — Brier score, hit rates, total signals. Args: category: Filter by category (e.g. "crypto", "politics") or "" for all. period: Time period: "7d", "30d", "90d", or "all". mode: Trading mode: "shadow" or "live". |
| analyze_marketA | Start a deep research analysis pipeline for a prediction market bet. Returns immediately with an analysis_id. Poll with check_analysis_status every 5 seconds until complete, then retrieve results with get_analysis. Args: bet_text: Description of the bet or market question to analyze. platform: Source platform hint: "kalshi", "polymarket", or "". |
| check_analysis_statusA | Check the current status of a running or completed analysis. Args: analysis_id: Analysis identifier returned by analyze_market. |
| get_analysisA | Retrieve the full structured analysis result for a completed analysis. Includes probability estimate, edge assessment, scenarios, key factors, risks, and trading recommendation. Args: analysis_id: Analysis identifier for a completed analysis. |
| list_analysesB | List recent analyses with summary information. Args: limit: Maximum number of analyses to return. |
| get_strategyA | Run a full analysis and return a strategy signal with causal decomposition. This is a blocking call that takes 30-90 seconds. For async control, use analyze_market + check_analysis_status + get_analysis instead. Args: market_query: Description of the bet or market question to analyze. risk_limit: Reserved for position sizing constraints. |
| get_portfolio_strategyA | Get a portfolio-aware strategy signal with position context and correlation analysis. Args: market_query: Description of the bet or market question to analyze. portfolio: Optional list of current positions (dicts with ticker, side, size_usd). bankroll_usd: Total bankroll in USD for position sizing. max_position_pct: Maximum fraction of bankroll per position. |
| get_consensusB | Get consensus probability from aggregated agent trades. Args: market_id: Platform-specific market identifier. platform: Platform: "kalshi" or "polymarket". period: Lookback period: "48h", "7d", or "30d". |
| get_arbitrageA | Get cross-platform arbitrage opportunities between Kalshi and Polymarket (cached). Args: min_spread: Minimum spread threshold (0.0-1.0). Default 0.02 (2%). |
| get_arbitrage_liveA | Run a fresh cross-platform arbitrage scan (may take 10-30 seconds). Args: min_spread: Minimum spread threshold (0.0-1.0). Default 0.02 (2%). |
| get_correlationA | Compute cross-market correlation graph for portfolio diversification analysis. Args: market_ids: List of market IDs to correlate (minimum 2). platform: Platform: "kalshi" or "polymarket". period: Lookback period: "48h", "7d", or "30d". |
| place_shadow_tradeA | Place a paper (shadow) trade on a prediction market for tracking purposes. Args: ticker: Market ticker symbol (e.g. "KXBTC-100K"). side: Trade direction: "yes" or "no". size_usd: Trade size in USD. |
| report_tradeA | Report a trade for consensus probability aggregation. Args: market_id: Platform-specific market identifier. platform: Platform: "kalshi" or "polymarket". side: Trade direction: "yes" or "no". size_usd: Trade size in USD. price: Execution price (0.0-1.0). |
| get_portfolioB | Get current portfolio positions and performance summary. Args: mode: Portfolio mode: "shadow" for paper trades, "live" for real trades. |
| get_performanceB | Get aggregate trading performance statistics. Args: mode: Portfolio mode: "shadow" for paper trades, "live" for real trades. |
| check_resolutionsA | Check all open trades for market resolution and update P&L. |
| run_scraperA | Fetch fresh market data from a platform scraper. Args: source: Which scraper to run: "kalshi", "polymarket", or "arbitrage". |
| create_webhookA | Register a webhook for real-time event notifications. Args: url: HTTPS URL to receive POST notifications. events: Event types: "whale_alert", "price_shift", "analysis_complete". secret: Optional shared secret for HMAC signature verification. |
| list_webhooksB | List registered webhooks. |
| delete_webhookB | Remove a registered webhook. Args: webhook_id: Webhook identifier returned by create_webhook. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 27 tools
Most tools have distinct purposes, but there is notable overlap between analyze_market/get_strategy and get_arbitrage/get_arbitrage_live, which could confuse agents. Descriptions help clarify differences, but the boundaries are not always sharp.
Tool names follow a highly consistent verb_noun pattern throughout, such as analyze_market, check_analysis_status, get_analysis, and list_markets. There are no deviations in naming conventions, making the set predictable and readable.
With 27 tools, the count feels excessive for a prediction market analysis server, leading to potential complexity and overlap. A more focused set of 10-15 tools could better serve the domain without overwhelming agents.
The tool surface comprehensively covers the prediction market domain, including analysis, trading, portfolio management, data retrieval, and webhooks. There are no obvious gaps, supporting full CRUD/lifecycle operations and agent workflows effectively.