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.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `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": {}
}コミュニティ
エビデンス