parlay-api-mcpCAUTION
Python MCP server for ParlayAPI sports odds and props. Public discovery needs no key; account data uses your own key. Includes signup, login-email, checkout-link and preference actions. MIT code; API data redistribution rights are not included.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
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
7b092b2449c8OBSERVED · 2026-10-11Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add parlayapi-mcp --env PARLAYAPI_KEY=${PARLAYAPI_KEY} -- None parlayapi-mcp==0.3.8Exposed tools (22)
20 read · 2 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
parlayapi_account_info | read | Get info about the API key currently in use: tier, credits |
parlayapi_best_bets | read | What should I bet right now? Ranked +EV plays for a sport. |
parlayapi_best_line | read | Find the best (highest) price for each outcome across bookmakers. |
parlayapi_book_coverage | read | Return public per-book coverage gates. |
parlayapi_checkout_link | read | Request an owner-authenticated checkout URL or an email-link flow. |
parlayapi_consensus | read | Get consensus (average) odds across all bookmakers per market. |
parlayapi_find_arbitrage | read | Request calculated cross-book price combinations. |
parlayapi_find_ev | read | Find positive-EV bets vs a sharp book |
parlayapi_find_middles | read | Find cross-book middle opportunities. |
parlayapi_get_odds | read | Get game-level odds for a sport from all configured bookmakers. |
parlayapi_get_pricing | read | Return the current public pricing table. |
parlayapi_get_props | read | Get player prop odds for a sport. |
parlayapi_list_sports | read | List available sport keys. Use these in subsequent calls. |
parlayapi_live_command_center | read | Return the public best-line command center payload. |
parlayapi_live_search | read | Search live teams, players, and sport keys. |
parlayapi_live_sports | read | List currently active live sports on the retail /live surface. |
parlayapi_magic_link | read | Email a magic-login link for an existing ParlayAPI account. |
parlayapi_parlay_verdict | read | Grade a multi-leg parlay: should you bet it, and at which book? |
parlayapi_set_bettable_books | write | Remember which books the user can bet at, so parlayapi_verdict scopes its |
parlayapi_signup | write | Create a free-tier ParlayAPI account for the given email. |
parlayapi_source_quality | read | Return public per-source freshness and quality metadata. |
parlayapi_verdict | read | Should I bet this? One-call verdict for a specific bet. |
Trust audit
CAUTIONgrade B · trust 85/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (4 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- found
Findings (7)
self.server.API_KEY = "test-environment-key"
self.server.API_KEY = "test-wrong-owner-key"
self.server.API_KEY = "test-environment-key"
.mcpbignore
PARLAYAPI_BASE_URL=http://127.0.0.1:8080 \
For private security reports, email [email protected]. Do not put API keys
Use Node.js 22 or newer. The following are maintainer commands, not a script that runs automatically. Keep credentials in the CLI's own storage; never read, copy or commit its credential files.
Gates applied: no_behavioural_pass.
7b092b2449c8full audit observations/trust-audit/mcp-server/jacobiusmakes__parlay-api-mcp.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-11 | 7b092b2449c8 | CAUTION | B | 85 | first audit |
Questions
What is the parlay-api-mcp MCP server?
Python MCP server for ParlayAPI sports odds and props. Public discovery needs no key; account data uses your own key. Includes signup, login-email, checkout-link and preference actions. MIT code; API data redistribution rights are not included.
What tools does parlay-api-mcp expose?
22 in total: 20 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is parlay-api-mcp safe to connect to an agent?
With care. The audit graded it B (85/100) and found 7 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does parlay-api-mcp need?
It reads PARLAYAPI_KEY and PARLAY_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does parlay-api-mcp run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on PyPI as parlayapi-mcp.
How current is this page?
The grade is for one exact copy of the source (7b092b2449c8), read on 2026-10-11. The repository is watched and re-audited when it changes.