ParlayAPI as native MCP tools

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.

Install in 30 seconds

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.

Configure your MCP client

Claude Desktop (macOS)

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.

Cursor

Edit .cursor/mcp.json in your project (same shape).

OpenClaw

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"}}'

Continue / Devin / custom MCP client

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.

Tools

ToolAuthPurpose
parlayapi_signupnoneCreate a free-tier account, return API key + claim URL
parlayapi_checkout_linknoneStripe upgrade URL for any tier
parlayapi_magic_linknoneEmail passwordless login link
parlayapi_get_pricingnoneCurrent 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_qualitynoneSource freshness and quality metadata
parlayapi_book_coveragenonePer-book five-gate coverage proof
parlayapi_list_sportskey78+ sport keys (MLB, NBA, NFL, NHL, EPL, UFC, esports, ...)
parlayapi_get_oddskeyh2h, spreads, totals across 32 books for a sport
parlayapi_get_propskeyPlayer prop odds (DK, FanDuel, BetMGM, PrizePicks, Underdog, ...)
parlayapi_best_linekeyBest price per outcome across all bookmakers
parlayapi_account_infokeyTier, 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.

What an agent flow looks like

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:

  1. Calls 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.
  2. Calls parlayapi_list_sports() to confirm basketball_nba is active.
  3. Calls parlayapi_best_line(sport_key="basketball_nba", market="h2h") to see how the best-line endpoint shapes the data.
  4. Writes the actual Discord bot code, references the API key, runs it locally for the user.

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.

Resources