voxodds

All-in outcome rankings with live depth, fees, verified rules, EV checks, and track records.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
81%
命名质量
98%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,770token 数(工具定义)
~1.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.73%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "voxodds": {
      "url": "https://voxodds.com/mcp"
    }
  }
}

远程端点

https://voxodds.com/mcpstreamable-http

它能做什么

工具清单

工具(18)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟡submit_forecast(market_id, outcome, probability, forecaster_id)

Submit YOUR probability forecast on a live prediction market and build a public, audited track record. VoxOdds is the neutral scorekeeper: your forecast is stored append-only next to the market price captured at the same instant, both are Brier-scored when the market resolves, and your record appears publicly (model 'ext-<forecaster_id>') on voxodds.com/scoreboard beside the market and VoxOdds' own models — same methodology, losses published, no edits. Use list_trending_markets to find a market_id. `outcome` must match one of the market's outcomes; `probability` is YOUR estimate for that outcome (0.01-0.99); `forecaster_id` is your stable handle (3-32 chars, a-z 0-9 dash). Free; forecasts cannot be deleted or revised.

输入模式

{
  "type": "object",
  "properties": {
    "market_id": {
      "description": "Market id from list_trending_markets or get_market_odds",
      "title": "Market Id",
      "type": "string"
    },
    "outcome": {
      "description": "Exact outcome name of that market, e.g. 'Yes'",
      "title": "Outcome",
      "type": "string"
    },
    "probability": {
      "description": "Your probability for that outcome, 0.01-0.99",
      "title": "Probability",
      "type": "number"
    },
    "forecaster_id": {
      "description": "Your stable public handle: 3-32 chars, a-z, 0-9 and dashes",
      "title": "Forecaster Id",
      "type": "string"
    }
  },
  "required": [
    "market_id",
    "outcome",
    "probability",
    "forecaster_id"
  ],
  "title": "submit_forecastArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "submit_forecastOutput"
}
🟢get_market_odds(question)

Get live prediction-market odds for a real-world event, phrased as a natural language question. Call this when the user asks about the probability, odds, or likelihood of any future event (elections, sports results, crypto prices, Fed decisions, geopolitics). Example: "will France win the World Cup". Returns the best-matching market with implied probabilities and source links. For which venue fills the SAME contract cheaper, use list_executable_opportunities (all matched pairs) or compare_executable_quotes (one pair) instead.

输入模式

{
  "type": "object",
  "properties": {
    "question": {
      "description": "Natural-language question about a future event, e.g. 'Will the Fed cut rates in December?'",
      "title": "Question",
      "type": "string"
    }
  },
  "required": [
    "question"
  ],
  "title": "get_market_oddsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_market_oddsOutput"
}
🟢get_executable_quote(platform, market_id, side, amount_usd)

Walk the current public order book for an all-in cash-sized BUY quote on one exact contract. `platform` is polymarket or kalshi; `market_id` is the Polymarket market id or Kalshi ticker returned by search; `side` is the outcome to buy. Returns best bid/ask, depth-weighted average fill, worst consumed level, shares, estimated taker fee, effective average price, and unfilled cash. The budget includes the fee estimate. Venue-side rounding can vary with actual fills, and this tool does not assert cross-venue contract equivalence. Single venue only; to compare both venues for the same contract use compare_executable_quotes.

输入模式

{
  "type": "object",
  "properties": {
    "platform": {
      "description": "'polymarket' or 'kalshi'",
      "title": "Platform",
      "type": "string"
    },
    "market_id": {
      "description": "Polymarket market id or Kalshi ticker",
      "title": "Market Id",
      "type": "string"
    },
    "side": {
      "default": "Yes",
      "description": "Outcome to buy, usually 'Yes' or 'No'",
      "title": "Side",
      "type": "string"
    },
    "amount_usd": {
      "default": 100,
      "description": "All-in budget in USD, estimated taker fees included",
      "title": "Amount Usd",
      "type": "number"
    }
  },
  "required": [
    "platform",
    "market_id"
  ],
  "title": "get_executable_quoteArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_executable_quoteOutput"
}
🟢compare_executable_quotes(polymarket_id, kalshi_ticker, side, amount_usd)

