Real-money US political prediction market MCP server for PredictIt (predictit.org). Provides keyless public market-data API access to ~250 markets focused on US politics (elections, control of Congress, nominations, primaries). Contract prices are 0–1 dollars and read directly as implied probabilities.
Three well-named tools with clear, detailed descriptions (150 - 250 chars each). All tools have complete input schemas with typed properties and required fields. Naming follows verb_noun pattern (list_, get_, search_). Descriptions explain WHAT, WHEN, and domain context (US politics, keyless, ~250 markets). Output structure is documented in descriptions. However, parameter descriptions lack format constraints (e.g., 'limit' has no min/max bounds stated), and no output schema is formally documented. Error handling is basic (generic error objects). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only operations.
Get one PredictIt market by id with ALL of its contracts. Contract prices are implied probabilities (0–100%). Keyless. Example id: 7589 (2026 Republican House seats). Use list_markets or search_markets to find ids.
List active PredictIt prediction markets (real-money, US-politics-focused: elections, control of Congress, nominations, primaries; ~250 markets total). Contract prices are implied probabilities (0–100%). Keyless. Returns compact markets with up to 8 contracts each.
Search PredictIt markets by name (client-side over all ~250 markets; PredictIt has no search endpoint). US-politics-focused. Contract prices are implied probabilities (0–100%). Keyless.
Parameter constraints not documented in descriptions. 'limit' accepts 1 - 60 but description only says 'default 25, max 60', no minimum stated. 'query' is required but no length/pattern constraints given.
Output schema not formally documented. Descriptions mention 'compact markets with up to 8 contracts' and 'ALL contracts' but no structured schema (field names, types, nesting) is provided. LLMs must infer output structure from code.
No tool annotations. All three tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. This prevents clients from optimizing caching and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Error handling is generic. callTool() catches all errors and returns {error: message}, but does not categorize errors (retryable vs. fatal) or provide recovery guidance. E.g., 'market not found' should suggest using list_markets or search_markets.
No pagination support. list_markets returns up to 60 markets but does not support offset/cursor for fetching beyond that. If PredictIt has ~250 markets, agents cannot discover all of them.