MCP server for real-time prediction market data from Polymarket, PredictIt, and Kalshi
Single tool with adequate naming but significant gaps in schema documentation, parameter descriptions, and output structure. The tool name 'get-prediction-markets' correctly uses a verb prefix and is reasonably descriptive. However, the input schema is minimal (only 'keyword' parameter), output structure is not formally documented, and error handling relies on text narratives rather than structured error classification. The tool returns formatted text rather than structured JSON, making it difficult for agents to extract and reuse specific market data downstream.
Get prediction market prices from Polymarket, PredictIt, and Kalshi
Output schema not documented. Tool returns text/markdown formatted responses rather than structured JSON objects with typed fields. This forces LLMs to parse unstructured output and makes downstream tool composition impossible (agent cannot extract market_id, price, or probability for follow-up actions).
Input parameters lack detailed descriptions and constraints. The 'keyword' parameter has only a basic description and one example ('trump'). Missing: expected keyword types (e.g., political event, sports outcome, financial metric), what happens if no match is found, and whether searches are case-sensitive or fuzzy-matched.
Tool description lacks clarity on when to use it and what data it returns. Current: 'Get prediction market prices from Polymarket, PredictIt, and Kalshi.' Missing: Does it return all markets or only matching ones? What fields are included in each result? What do the price/probability fields represent? What are typical use cases?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 39 | - | v1 |
Error handling is narrative-only, not actionable. When all platforms fail or no markets are found, tool returns plain text messages. Agents cannot programmatically distinguish error types (retryable vs. permanent), cannot extract partial results, and cannot decide whether to suggest alternative searches or retry.
No pagination or result limiting documented. Tool accepts only a 'keyword' parameter; no limit, offset, page, or max_results parameter visible. If keyword matches hundreds of markets, response could exceed context window. Tool should document max result count and offer pagination.
No documentation of which market data is included in response. Code shows different structures for Polymarket (question + odds), PredictIt (name + contracts), and Kalshi (title + markets + bid/ask). Response schema should document all possible fields and their meanings (question, odds, lastTradePrice, yesBid, yesAsk, etc.).
Tool attempts to fetch from three independent APIs with independent error handling, but returns no indication of which platforms succeeded or failed beyond a warning message. Agent cannot know which markets came from which source or retry only failed sources.