Grok Build

  1. Create a free account, copy a key from API keys and set PRIZEPICKS_API_KEY in your environment.
  2. Add the table below to ~/.grok/config.toml, or .grok/config.toml for one project. Grok expands the variable when it loads the file, so the key stays out of it.
  3. Run grok mcp doctor prizepicks to check the connection.
  4. Ask for a small read: get_coverage, then get_projections for one league. Grok shows them as prizepicks__get_coverage and prizepicks__get_projections.
~/.grok/config.toml
[mcp_servers.prizepicks]
url = "https://prizepicksapi.com/api/mcp"
headers = { "Authorization" = "Bearer ${PRIZEPICKS_API_KEY}" }

The xAI API

For an app you are building on Grok. xAI's servers call our MCP endpoint during the request.

  1. Set XAI_API_KEY and PRIZEPICKS_API_KEY on your server, never in browser code.
  2. Send the request below. allowed_tools keeps the model to the tools this task needs. Use a current model name from xAI's list.
  3. On a new account the first data call asks for complete_setup, which needs what you want the data for. Finish it once with your own words.
  4. Confirm the answer quotes real rows with observed_at. If a tool reports a missing key, the header did not arrive. Call GET /api/v1/projections from your server and pass the rows to Grok instead.
xAI Responses API
curl https://api.x.ai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
  "model": "grok-4.7",
  "input": [{"role": "user", "content": "Call get_coverage, then get_projections with league NBA, view compact and limit 5. Send user_request describing this task. Report the rows and observed_at. If the board is empty or delayed, say so."}],
  "tools": [{
    "type": "mcp",
    "server_url": "https://prizepicksapi.com/api/mcp",
    "server_label": "prizepicks",
    "allowed_tools": ["complete_setup", "get_coverage", "get_projections"],
    "headers": {"Authorization": "Bearer '"$PRIZEPICKS_API_KEY"'"}
  }]
}'

Grok chat

Paste a board. It works anywhere you can paste text, and the chat never holds your key.

  1. Copy a board as short text with the request below. It copies to your clipboard on a Mac. Elsewhere, drop | pbcopy and copy the output.
  2. Paste it into Grok after the prompt below, then ask your question.
Copy the board
curl -s "https://prizepicksapi.com/api/v1/export?league=NBA&stat=Points&format=text" \
  -H "Authorization: Bearer $PRIZEPICKS_API_KEY" \
  -H "X-User-Request: Export NBA points board for chat analysis" | pbcopy
Prompt
Below is a PrizePicks board exported from prizepicksapi.com. Use only these rows for lines. Quote the read time from the header when you state a line, and tell me if it is more than an hour old. Available sides on goblin and demon lines vary; inspect selections[].available. This is information for analysis, not betting advice.

[paste the board here]

My question:

A pasted board is a snapshot. Copy it again when you need newer lines.

Questions

Can the Grok chat app connect to this MCP server?

We could not confirm that it accepts a custom MCP server with an API key, so this guide does not describe one. Paste the board instead. Never paste your API key into a chat.

Why does the xAI API example use headers rather than authorization?

Our server accepts only the exact header Authorization: Bearer followed by your key. xAI documents authorization as a token set in that header, without saying whether it adds the Bearer prefix. The headers field leaves no doubt about what is requested.

What does the xAI API route cost?

Two separate bills: xAI charges for the model and its tool use, and each data call uses credits on your plan here.

Is this an official PrizePicks integration?

No. This is an independent API and is not affiliated with PrizePicks.

A step no longer matches what you see? Tell us and we will fix this page.

References