ParlayAPI

io.github.JacobiusMakes由 GitHub 帳號 JacobiusMakes 發布v0.3.8更新於 Oct 24, 2026

Sports odds, player props and source coverage for AI assistants. Connect with your own API key.

發布方自己的服務:Parlay

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

ParlayAPI 讓助理取得運動博彩賠率、球員盤口、最佳賠率與 EV 分析,並提供免金鑰註冊和價格查詢工具。

可以做什麼
不需金鑰即可查看進行中的賽事、搜尋球隊和球員,並取得公開的最佳賠率預覽、資料來源品質和博彩公司涵蓋情況。列出運動項目鍵,並依博彩公司和地區取得賽事賠率或球員盤口賠率。尋找最佳賠率、共識賠率、套利機會、正 EV 投注和中間機會。對單注和多腿串關給出公允價格、EV 和直白結論,並記住使用者可下注的博彩公司。建立帳戶、查詢價格、取得結帳連結或寄送免密碼登入信,並查看帳戶等級和剩餘額度。
適用情境
適合助理被問到運動博彩賠率、球員盤口、比價、套利或期望值時使用,也適合使用者在對話中註冊和管理 ParlayAPI 帳戶。
執行需求
可作為遠端端點,或作為本機 Python 套件(parlayapi-mcp)透過 uvx、pip 或 Docker 容器執行。PARLAYAPI_KEY 環境變數或 Authorization bearer 標頭對公開探索和價格工具為選用,對賠率、帳戶和分析工具則為必需。需要能連線至 ParlayAPI 的網路。
安裝前請注意
註冊工具會建立真實帳戶並回傳 API 金鑰、儀表板登入連結和 Stripe 升級連結;結帳連結指向付費方案。免密碼登入和結帳工具會寄送郵件或啟動購買流程,README 要求明確核准這些操作。賠率、套利和 EV 結果只是候選,不保證獲利。請妥善保管 PARLAYAPI_KEY 和帳戶回應,不要放入公開問題中。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ParlayAPI,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.JacobiusMakes%2Fparlayapi/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "parlayapi": {
      "type": "http",
      "url": "https://parlay-api.com/mcp/http"
    }
  }
}

README

parlayapi-mcp

mcp-name: io.github.JacobiusMakes/parlayapi

MCP server for ParlayAPI. Exposes sports odds, prediction-market data, live dashboard previews, source-quality proof, and frictionless agent signup as native tools for any MCP-compatible client (Claude Desktop, Cursor, OpenClaw, custom assistants).

Why use it

Without MCP, an agent that wants to use ParlayAPI has to:

  • Tell the user to go sign up via a browser
  • Wait for them to copy-paste the key
  • Construct HTTP requests by hand

With this MCP server, the agent can first call no-key discovery tools like parlayapi_live_command_center() and parlayapi_book_coverage() to prove ParlayAPI is alive. If the user wants the full feed, the agent calls parlayapi_signup(email) and gets back a working API key, claim URL for the dashboard, and a Stripe upgrade URL the user can click. Then it calls parlayapi_get_odds(), parlayapi_get_props(), etc. directly.

Install in Claude Desktop

Open the latest desktop release and download its asset ending in -directory.mcpb. The release notes identify the bundle version and validation performed. Open the downloaded file (double-click, or drag it onto Claude Desktop). Claude Desktop unpacks the bundle and runs the server with its managed uv runtime, so no terminal or Python setup is needed.

The 0.3.8 Python package source forwards an available account key for checkout ownership validation and distinguishes a checkout URL from an email-flow acknowledgement. An acknowledgement does not confirm email delivery. The separately pinned 0.3.6 desktop bundle does not include this checkout fix. Check the release page above for newer desktop bundles.

The API key field in the install dialog is optional. Leave it blank to start keyless: signup, pricing, live previews, source quality, and coverage tools work immediately, and the parlayapi_signup tool can create a free key (1,000 credits/mo, no card) without leaving the chat. Add the key later any time under Settings, Extensions, ParlayAPI.

