PinnWire — Pinnacle Odds, Price Drops & No-Vig Fair Prices
Live and prematch Pinnacle odds, price drops and no-vig fair prices. Free demo access, no key.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"pinnacle-odds": {
"url": "https://pinnwire.com/mcp"
}
}
}远程端点
https://pinnwire.com/mcpstreamable-http它能做什么
工具清单
工具(7)
🟢get_live_odds(sport_id, include_specials, max_events)
Current live (in-play) sports betting odds from Pinnacle, the sharp bookmaker whose prices arbitrage scanners, betting models and prediction markets treat as the market reference. Returns available decimal moneylines/match-winner prices, spreads/handicaps, totals/over-under and team totals per period, plus optional props & specials. Use for live odds displays, +EV / expected-value screens, model features, or the Pinnacle leg of a cross-book comparison. Not a multi-book aggregator, historical archive, or bet-placement tool.
输入模式
{
"type": "object",
"properties": {
"sport_id": {
"type": "integer",
"description": "Sport identifier: 1 Soccer, 2 Tennis, 3 Basketball, 4 Hockey, 5 Football, 6 Baseball, 7 Rugby, 8 MMA, 9 Boxing, 10 Volleyball/Handball, 11 Esports, 12 Golf, 13 Cricket. Call list_sports when unknown."
},
"include_specials": {
"type": "boolean",
"description": "Also include currently published player props, team props, exact-score markets, futures and other specials"
},
"max_events": {
"type": "integer",
"description": "Max events returned. Default 25, max 100"
}
},
"required": [
"sport_id"
]
}🟢get_prematch_odds(sport_id, include_specials, max_events)
Current prematch (pregame / upcoming-match) Pinnacle odds for one sport — sharp lines for handicapping, expected-value screens and model features. Same shape as get_live_odds. Callers can store snapshots for their own line-history or closing-line-value analysis; this is not a historical opening/closing-odds archive.
输入模式
{
"type": "object",
"properties": {
"sport_id": {
"type": "integer",
"description": "Sport identifier: 1 Soccer, 2 Tennis, 3 Basketball, 4 Hockey, 5 Football, 6 Baseball, 7 Rugby, 8 MMA, 9 Boxing, 10 Volleyball/Handball, 11 Esports, 12 Golf, 13 Cricket. Call list_sports when unknown."
},
"include_specials": {
"type": "boolean",
"description": "Also include currently published props & specials"
},
"max_events": {
"type": "integer",
"description": "Max events returned. Default 25, max 100"
}
},
"required": [
"sport_id"
]
}🟢get_event(event_id)
Current full odds detail for one event (live, prematch or special) by event_id. Use after get_live_odds / get_prematch_odds returns the id.
输入模式
{
"type": "object",
"properties": {
"event_id": {
"type": "integer",
"description": "Event id from another odds tool"
}
},
"required": [
"event_id"
]
}🟢get_prematch_lines(event_id, market_type)
Compact current full-game lines for one prematch event (no period structure). Optional market_type filter: money_line | spreads | totals | team_total.
输入模式
{
"type": "object",
"properties": {
"event_id": {
"type": "integer",
"description": "Event id from another odds tool"
},
"market_type": {
"type": "string",
"enum": [
"money_line",
"spreads",
"totals",
"team_total"
],
"description": "Limit the response to one market type"
}
},
"required": [
"event_id"
]
}🟢get_drops(mode, min_drop_pct, sport_id, limit)
Recent Pinnacle price DROPS — the dropping-odds / odds-shortening / steam-move signal: every outcome whose price fell, with from/to decimal prices, drop %, and nvp, the no-vig decimal fair price (1/nvp = fair implied probability — a de-vigged baseline for arbitrage checks, +EV / value betting, prediction-market pricing and model calibration; an estimate, not a guarantee). Buffer covers roughly the last 3 hours. Does not compare other sportsbooks or prove a move is informed money.
输入模式
{
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"live",
"prematch"
],
"description": "Live or prematch drops. Default live"
},
"min_drop_pct": {
"type": "number",
"description": "Minimum price decrease in percent. Default 2 for this tool (REST default is 5)"
},
"sport_id": {
"type": "integer",
"description": "Sport identifier: 1 Soccer, 2 Tennis, 3 Basketball, 4 Hockey, 5 Football, 6 Baseball, 7 Rugby, 8 MMA, 9 Boxing, 10 Volleyball/Handball, 11 Esports, 12 Golf, 13 Cricket. Call list_sports when unknown."
},
"limit": {
"type": "integer",
"description": "Max drop records returned. Default 25, max 100"
}
}
}🟢get_health
Current feed status: events in store and last_odds_update_seconds_ago (feed-update age). generated_at is response time, not the source odds tick.
输入模式
{
"type": "object",
"properties": {}
}🟢list_sports
Map the 13 covered sports to sport_id values before calling the odds tools. Does not consume API quota.
输入模式
{
"type": "object",
"properties": {}
}社区
证据