Fetch size-aware order-book fills and estimated taker fees for one Polymarket contract and one Kalshi contract, then compare their complete rules. It only names a best venue when the pair has been explicitly human-reviewed as equivalent. Similar titles with different settlement criteria return `comparable: false` plus blockers instead of a fabricated spread or arbitrage. Use this when you already know both ids of one pair; to scan every matched pair use list_executable_opportunities.

输入模式

{
  "type": "object",
  "properties": {
    "polymarket_id": {
      "description": "Polymarket market id",
      "title": "Polymarket Id",
      "type": "string"
    },
    "kalshi_ticker": {
      "description": "Kalshi market ticker",
      "title": "Kalshi Ticker",
      "type": "string"
    },
    "side": {
      "default": "Yes",
      "description": "Outcome to buy on both venues, usually 'Yes' or 'No'",
      "title": "Side",
      "type": "string"
    },
    "amount_usd": {
      "default": 100,
      "description": "All-in budget in USD per venue, estimated taker fees included",
      "title": "Amount Usd",
      "type": "number"
    }
  },
  "required": [
    "polymarket_id",
    "kalshi_ticker"
  ],
  "title": "compare_executable_quotesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "compare_executable_quotesOutput"
}
🟢list_executable_opportunities(amount_usd, family, side)

Rank both YES and NO across every human-reviewed equivalent Polymarket–Kalshi pair. Each row walks current public depth within the all-in budget, includes estimated taker fees, and links to the lower effective-price venue. Contracts whose rules changed or whose requested size cannot be quoted are omitted and reported as unavailable. Optional `family` uses a family key returned by the tool; optional `side` is Yes or No. Use this when the user asks where the largest currently executable cross-venue price differences are. This answers 'where is it cheaper to buy one side'; for buying opposite sides on both venues for a covered payout use list_arbitrage_candidates.

输入模式

{
  "type": "object",
  "properties": {
    "amount_usd": {
      "default": 100,
      "description": "All-in budget in USD, estimated taker fees included",
      "title": "Amount Usd",
      "type": "number"
    },
    "family": {
      "default": "",
      "description": "Optional market family key returned by this tool, e.g. 'democratic_nominee_2028'",
      "title": "Family",
      "type": "string"
    },
    "side": {
      "default": "",
      "description": "Optional 'Yes' or 'No' to restrict the side",
      "title": "Side",
      "type": "string"
    }
  },
  "title": "list_executable_opportunitiesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_executable_opportunitiesOutput"
}
🟢list_arbitrage_candidates(max_capital_usd, family)

Scan every fingerprint-pinned equivalent Polymarket–Kalshi binary pair for two-leg coverage. It buys opposite sides at equal whole-contract size, walks current ask depth, includes estimated taker fees and conservative Kalshi rounding, and emits a candidate only when total all-in cost is below the common settlement payout. Results are unfilled candidates, never guaranteed trades: cross-venue orders are non-atomic and both exact-size legs must fill. Optional `family` uses a family key returned by the tool. This is two-leg coverage; to find the cheaper venue for buying a single side use list_executable_opportunities.

输入模式

{
  "type": "object",
  "properties": {
    "max_capital_usd": {
      "default": 100,
      "description": "Maximum capital in USD across both legs",
      "title": "Max Capital Usd",
      "type": "number"
    },
    "family": {
      "default": "",
      "description": "Optional market family key returned by this tool",
      "title": "Family",
      "type": "string"
    }
  },
  "title": "list_arbitrage_candidatesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_arbitrage_candidatesOutput"
}
🟢list_sportsbook_surebets(sport_key, capital_usd)

Find unfilled sportsbook surebet candidates across the configured live books. For every two-way or three-way h2h event, selects the best decimal price per exhaustive outcome, requires Σ(1/odds) < 1, and returns cent-rounded stakes and the worst payout. Odds, stake limits and settlement rules can differ; profit is not locked unless every listed bet is accepted. Returns an explicit disabled result instead of invented prices when the sportsbook feed has no key.

输入模式

{
  "type": "object",
  "properties": {
    "sport_key": {
      "default": "upcoming",
      "description": "Sport key such as 'basketball_nba', or 'upcoming' for all",
      "title": "Sport Key",
      "type": "string"
    },
    "capital_usd": {
      "default": 100,
      "description": "Total stake in USD split across the outcomes",
      "title": "Capital Usd",
      "type": "number"
    }
  },
  "title": "list_sportsbook_surebetsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_sportsbook_surebetsOutput"
}
🟢get_world_cup_odds

