Election Odds Desk
Server Details
Kalshi odds for 2026 Senate, governor and House races, the Senate map, and the next Fed meeting.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- predictionmarketspicks/mcp
- GitHub Stars
- 0
- Server Listing
- PredictionMarketsPicks Quant
TDQS
Scored across 5 tools
best_price, fed_rate_odds, race_odds, and senate_map all involve prediction-market odds, so their boundaries require careful reading: best_price is fee-inclusive cross-venue cheapest, fed_rate_odds is Fed-specific strike/path data, race_odds is one race, and senate_map is the full Senate overview. market_pulse is clearly separate. Mostly distinct, with some overlap between race_odds and senate_map and between best_price and the odds tools.
All five names are lowercase snake_case descriptive noun phrases: best_price, fed_rate_odds, market_pulse, race_odds, senate_map. The set follows a predictable, readable convention throughout, even though it is not verb_noun style.
Five tools is well-scoped for an election odds desk: one cross-venue price tool, one Fed tool, one macro tool, one single-race tool, and one Senate map tool. Each earns its place without obvious redundancy.
The surface covers key 2026 midterm workflows (single race odds, Senate map, Fed odds, macro regime) plus cross-venue best pricing. Minor gaps remain around full governor/House map overviews, candidate-level search, and election calendar data, but agents can largely work around these via race_odds.
Available Tools
5 toolsbest_priceBest Price After Fees — Kalshi vs Polymarket US vs NovigARead-onlyInspect
Use for "where is it cheapest to buy", "Kalshi or Polymarket US for the Bears game" and "cheapest venue for the Georgia Senate race". The same contract on Kalshi, Polymarket US and Novig as the cost to buy one contract including each venue's taker fee, with the cheapest named. Sports games (team, league or matchup), 2026 midterm races (state, slug or district) or the next FOMC meeting. Ranked by price only.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text: a team, matchup, race or "next Fed meeting". | |
| race | No | A 2026 race: state, slug (georgia-senate) or district (AZ-01). | |
| teams | No | One or two teams, e.g. "Bears" or "NE @ CHI". | |
| league | No | NBA, NHL, NFL or MLB. | |
| meeting | No | Any value asks for the next FOMC meeting. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive, and the description adds the substantive behavioral facts: fees are included, results are "ranked by price only", and a cheapest venue is named. No mention of coverage gaps or what happens when a contract is missing on one venue, which is the main remaining blind spot.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads three quoted intents before the definition, then scope and ranking rule. Some duplication between the example list and the supported-domain sentence (sports and races appear twice), but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the necessary work by stating what comes back (per-venue cost for one contract, fees included, cheapest named, price-ranked). A caller can act on it; only edge-case behavior and result-shape detail are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five params are already documented with examples. The description adds only category-level mapping (sports -> team/league/matchup, races -> state/slug/district, "next Fed meeting"), not the free-form-vs-structured relationship or whether params combine — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "the cost to buy one contract including each venue's taker fee, with the cheapest named" across Kalshi, Polymarket US and Novig. That fee-inclusive comparison framing clearly separates it from the sibling odds tools (race_odds, market_pulse, fed_rate_odds).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Quoted example queries ("where is it cheapest to buy", "cheapest venue for the Georgia Senate race") and an explicit supported-domain list (sports games, 2026 midterms, next FOMC meeting) give a clear entry condition. It never says when to prefer a sibling such as race_odds for raw odds instead, so no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fed_rate_oddsFed Rate Odds (FOMC)ARead-onlyInspect
Use for "will the Fed cut, hold or hike" and "next FOMC meeting odds". Live Kalshi odds for each remaining 2026 FOMC meeting: the next meeting's full strike breakdown and days-until, the rate path, the current fed funds rate, and a next-meeting cross-venue check against Polymarket and CME futures, with the gap in pp.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| sources | No | |
| by_venue | No | Next-meeting odds by venue (Kalshi, Polymarket, CME futures). |
| tell_user | No | Show this sentence to the user first. |
| timestamp | No | |
| needs_input | No | |
| example_call | No | |
| next_meeting | No | Next FOMC meeting: date, days until, strike breakdown. |
| divergence_pp | No | Headline cross-venue gap for the next meeting, pp. |
| data_freshness | No | |
| rate_path_2026 | No | Implied outcome at each remaining 2026 meeting. |
| current_target_range | No | Current fed funds target range. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, and the description adds meaningful context beyond that: the data is live Kalshi pricing, scoped to remaining 2026 FOMC meetings, and includes a gap-in-pp comparison against Polymarket and CME futures. It stops short of stating refresh cadence, latency, or coverage caveats for meetings beyond the next one.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage trigger before the payload inventory. The second sentence is a dense list of five returned elements, which is slightly crowded but each clause maps to a distinct output component rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters, an output schema present, and annotations carrying the safety profile, the description supplies everything else an agent needs: when to call it, what venue the odds come from, the time horizon, and what the cross-venue gap represents. Nothing material is missing for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The schema is empty and no parameter-level meaning is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Fed/FOMC rate odds) and enumerates its concrete payload: the next meeting's strike breakdown, days-until, rate path, current fed funds rate, and a cross-venue check. It quotes the exact user questions it answers, which cleanly separates it from siblings like base_rate_gap and market_pulse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It opens with an explicit 'Use for' trigger covering both 'will the Fed cut, hold or hike' and 'next FOMC meeting odds', giving the agent a clear selection condition. It does not name an alternative tool or state when not to use it, so the routing guidance stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_pulseMarket Pulse — MacroARead-onlyInspect
The US macro-health composite (0–100) and regime plus the six category scores (growth, labor, inflation, rates, liquidity, sentiment). Returns the composite, the regime call and 2 category scores without an account, 4 to a signed-in account, and all six with Pro. Use for "how is the US economy", "macro regime", "risk-on or risk-off".
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | macro = the US macro-health composite (the only topic). One of: macro. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/non-destructive, so the description is free to add the non-obvious part — tier-based response gating: composite+regime+2 categories unauthenticated, 4 signed-in, all six with Pro. That is exactly the kind of auth/entitlement behavior an agent cannot get from the schema, and it materially affects how results should be interpreted or explained to a user.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences: the return payload and its components come first, then entitlement gating, then trigger phrases. Every clause carries information; nothing is boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description bears full responsibility for describing return values — and it does, enumerating the composite, regime, and category scores plus which tiers receive how many. Combined with the entitlement disclosure, an agent has everything needed to call and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single `topic` parameter is fully described there, including the enum. The description only reinforces that macro is "the only topic", adding no syntax, format, or default behavior beyond the schema — baseline 3 for a high-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States precisely what is returned: a 0–100 US macro-health composite, a regime call, and six named category scores (growth, labor, inflation, rates, liquidity, sentiment). The resource is unambiguous, but the description never contrasts itself with siblings (best_price, fed_rate_odds, race_odds, senate_map), relying on domain obviousness for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides three concrete trigger phrasings ("how is the US economy", "macro regime", "risk-on or risk-off") that map directly onto the tool, which is clear usage context. It stops short of explicit exclusions or naming alternative tools, so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
race_odds2026 Race Odds — one Senate, governor or House race with every Kalshi legARead-onlyInspect
Use for "who wins the Kansas Senate race" and "Michigan governor odds". Live Kalshi odds for one 2026 Senate, governor or competitive House race, by state, code, slug or district ("TX-34"): every leg's price, volume and link, the seat holder and rating, forecaster bands, and the race page. Prices are never estimated.
| Name | Required | Description | Default |
|---|---|---|---|
| race | Yes | State name or code, a race slug (kansas-senate, michigan-governor, tx-34-house), or a House district (TX-34). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true). Beyond that, the description discloses the payload contents (every leg's price, volume, link, seat holder, rating, forecaster bands) and asserts a data-quality guarantee ("Prices are never estimated"), which is real added context. It omits freshness/caching or coverage caveats for races with no market, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case, then the resource, then swap-format flexibility, then the return contents — every clause carries information. It is a long, dense sentence and the parenthetical adds clutter, but nothing is redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description carries the return-value burden and does list the returned fields plus a reliability guarantee, which is enough to call the tool confidently. Missing only edge-case behavior for ambiguous or nonexistent races.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description already enumerates state name/code, slug, and district with the "TX-34" example. The description restates the same set ("by state, code, slug or district") without adding new syntax, disambiguation rules, or normalization behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope: "Live Kalshi odds for one 2026 Senate, governor or competitive House race." The word "one" plus the race-type enumeration implicitly separates it from senate_map (all races) and fed_rate_odds (rate markets), so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Leads with "Use for ..." and supplies two concrete trigger queries ("who wins the Kansas Senate race", "Michigan governor odds"), which is clear positive guidance. It does not name alternatives or say when NOT to use it (e.g., other years, national maps), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
senate_map2026 Senate Map — every seat, market price vs structure rating vs forecastersARead-onlyInspect
Use for "2026 Senate map" and "which Senate seats are toss-ups". Every 2026 Senate seat: holder and role, structure rating, forecaster bands where tracked, and the live Kalshi price (Democrat win probability where provable), closest race first, with a page URL per seat. Prices are never estimated — an unpriced seat returns null.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered; the description adds genuinely new behavior: results are sorted closest race first, unpriced seats return null rather than an estimate, and each seat carries a page URL. The only missing piece is whether coverage is guaranteed for all seats or rate-limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the use case before the payload contents and the null-price guarantee. Slightly dense with field enumerations, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the return-value burden and does so: field list, ordering, URL per seat, and null semantics for unpriced seats. An agent knows what it will get back without invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the schema cannot be improved upon. The description correctly implies a parameterless full-map call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (every 2026 Senate seat) and enumerates exactly what each row contains — holder/role, structure rating, forecaster bands, Kalshi price, page URL. It is unmistakably about Senate elections, but it never differentiates itself from the sibling race_odds, which an agent could plausibly pick instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete trigger phrasing ("2026 Senate map", "which Senate seats are toss-ups"), which is more than most definitions offer. However, it states no exclusions and does not say when to prefer race_odds or market_pulse over this tool, so the routing decision is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
best_price1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
fed_rate_odds2 fields changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema" - removed
Output schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
market_pulse1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
race_odds1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
- Changed
senate_map1 field changed- removed
Input schema / $schemaRemoved value: -"https://json-schema.org/draft/2020-12/schema"
1 tool update
- Added
best_price
4 tool updates
- First observed
fed_rate_odds - First observed
market_pulse - First observed
race_odds - First observed
senate_map
Related MCP Connectors
Cross-venue prediction market odds (Polymarket, Kalshi, PredictIt, Manifold) with arbitrage signals
Live Kalshi and Polymarket data: EV edges, cross-venue arbitrage, markets, and whale trades.
Calibrated probabilities for Kalshi markets, a news wire and Polymarket outliers (Pro).
Polymarket, Kalshi + 6 more prediction markets: live odds, volume, movers. Read-only, no auth.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceUS election forecasts with a public accuracy record — win probabilities for every 2026 Senate, House and Governor race, congressional voting records and net worth, and difficulty-adjusted accuracy ratings for 61 forecasters, pollsters and prediction markets.MIT
- AlicenseAqualityDmaintenancePrediction market probability oracle for AI agents. 26 tools across 500+ live markets from Kalshi and Polymarket. Cross-source arbitrage detection, structured TPF signals, Kelly Criterion sizing, agent performance tracking, and webhook alerts.921 npm1MIT
- AlicenseAqualityBmaintenance24/7 autonomous monitoring and edge detection for prediction markets (Kalshi & Polymarket). Features causal tree analysis, orderbook depth tracking, cross-venue comparison, and real-time alerts.16196 npm12MIT
- AlicenseNot gradedqualityAmaintenanceCalibrated probability forecasts for any resolvable question — with evidence, prediction-market edge (Polymarket/Kalshi), and a live resolved track record.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.