Ask, don't query
“Live Premier League totals” becomes get_events then get_event_odds. The model picks the tool; you read the answer.
Add the pinnodds MCP server to Claude Code, Claude Desktop, Cursor, VS Code or Codex and ask in plain language: which matches are live, what the totals are, where the sharp money just moved. Your existing Pinnacle Odds API key is the only credential.
No extra cost. OAuth for claude.ai, plain Bearer key everywhere else. Responses are trimmed so your context window survives.
Module 01 — Interface
A soccer board is megabytes of JSON. Paste it into a chat and the model spends its context reading alternate lines it will never use. The MCP server answers the question that was asked — a filtered list of events, the five lines around the main line, the ten biggest drops — and tells the model how to narrow further when a result was cut. Every call still goes through your key, your plan and your rate limit; nothing is proxied under a shared account.
| Pasting REST responses | pinnodds MCP server | |
|---|---|---|
| Context used | Whole board, every line | Capped rows, main lines, trailer says what was hidden |
| Quota | One call per paste, no reuse | One live request per tool call, identical simultaneous calls merged, 429 answered locally |
| Freshness | Whenever you last pasted | Live prices at the moment of the question |
| Setup | Copy, paste, repeat | One config entry per client |
Module 02 — Handshake
The endpoint is a stateless Streamable HTTP MCP server at https://mcp.pinnodds.com/mcp.
Authenticate with your pinnodds API key as a Bearer token. Every client that supports remote MCP servers
has a field for it; the docs show the exact snippet for Claude Code, Claude Desktop,
Cursor, VS Code, Codex CLI and the Claude API.
# one line — then /mcp inside Claude Code shows pinnodds connected
claude mcp add --transport http pinnodds https://mcp.pinnodds.com/mcp \
--header "Authorization: Bearer $PINNODDS_KEY"
{
"mcpServers": {
"pinnodds": {
"url": "https://mcp.pinnodds.com/mcp",
"headers": { "Authorization": "Bearer YOUR_PINNODDS_KEY" }
}
}
}
Module 03 — Payload
“Live Premier League totals” becomes get_events then get_event_odds. The model picks the tool; you read the answer.
The assistant never sees or asks for the key; it rides on the connection. Calls appear in your panel like any REST request.
Rows are capped, alternate lines centred on the main line, and a trailer tells the model how to narrow instead of dumping more.
Every tool call is a live request — no cached odds. Identical calls fired at the same instant are merged, and after a 429 the server stops calling upstream until the window resets.
The same steam detection behind /api/drops, one tool call away: sport, market, period, size and age filters.
search_pinnodds_docs answers questions about the API itself, so the assistant can explain a parameter without leaving the chat.
Module 04 — Query log
https://mcp.pinnodds.com/mcp as a custom connector; claude.ai sends you to the pinnodds authorization page where you enter your API key once. It then holds a short-lived OAuth token that refreshes itself — the key never leaves pinnodds.get_account_usage shows what is left.Free 3-day full demo, no card required. One config entry and the tools show up in your client.