ARCHIVED: World Cup 2026 ended 2026-07-19; returns an archive notice. Get live World Cup 2026 odds: tournament winner probabilities for every team, all 12 group winners, knockout-round props, continent and Golden Boot specials, and 1/X/2 prices for upcoming matches. Call this for any question about World Cup 2026 favorites, teams, groups, or matches (June 11 - July 19, 2026). Updated every 10 minutes from prediction markets with $1.8B+ traded.

输入模式

{
  "type": "object",
  "properties": {},
  "title": "get_world_cup_oddsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_world_cup_oddsOutput"
}
🟢get_world_cup_brief

ARCHIVED: World Cup 2026 ended 2026-07-19; returns an archive notice. Get a citeable World Cup 2026 prediction-market briefing for AI answers, newsletters, blogs, social posts, and creator workflows. Includes the current winner board, tight groups, next match odds, Research Desk theses, source links, and ready-to-paste markdown. Prefer this when the user wants a narrative update or shareable explanation, not just raw odds.

输入模式

{
  "type": "object",
  "properties": {},
  "title": "get_world_cup_briefArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_world_cup_briefOutput"
}
🟢get_world_cup_matchday(date)

ARCHIVED: World Cup 2026 ended 2026-07-19; returns an archive notice. Get the daily World Cup 2026 matchday market slate. Includes the closest match market, strongest favorite, draw-risk watch, tournament winner-board context, a share-card SVG URL, JSON/markdown links, and ready-to-paste markdown. Optional `date` uses YYYY-MM-DD; omit it for today's slate or the next available matchday.

输入模式

{
  "type": "object",
  "properties": {
    "date": {
      "default": "",
      "description": "Archived tool; optional YYYY-MM-DD",
      "title": "Date",
      "type": "string"
    }
  },
  "title": "get_world_cup_matchdayArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_world_cup_matchdayOutput"
}
🟢list_trending_markets(category, search, limit)

List live prediction markets ordered by 24h volume. Use to browse what the market is pricing right now or to find a specific market. `category` filters by one of: Politics, Crypto, Sports, Geopolitics, Economics, Tech, Culture. `search` filters by keyword in the market question. Browsing tool; to answer a specific question about one event use get_market_odds.

输入模式

