Full-featured MCP server for Kalshi prediction market trading with weather strategy tools
The server presents 23 tools with generally clear names and structured schemas. Most tools have descriptions and reasonable parameter definitions. However, there are notable gaps: several descriptions are terse (under 50 chars), many parameters lack detailed constraints, output schemas are not formally documented, and error handling guidance is minimal. The tools are well-organized into logical domains (trading, portfolio, forecasting, analysis), but lack the maturity expected of production-grade tools. Naming is verb-forward and consistent (get_*, place_*, calculate_*), which is positive. Parameters mostly have types and brief descriptions, but lack context about ranges, dependencies, and error conditions. This is a solid community effort but falls short of enterprise standards.
Apply edge dampening for high-edge trades due to edge paradox.
Calculate raw edge between forecasted probability and market implied probability.
Cancel an order.
Get ALL fills with cursor pagination.
Get all open markets across all series.
Get available cash balance in dollars.
Get consensus forecast from all available weather sources for a city and date.
place_order tool lacks critical safety documentation. Missing dry-run/confirmation pattern and no guidance on reversibility or error recovery.
Output schemas are not formally documented. Tools return data structures (markets, orders, positions, forecasts) but LLMs cannot see the response field definitions.
Many tool descriptions are terse (<50 chars) and lack context on when to use the tool vs. similar alternatives. E.g., 'Get list of markets' does not explain filtering options or pagination behavior.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get current weather observation for a city from METAR/ASOS stations.
Get trade fills with optional ticker filter and limit.
Get single market details by ticker.
Get list of markets with optional filtering by series ticker, status, and limit.
Get single order details.
Get order book for a market.
Get orders with optional status filter.
Get total portfolio value (cash + positions) in dollars.
Get all positions.
Get all available series (market templates).
Get current trading timing context based on Chicago CT clock and NWS/GFS update cycles.
Get today's high and low temperatures from METAR observations.
Analyze temperature trend from recent METAR history and determine trading signal.
Calculate Kalshi maker fee impact on edge.
Parse a Kalshi weather ticker to extract components like city, temperature type, date, and threshold.
Place an order on Kalshi.
Parameter constraints are under-specified. E.g., 'yes_price' and 'no_price' in place_order lack min/max bounds (1-99 cents stated in description but not in schema). 'limit' parameters lack explicit maximum values.
No error handling guidance. Tools do not explain what errors are retryable, user-fixable, or fatal. E.g., place_order does not document what happens on insufficient balance, invalid ticker, or network failure.
Idempotency not addressed. Canceling an order or placing a trade multiple times could have unintended side effects. No guidance on safe retry semantics.
Tool relationships and dependencies not documented. E.g., parse_ticker should be called before calculate_edge, but this workflow is not explained in descriptions.
get_consensus_forecast and get_todays_extremes accept city codes (NYC, CHI, etc.) but no enumeration is provided in schema. Descriptions list valid values inline, which LLMs struggle to parse reliably.
place_order parameter dependencies are under-documented. E.g., yes_price/no_price only apply when order_type='limit', but this conditional is not stated in parameter descriptions.
Pagination support is incomplete. get_markets, get_fills, get_all_fills have 'limit' but no 'offset', 'cursor', or 'next_cursor' support documented.