MCP server for interacting with Kalshi prediction markets - trade, manage portfolio, and discover markets.
Strong foundation with 15 well-named tools covering market discovery, trading, and portfolio management. All tools have descriptions (avg 120 chars) and explicit input schemas with types. Naming follows verb_noun convention (GET_*, CREATE_*, CANCEL_*). However, parameter descriptions are sparse, many lack context on format, constraints, or when to use them. Output schemas are not documented, forcing LLMs to infer response structure. Error handling is absent from visible code. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification (READ_ONLY vs WRITE). Pagination is well-designed (cursor + limit) but response field naming could be more consistent.
Cancel multiple orders at once (up to 20 orders per batch).
Cancel an existing open order by its ID.
Create a new order to buy or sell contracts in a prediction market. Use limit orders with a price, or market orders for immediate execution.
Decrease the quantity of an existing order. This is the only way to reduce order size without fully canceling.
Get the current account balance and portfolio value. Values are returned in dollars.
Get your trade fill history. A fill occurs when your order is matched with another trader.
Output schemas not documented. LLMs cannot infer response structure (fields, types, nested objects). Forces agents to guess what data is available after each call.
Parameter descriptions lack actionable constraints. 'Filter by market ticker' does not explain format (e.g., 'INXD-25JAN20'), length limits, or when to use comma-separated vs single values. LLMs cannot validate input without explicit format guidance.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked READ_ONLY or WRITE in metadata but not in MCP schema. Agents cannot determine safety/idempotency from tool definition alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Get detailed information about a specific prediction market by its ticker, including current prices, volume, open interest, and settlement rules.
List and discover prediction markets on Kalshi. Markets represent binary outcomes users can trade on. Returns paginated results with market details including ticker, title, prices, and volume.
Get the current orderbook for a market showing bid prices and quantities for both Yes and No sides.
Get detailed information about a specific order by its ID.
Get your orders with optional filtering by market, status, or time range.
Get your current portfolio positions showing market exposure, cost basis, and P&L for each position.
Get information about a series, which is a template for recurring events (e.g., monthly jobs reports, daily weather).
Get your settlement history showing resolved markets and their payouts.
Get recent public trades across all markets or for a specific market. Each trade shows price, quantity, and timestamp.
CREATE_ORDER has complex conditional parameter logic (yesPrice required for yes side, noPrice for no side) but dependencies are not documented. LLMs may pass both or neither, causing silent failures.
No error handling guidance in visible code. Tools do not return actionable recovery hints (e.g., 'Order not found. Try GET_ORDERS to list active orders'). Agents cannot self-correct on failures.