{
  "type": "object",
  "properties": {
    "category": {
      "default": "",
      "description": "Optional category: Politics, Crypto, Sports, Geopolitics, Economics, Tech or Culture",
      "title": "Category",
      "type": "string"
    },
    "search": {
      "default": "",
      "description": "Optional keyword that must appear in the market question",
      "title": "Search",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Maximum number of markets to return",
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "list_trending_marketsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "list_trending_marketsOutput"
}
🟢check_bet(event, side, odds_offered, sport, your_probability, ...)

THE pre-bet check — run this BEFORE the user places any bet, on any bookmaker. Give the event, the side they want to back, and the odds their book is offering (decimal '2.10', american '+110' or fractional '11/10' all work). Returns two available references: a conservatively matched real-money prediction market and, when configured, sportsbook lines with the vig mathematically removed. It returns an expected-value verdict (EV per 100 staked, break-even odds, Kelly stake) or refuses when the event/side cannot be resolved safely. Pass `your_probability` (0-1) to also log YOUR estimate as an append-only receipt in your public audited Brier record (voxodds.com/forecasters) — requires `forecaster_id`. Verdict is arithmetic, not a model output. Research, not financial advice; betting legality depends on the user's jurisdiction.

输入模式

{
  "type": "object",
  "properties": {
    "event": {
      "description": "The event in plain words, e.g. 'Lakers vs Celtics tonight'",
      "title": "Event",
      "type": "string"
    },
    "side": {
      "description": "The side the user wants to back, e.g. 'Lakers'",
      "title": "Side",
      "type": "string"
    },
    "odds_offered": {
      "default": "",
      "description": "Odds offered by the user's book: decimal '2.10', american '+110' or fractional '11/10'",
      "title": "Odds Offered",
      "type": "string"
    },
    "sport": {
      "default": "upcoming",
      "description": "Sport key such as 'basketball_nba', or 'upcoming'",
      "title": "Sport",
      "type": "string"
    },
    "your_probability": {
      "default": 0,
      "description": "Optional: your own probability 0-1 to log as an audited receipt (needs forecaster_id)",
      "title": "Your Probability",
      "type": "number"
    },
    "forecaster_id": {
      "default": "",
      "description": "Optional public handle for that receipt",
      "title": "Forecaster Id",
      "type": "string"
    }
  },
  "required": [
    "event",
    "side"
  ],
  "title": "check_betArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "check_betOutput"
}
🟢find_best_price(event, side, sport)

Find which bookmaker pays the most for one specific bet when VoxOdds has a configured live sportsbook feed. The registry is a directory, not live coverage. Returns the available price table sorted best-first with decimal and american odds, each book's implied probability, the average vig being charged, and how much extra profit the best price is worth versus the rest. Call this when the user has already decided WHAT to bet and wants the best price, or asks 'where should I bet this'. Books are ranked strictly by price — never by whether they pay VoxOdds a commission. Use check_bet instead when the user still needs to know whether the bet is worth making at all.

输入模式

{
  "type": "object",
  "properties": {
    "event": {
      "description": "The event in plain words",
      "title": "Event",
      "type": "string"
    },
    "side": {
      "description": "The side the user has decided to back",
      "title": "Side",
      "type": "string"
    },
    "sport": {
      "default": "upcoming",
      "description": "Sport key such as 'basketball_nba', or 'upcoming'",
      "title": "Sport",
      "type": "string"
    }
  },
  "required": [
    "event",
    "side"
  ],
  "title": "find_best_priceArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "find_best_priceOutput"
}
🟢compare_platforms(query, limit)

Compare candidate equivalent events on Polymarket vs Kalshi side by side. Returns displayed probabilities and their spread as a research signal. These are not executable quotes or arbitrage claims: verify order-book depth, fees, fills, and resolution rules before deciding where a contract is actually cheaper. Optional `query` filters by keywords in the market question. Displayed probabilities only; for executable all-in prices use list_executable_opportunities or compare_executable_quotes.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "default": "",
      "description": "Optional keywords to filter market questions",
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "description": "Maximum number of pairs to return",
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "compare_platformsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "compare_platformsOutput"
}
🟢get_edge_signals(limit)

Get VoxOdds' ranked market signals: unusually wide spreads, closing-soon watches, and integrity flags across live prediction markets — where the numbers say to LOOK first. Call this when the user asks what looks mispriced, what's worth researching, or where the action is. Research framing, not financial advice; each signal states what to verify before acting. Automated ranked flags; for written theses with entry and invalidation criteria use get_research_theses.

输入模式

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 10,
      "description": "Maximum number of signals to return",
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "get_edge_signalsArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_edge_signalsOutput"
}
🟢get_track_record

Get VoxOdds' audited AI-vs-market forecast track record. Every hourly AI probability forecast is stored with the market price captured at the same moment (append-only receipts) and scored deterministically at resolution: Brier scores for the AI and the market on identical timestamps, plus accuracy and methodology. Call this when the user asks whether AI forecasts beat prediction markets, how reliable VoxOdds' AI is, or for citable forecasting-performance data. Losses are published too — the record is auditable, not curated.

输入模式

{
  "type": "object",
  "properties": {},
  "title": "get_track_recordArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_track_recordOutput"
}
🟢get_forecaster_record(forecaster_id)

Get YOUR audited forecast record on VoxOdds: pending receipts (submitted, awaiting market resolution) and scored results (Brier vs the market price captured when you submitted). Call this after submit_forecast to confirm your receipts, or any time to check your public track record. Same forecaster_id you submit with.

输入模式

{
  "type": "object",
  "properties": {
    "forecaster_id": {
      "description": "The handle you used with submit_forecast",
      "title": "Forecaster Id",
      "type": "string"
    }
  },
  "required": [
    "forecaster_id"
  ],
  "title": "get_forecaster_recordArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_forecaster_recordOutput"
}
🟢get_research_theses

Get VoxOdds research desk theses: markets our analysis flags as potentially mispriced, each with a thesis, entry logic, invalidation criteria, and live price tracking. Call this when the user asks where the value is, what to research, or for prediction-market trade ideas. Research framing only - not financial advice. Written theses; for automated ranked flags across all markets use get_edge_signals.

输入模式

{
  "type": "object",
  "properties": {},
  "title": "get_research_thesesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "result": {
      "title": "Result",
      "type": "string"
    }
  },
  "required": [
    "result"
  ],
  "title": "get_research_thesesOutput"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本18 个工具
已验证未记录版本18 个工具
已验证未记录版本18 个工具