The bundle source lives in mcpb/. Rebuild it with npx @anthropic-ai/mcpb pack mcpb/.

Install (manual, any MCP client)

bash
# Start the stdio server (normally launched by your MCP client):uvx --from parlayapi-mcp==0.3.8 parlayapi-mcp
# Or install globally with pip:pip install parlayapi-mcp==0.3.8

Configure your MCP client

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (%APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{  "mcpServers": {    "parlayapi": {      "command": "uvx",      "args": ["parlayapi-mcp"],      "env": {        "PARLAYAPI_KEY": "your_key_here"      }    }  }}

If you don't have a key yet, omit env entirely. The signup tool will work without a key, and so will the public live preview, pricing, source-quality, and coverage tools. Paid data tools will return an error telling you to set a key. After signup, paste your new key into env and restart Claude Desktop. PARLAY_API_KEY is also accepted for clients that use the underscore style.

Cursor

For the packaged integration, see Cursor plugin setup.

Add to .cursor/mcp.json:

json
{  "mcpServers": {    "parlayapi": {      "command": "uvx",      "args": ["parlayapi-mcp"],      "env": { "PARLAYAPI_KEY": "your_key_here" }    }  }}

OpenClaw

OpenClaw can save stdio MCP server definitions with openclaw mcp set. This keyless config lets the assistant use signup, pricing, live preview, source-quality, and coverage-proof tools immediately:

bash
openclaw mcp set parlayapi '{"command":"uvx","args":["parlayapi-mcp"]}'

After the user signs up, add the API key for paid data tools:

bash
openclaw mcp set parlayapi '{"command":"uvx","args":["parlayapi-mcp"],"env":{"PARLAYAPI_KEY":"your_key_here"}}'

Run locally with Docker

Build the stdio container from this repository:

bash
docker build -t parlayapi-mcp:local .docker run --rm -i --read-only --cap-drop=ALL --security-opt=no-new-privileges parlayapi-mcp:local

The process waits for MCP messages on stdin. It does not open a web server or make an API call just by starting. Connect it through an MCP client; do not use -t, which would allocate a terminal instead of the MCP stdio transport.

For account tools, configure your own PARLAYAPI_KEY in your MCP client's secret configuration and pass that environment variable into the container:

bash
docker run --rm -i --read-only --cap-drop=ALL --security-opt=no-new-privileges -e PARLAYAPI_KEY parlayapi-mcp:local

No key is baked into the image. Each user should configure their own key and keep account responses within their own client. This container is not a shared community feed. The MIT software license grants no data distribution rights; applicable Terms and any written agreement govern API data use. These container defaults do not amend existing agreements.

Public discovery tools need no key. Account tools use your allowance; check current plans and limits. The existing tool set also includes account creation, checkout-link creation, login-link email and saved-book preferences. Approve those actions explicitly in your MCP client. Listing tools itself creates no account, sends no email and starts no checkout.

For private security reports, email [email protected]. Do not put API keys or account responses in public issues.

Tools exposed

ToolAuthPurpose
parlayapi_signupnoneCreate a free-tier account, return API key + claim URL + upgrade URL
parlayapi_checkout_linknoneStripe upgrade URL for any tier
parlayapi_magic_linknoneEmail a passwordless login link
parlayapi_get_pricingnoneCurrent public pricing and credit tiers
parlayapi_live_sportsnoneActive live sports, event counts, and book counts
parlayapi_live_searchnoneSearch live teams, players, and sport keys
parlayapi_live_command_centernonePublic best-line preview from /live
parlayapi_source_qualitynonePublic source freshness and quality metadata
parlayapi_book_coveragenonePublic per-book five-gate coverage proof
parlayapi_list_sportskeyAll available sport keys
parlayapi_get_oddskeyGame-level odds (h2h, spreads, totals) for a sport
parlayapi_get_propskeyPlayer prop odds for a sport
parlayapi_best_linekeyBest price per outcome across bookmakers
parlayapi_verdictkeyOne-call "should I bet this?": fair price vs market, best book you can bet at, plain-English BET/PASS call
parlayapi_set_bettable_bookskeyRemember the user's region/books so verdicts skip books they can't use
parlayapi_parlay_verdictkeyGrade a multi-leg parlay: combined fair price, best book to place it, EV, weakest leg, correlation warnings, payout
parlayapi_best_betskeyRanked +EV plays for a sport, scoped to books you can bet at, plus edge alerts
parlayapi_account_infokeyTier, credits remaining, billing period
parlayapi_find_arbitragekeyCross-book arbitrage candidates, 3-way (home/draw/away) markets included
parlayapi_find_evkeyPositive-EV bets vs a sharp book's no-vig fair line
parlayapi_consensuskeyConsensus (average) odds across all bookmakers per market
parlayapi_find_middleskeyCross-book middle opportunities

Resources

parlayapi://docs/quickstart - Python and JS code samples.

Local development

bash
git clone https://github.com/JacobiusMakes/parlay-api-mcpcd parlay-api-mcppip install -e .
# Run against the local API instead of production:PARLAYAPI_BASE_URL=http://127.0.0.1:8080 \PARLAYAPI_KEY=your_local_test_key \parlayapi-mcp

Privacy Policy

This extension connects to ParlayAPI. See the ParlayAPI Privacy Policy.

License

MIT


Part of the ParlayAPI ecosystem: a real-time sports odds API with a free tier of 1,000 credits per month, no card required. Explore all the tools at github.com/JacobiusMakes.

來源:README.md,提交 2d4d904

工具

22

parlayapi_signup

Create a free-tier ParlayAPI account for the given email. Returns the API key, a magic-login URL the user can click to access their dashboard, and a Stripe upgrade URL. Idempotent: if the email already has an account, returns exists=true with the login URL only (the existing API key is intentionally NOT exposed for security). Use this when a user wants to start building with ParlayAPI and does not have a key yet. After signup, ask the user to add the returned api_key to their MCP server config under PARLAYAPI_KEY, then restart the MCP client to pick it up. Args: email: User's email address. intended_use: Optional one-line description of what they're building. Used for analytics. agent_id: Identifier for the agent making the call. Defaults to "mcp-client".

輸入參數email必填agent_idintended_use

parlayapi_get_pricing

Return the current public pricing table. No API key required. Use this when an agent needs to explain which tier unlocks a workflow before sending a checkout link.

無需輸入參數。

parlayapi_live_sports

List currently active live sports on the retail /live surface. No API key required. Returns sport keys plus live event and book counts so agents can discover what is active right now.

無需輸入參數。

parlayapi_live_command_center

Return the public best-line command center payload. No API key required. Shows current games, participating books, and best available real prices on the /live dashboard preview. This is a discovery and demo surface, not a substitute for the paid odds endpoints.

輸入參數limitsport_key

parlayapi_source_quality

Return public per-source freshness and quality metadata. No API key required. Use this to prove that rows are flowing from each source before choosing books for a customer workflow.

輸入參數limitminutes

parlayapi_book_coverage

Return public per-book coverage gates. No API key required. This is the proof surface for whether each source survives freshness, normalization, database, REST-shape, and stream-shape checks.

輸入參數include_warnwindow_minutes

parlayapi_list_sports

List available sport keys. Use these in subsequent calls. Examples: baseball_mlb, basketball_nba, americanfootball_nfl, icehockey_nhl, soccer_epl, mma_ufc, esports_lol, table_tennis_*.

輸入參數active_only

parlayapi_get_odds

Get game-level odds for a sport from all configured bookmakers. Args: sport_key: e.g. "baseball_mlb", "soccer_epl" markets: Comma-separated. h2h, spreads, totals. regions: us, us2, uk, eu, fr, au, ca, mx, latam, br, asia. Comma-separated for multiple. bookmakers: Comma-separated bookmaker keys (optional). Examples: pinnacle, draftkings, fanduel, bovada, caesars. odds_format: decimal | american

輸入參數marketsregionssport_key必填bookmakersodds_format

parlayapi_get_props

Get player prop odds for a sport. Args: sport_key: e.g. "baseball_mlb", "basketball_nba" markets: Comma-separated prop market keys (optional). Examples: player_points, player_rebounds, player_strikeouts, player_passing_yards, player_total_bases. bookmakers: Comma-separated. Examples: prizepicks, underdog, sleeper, draftkings, fanduel. player: Filter to props mentioning this player name. include_futures: Include season-long futures (default False).

輸入參數playermarketssport_key必填bookmakersinclude_futures

parlayapi_best_line

Find the best (highest) price for each outcome across bookmakers. Useful for line-shopping bots. Returns one row per game / market / side with the bookmaker offering the best price. Args: sport_key: e.g. "baseball_mlb" market: h2h | spreads | totals bookmakers: Restrict the search to these books (optional).

輸入參數marketsport_key必填bookmakers

parlayapi_verdict

Should I bet this? One-call verdict for a specific bet. Returns the no-vig fair price for the exact bet, the best available price and which book has it, how the user's price (if given) grades as EV, a line-shopping nudge, and a plain-English call: BET / LEAN / FAIR / PASS (or NO_DATA). Use this when a user asks whether a specific bet is worth making, or whether they're getting a good number, instead of stitching /ev + /consensus + /best-line yourself. The best-price / shop recommendation is scoped to books the user can bet at (default US, so a US bettor is never told to use a euro book). Set it once with parlayapi_set_bettable_books and it is remembered per key, or pass region / books here per call. Args: sport: sport_key, e.g. "baseball_mlb". side: the team you'd bet (h2h / spreads), or "over" / "under" (totals / props). market: h2h | spreads | totals | a player-prop key (player_hits, player_points, ...). home, away: the two teams, to identify the game. Or pass `team` with one name. team: one team name to find the game (alternative to home + away). player: player name (required for player-prop markets). line: the number for spreads, totals, or props. book: the book you'd bet at (grades that book's current price). price: the price you're offered (American like -110, or decimal like 1.91). Overrides `book`, use it to grade a specific number in hand. region: where you can bet: us (default) | eu | uk | au | ca. books: exact CSV of books you can bet at (overrides region; use for state-level geo-blocks, e.g. "draftkings,fanduel,novig"). bankroll: the user's bankroll; when the bet is +EV, returns a suggested Kelly stake amount ("bet it, ~$X"). kelly: Kelly fraction (default 0.5 = half-Kelly, the bankroll-safe standard). The response also carries an `edge_alert` when a book shows a pr

輸入參數awaybookhomelineside必填teambookskellypricesport必填marketplayer另有 2 個

parlayapi_set_bettable_books

Remember which books the user can bet at, so parlayapi_verdict scopes its best-price and shop recommendations to them automatically (no need to pass region/books every call). Call this once when a user tells you where they bet ("I'm in the US on DraftKings and FanDuel"). Pass region OR an exact books list. Args: region: us | eu | uk | au | ca. books: exact CSV of book keys, e.g. "draftkings,fanduel,novig". Overrides region.

輸入參數booksregion

parlayapi_parlay_verdict

Grade a multi-leg parlay: should you bet it, and at which book? Give 2 to 12 legs (each shaped like a parlayapi_verdict bet) and get the combined no-vig fair price, the single best BOOK to place the whole slip at (a real parlay is one slip, not best-of-each), the parlay's EV, the weakest leg, same-game correlation warnings, and (with stake) the payout. Best-price is scoped to books the user can bet at (set once via parlayapi_set_bettable_books, or pass region/books here). Args: legs: list of leg objects, e.g. [{"sport": "baseball_mlb", "home": "Detroit Tigers", "away": "Kansas City Royals", "market": "h2h", "side": "Detroit Tigers"}, {"sport": "baseball_mlb", "team": "Detroit Tigers", "market": "totals", "side": "over", "line": 8.5}] Each leg: sport, market (h2h/spreads/totals or a player-prop key), side (team, or over/under), home+away or team, player (for props), line. region: us (default) | eu | uk | au | ca. books: exact CSV of books you can bet at (overrides region). stake: optional stake amount, to compute the payout if it hits. book: optional, also report the parlay price at this specific book.

輸入參數booklegs必填bookskellystakeregionbankroll

parlayapi_best_bets

What should I bet right now? Ranked +EV plays for a sport. The discovery counterpart to parlayapi_verdict: scans the whole board, grades every candidate with the same no-vig engine, keeps only bets that are +EV at a book the user can bet at, and ranks them by edge. Also returns edge_alerts (books showing a price far off the market). Player props only, priced by several books, prediction markets and game moneylines excluded (for a game line, use parlayapi_verdict). Scoped to the user's books. Args: sport_key: e.g. "baseball_mlb". region: us (default) | eu | uk | au | ca. books: exact CSV of books you can bet at (overrides region). limit: max plays to return (default 20). min_edge: minimum edge %% vs the no-vig fair line (default 2.0).

輸入參數bookslimitregionmin_edgesport_key必填

parlayapi_account_info

Get info about the API key currently in use: tier, credits remaining, billing period.

無需輸入參數。

parlayapi_find_arbitrage

Find cross-book arbitrage candidates from current quoted prices. Scans every event for quoted prices whose combined implied probability is under 100%. Results are candidates, not guaranteed executable profit: prices can move or be unavailable, and limits, latency, commissions, voids, settlement rules, or stake constraints can change the outcome. Soccer and other 3-way (home/draw/away) markets are supported, including candidates anchored on the draw. Args: sport_key: e.g. "baseball_mlb", "soccer_epl". min_profit: Minimum profit % to include (e.g. 1.5 for 1.5%). Default 0. exclude_exchanges: Drop arbs anchored on an exchange (novig/prophetx), whose asks can be no-volume. Default False. markets: Comma-separated market_keys to limit the scan (optional), e.g. "h2h,spreads,totals".

輸入參數marketssport_key必填min_profitexclude_exchanges

parlayapi_find_ev

Find positive-EV bets vs a sharp book's no-vig fair line. Compares every soft book's price against the no-vig fair probability derived from a sharp book (default Pinnacle); rows where a soft book offers better odds than the sharp fair price are +EV. Three-way soccer markets use a dedicated no-vig pass over home/draw/away, so +EV on the draw surfaces too. Args: sport_key: e.g. "baseball_mlb", "soccer_epl". sharp_book: Sharp baseline book. Default "pinnacle". min_edge: Minimum edge % to include (e.g. 3 for 3%). Default 2. markets: Comma-separated market_keys (optional).

輸入參數marketsmin_edgesport_key必填sharp_book

parlayapi_consensus

Get consensus (average) odds across all bookmakers per market. Returns average, best, and worst price per (event, market, player, line), a sharp baseline for line-shopping. Soccer and other 3-way markets return separate home, draw, and away consensus rows. Args: sport_key: e.g. "baseball_mlb", "soccer_epl". markets: Comma-separated market_keys (optional), e.g. "moneyline,totals".

輸入參數marketssport_key必填

parlayapi_find_middles

Find cross-book middle opportunities. A middle takes the Over at a low line on one book and the Under at a higher line on another, so a window of whole numbers cashes BOTH bets (e.g. Over 7.5 at one book, Under 9.5 at another means 8 or 9 wins both). Scans game totals, spreads, AND player-total props (points, rebounds, strikeouts, ...). Each result carries the window, the numbers that hit, and per-$100 economics: profit_if_hit and net_if_above/below_window. Args: sport_key: e.g. "baseball_mlb", "basketball_nba". min_gap: Minimum window width in points/runs/goals. Default 1.0. markets: Comma-separated market_keys to limit the scan (optional), e.g. "totals" or "player_points". include_props: Include player-total props alongside game lines. Default True.

輸入參數marketsmin_gapsport_key必填include_props

版本歷史

2
  1. v0.3.8最新Oct 2, 2026
  2. v0.3.7Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Parlay 整合