Integration guide, checked 5 November 2026

Use with Grok

Short answerIn an xAI API request, add a tool of type mcp with server_url https://fanduelapi.com/api/mcp, a server_label, and authorization set to Bearer and your key. Grok then calls the props tools itself.

FanDuel API is an independent data service operated by FF API Inc. It is not affiliated with, endorsed by or sponsored by FanDuel.

Set it up

  1. Get a key

    Create a free key at https://fanduelapi.com/dashboard/keys, or let the agent start the signup for you through https://fanduelapi.com/connect. Store it as FANDUEL_API_KEY; it is shown once.

  2. Remote MCP tool in the xAI API

    Your code holds the key; the request passes it to the MCP server.

    Python
    import os
    from xai_sdk import Client
    from xai_sdk.chat import user
    from xai_sdk.tools import mcp
    
    client = Client(api_key=os.environ["XAI_API_KEY"])
    chat = client.chat.create(
        model="grok-4",
        tools=[mcp(
            server_url="https://fanduelapi.com/api/mcp",
            server_label="fanduelapi",
            authorization="Bearer " + os.environ["FANDUEL_API_KEY"],
        )],
    )
    chat.append(user("List FanDuel NBA assists props for tonight and the ones that moved."))
    print(chat.sample().content)
  3. Check the key with one REST call

    If a client cannot reach MCP, the same data is plain REST.

    Terminal
    export FANDUEL_API_KEY=<your key>
    curl "https://fanduelapi.com/api/v1/props?sport=nba&stat=points&limit=3" \
      -H "Authorization: Bearer $FANDUEL_API_KEY"

A first prompt

Bounded and specific, so the first answer shows whether the data fits.

Prompt
Use the FanDuel API MCP server. List tonight's NBA points props from FanDuel for one game, show each line with the over and under prices, and flag any prop whose line moved since it opened. Quote meta.as_of.

If something is off

The tools list is empty or the server will not connect

The server speaks streamable HTTP as stateless JSON over POST at https://fanduelapi.com/api/mcp. A client that only speaks SSE or stdio needs a bridge such as mcp-remote.

A tool says it needs an API key

Data tools need the Authorization header. search_docs, fetch_doc, get_sample_props and send_feedback work without one.

A 429 or quota error

Relay error.user_message to the person as is. Wait until error.reset_at for a rate limit; a monthly quota needs the month to reset or a plan change, which only the person can approve.

Other clients

The same server works anywhere MCP does. Everything an agent needs is in the agent guide and the llms.txt file.