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 集成