parlayapi-mcp is an MCP server that exposes ParlayAPI's
sports odds, player props, live previews, source-quality proof,
coverage gates, and frictionless agent signup as native tools
for Claude Desktop, Cursor, OpenClaw, Continue, Devin, and
any other MCP-compatible client. Drop one config block into
your client and your agent can prove live coverage, sign up
the user, fetch live odds, find the best line, and store
results end-to-end.
Quickest path - no virtualenv, no clone:
uvx parlayapi-mcp --help
Or with pip:
pip install parlayapi-mcp
Both fetch the package from PyPI on first run. The wheel is small (~7 KB) and pulls in the official MCP SDK and httpx as dependencies.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"parlayapi": {
"command": "uvx",
"args": ["parlayapi-mcp"],
"env": {
"PARLAYAPI_KEY": "your_key_here"
}
}
}
}
Don't have a key yet? Omit env entirely. The
parlayapi_signup tool works without a key; so do the
public live preview, pricing, source-quality, and coverage tools.
Add the returned key to env and restart Claude Desktop
when you want paid data endpoints.
Edit .cursor/mcp.json in your project (same shape).
Save a keyless MCP definition first, then let the assistant prove live coverage before you add a key:
openclaw mcp set parlayapi '{"command":"uvx","args":["parlayapi-mcp"]}'
After signup, add the key:
openclaw mcp set parlayapi '{"command":"uvx","args":["parlayapi-mcp"],"env":{"PARLAYAPI_KEY":"your_key_here"}}'
Any client that supports MCP stdio transport works. Run
parlayapi-mcp as the command, set
PARLAYAPI_KEY in env. The wire protocol is standard MCP
and the tools auto-register on startup.
| Tool | Auth | Purpose |
|---|---|---|
parlayapi_signup | none | Create a free-tier account, return API key + claim URL |
parlayapi_checkout_link | none | Stripe upgrade URL for any tier |
parlayapi_magic_link | none | Email passwordless login link |
parlayapi_get_pricing | none | Current pricing and credit tiers |
parlayapi_live_sports | none | Active live sports, event counts, and book counts |
parlayapi_live_search | none | Search live teams, players, and sport keys |
parlayapi_live_command_center | none | Public best-line preview from /live |
parlayapi_source_quality | none | Source freshness and quality metadata |
parlayapi_book_coverage | none | Per-book five-gate coverage proof |
parlayapi_list_sports | key | 78+ sport keys (MLB, NBA, NFL, NHL, EPL, UFC, esports, ...) |
parlayapi_get_odds | key | h2h, spreads, totals across 32 books for a sport |
parlayapi_get_props | key | Player prop odds (DK, FanDuel, BetMGM, PrizePicks, Underdog, ...) |
parlayapi_best_line | key | Best price per outcome across all bookmakers |
parlayapi_account_info | key | Tier, credits remaining, billing period |
Tools marked none
do not require an API key (they create or manage one).
Tools marked key need PARLAYAPI_KEY in
the MCP client's env config for the parlayapi server.
User says to their assistant: "build me a discord bot that posts NBA +EV plays from sharp books in real time".
With parlayapi-mcp configured, the agent:
parlayapi_signup(email). Gets back an
API key and a magic-link claim URL. Pastes the claim URL to the
user, drops the API key into the user's bot config.parlayapi_list_sports() to confirm
basketball_nba is active.parlayapi_best_line(sport_key="basketball_nba",
market="h2h") to see how the best-line endpoint shapes the data.Total time from "I want a bot" to working bot: two minutes if the agent is fast. No browser tabs, no manual signup form, no copy-pasting an API key.