Connect your AI
PingOdds has an MCP server, so AI assistants and agents (Claude Code, Claude Desktop, Cursor, VS Code, or your own) can look up odds, line moves and value bets for you. It's included with Starter and Pro, and uses an AI agent key, which you create on the AI agents page.
ChatGPT and claude.ai on the web connect with a "Sign in with PingOdds" step, which is coming soon. Until then, use one of the apps below.
MCP server address
https://mcp.pingodds.com/mcp
Send an AI agent key from your AI agents page as Authorization: Bearer <key>.
API keys don't work here.
Claude Code
claude mcp add --transport http pingodds https://mcp.pingodds.com/mcp \
--header "Authorization: Bearer YOUR_PINGODDS_AGENT_KEY" Then type /mcp in Claude Code and check PingOdds shows Connected.
Cursor
In ~/.cursor/mcp.json (or .cursor/mcp.json in a project), with your key in the PINGODDS_AGENT_KEY environment variable:
{
"mcpServers": {
"pingodds": {
"url": "https://mcp.pingodds.com/mcp",
"headers": { "Authorization": "Bearer ${env:PINGODDS_AGENT_KEY}" }
}
}
}VS Code
In .vscode/mcp.json. VS Code asks for the key once and stores it.
{
"inputs": [
{ "type": "promptString", "id": "pingodds-key", "description": "PingOdds AI agent key", "password": true }
],
"servers": {
"pingodds": {
"type": "http",
"url": "https://mcp.pingodds.com/mcp",
"headers": { "Authorization": "Bearer ${input:pingodds-key}" }
}
}
}Claude Desktop
In Settings → Developer → Edit Config (claude_desktop_config.json). This runs the small mcp-remote bridge with Node.js; keep the key in env as shown.
{
"mcpServers": {
"pingodds": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.pingodds.com/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer YOUR_PINGODDS_AGENT_KEY" }
}
}
}Your own agent
Any MCP client that speaks Streamable HTTP works. A quick check with curl:
curl -X POST "https://mcp.pingodds.com/mcp" \
-H "Authorization: Bearer $PINGODDS_AGENT_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Tools
All read-only: an agent can look things up but never change your account.
- find_games
- Find games by team or player name (any spelling the books use) or league. Start here: it gives each game_id.
- get_odds
- Every book's current prices for one game, with the best price per outcome and which book has it.
- get_best_prices
- The best price per outcome for every upcoming game of a league.
- get_line_movement
- Each book's first recorded price against its latest, for one game and market.
- get_price_history
- Every recorded price change for one game.
- get_closing_line
- Each book's last price before the game started.
- get_consensus
- The market's fair price, with the bookmaker margin removed.
- get_steam_moves
- Sharp, fast price moves across books.
- get_value_bets
- Prices better than the market's fair price, with the edge.
- get_outliers
- One book's price far from every other book's.
- get_arbitrage
- Combinations of books that lock in a profit. Pro only.
- list_leagues
- The leagues covered and their keys.
- list_books
- The sportsbooks covered and their keys.
What each plan gets
AI agent calls are counted separately from API requests and reset with your billing cycle. Only tool calls count.
| Plan | Calls a month | Calls a minute | Tools |
|---|---|---|---|
| Free | — | — | No AI agent access |
| Starter | 2,000 | 10 | All except arbitrage (12) |
| Pro | 25,000 | 60 | All 13 |
When an agent is told no
- "AI agent (MCP) access needs the Starter or Pro plan": the key belongs to a Free account. Upgrade to connect.
- "This key is not valid": the key is mistyped or was revoked. Create a new one on your AI agents page.
- "This is an API key; AI agents need an AI agent key": API keys work with the API only. Create an AI agent key and use that.
- "…used all … AI-agent (MCP) calls … resets on …": the monthly allowance is used up; it comes back on the date given, or upgrade for more.
- "Too many AI-agent (MCP) calls per minute": the agent is calling too fast; it can retry after the seconds given.
- "That lookup took too long": ask for less at once (one league, a team, a shorter date range). It counts as a call.
- "PingOdds is having trouble right now": try again in a minute. This one is not counted.