Get StartedDocs

Connect your agent

The StatMuse MCP server puts the sports answers behind statmuse.com directly into your agent as Model Context Protocol tools any agent can call for player and team search, stats queries, schedules, box scores, scheduled-game betting odds, play-by-play, standings, injuries, NFL fantasy projections, news and a season briefing that grounds the agent in what’s happening right now. Connect it from your MCP client and ask in plain English; no code required.

  • Endpoint: https://api.statmuse.com/mcp (streamable HTTP)
  • Auth: sign in with your statmuse.com account (headless services can use an API key instead; see Server-to-server access)
  • Quota: tool calls draw from the same monthly quota as your REST requests, so one quota covers both. See Rate Limits & Quotas.

Tools

Sixteen tools cover everything StatMuse answers. You don’t call them yourself. Your agent picks and chains them, and it receives full instructions for each tool automatically when it connects.

  • search_player: look up players by name and get the player IDs the other tools use.
  • search_team: resolve a team by name, mascot or abbreviation to its team ID.
  • get_stats: run a stats query: leaders, splits, game logs, season and career totals.
  • get_stats_guide: league-specific stat keys and query examples; agents load it before their first stats query.
  • get_games: a team’s schedule, or every game in a league across a date range, with scores and status.
  • get_game_details: box scores, lineups, venue details and weather, plus betting odds for scheduled games when available (except CFB), batched across games.
  • get_game_plays: a single game’s play-by-play: a curated recap or the full event log, filterable by period, team or scoring plays.
  • get_standings: win/loss records, ranks, games behind and clinched status for any season.
  • get_news: recent article summaries, league-wide or scoped to a player or team (every sport except FC).
  • get_article: full article text for stories surfaced by get_news (every sport except FC).
  • get_player_detail: player cards: bio, draft, awards and recent news.
  • get_player_injuries: the current injury report for a league or specific teams (every sport except CFB and FC).
  • get_team_roster: a team’s roster for a given season: each player’s number, position, height, weight and age.
  • get_season_briefing: the present-day snapshot of a league: current season, the games around today, standings, recent news and the next scheduled game.
  • get_projections: fantasy point and stat projections for players and team defenses, by week or season (NFL only).
  • submit_feedback: lets your agent report friction with these tools: errors, unclear descriptions or missing capabilities.

Single tools answer single questions; your agent chains them on its own:

  • “What’s going on in the NBA right now?”: get_season_briefing
  • “Compare Shai and Jokić’s seasons”: search_player → get_stats_guide → get_stats
  • “What happened in the NBA last night?”: get_games → get_game_details
  • “Catch me up on the Lakers”: search_team → get_standings → get_news → get_article

Sign-in, not pasted secrets

Interactive MCP clients authenticate with OAuth: when you connect, your client opens a sign-in page, you log in with your statmuse.com account, and the client receives its own token. There is nowhere to paste an API key in these clients, and you never need one (see Authentication).

This means your client must support remote MCP servers with OAuth. Most major clients do; see Connect MCP clients below.

Building a backend integration with no human to sign in? The server also accepts API keys; see Server-to-server access at the bottom of this page.

Before you connect

You need active StatMuse API access. During the beta that comes with a StatMuse+ membership (see Get Started). Get access first, then connect: without it the connection itself is refused, which most clients surface as a generic authorization error. If your membership or subscription changes later, disconnect and reconnect the client.

Connect MCP clients

Step-by-step setup for common clients. Client UIs change often. If a step doesn’t match what you see, the client’s own documentation is the source of truth, and Other clients has everything a client needs to connect.

Let your agent connect itself

Paste https://developer.statmuse.com/skill.md into your agent and ask it to connect StatMuse. It gives you the steps for that client. Coding agents can install it as a skill instead:

npx skills add https://developer.statmuse.com

Claude (claude.ai and Claude Desktop)

Custom connectors are available on every Claude plan (the Free plan allows one). These steps work in both the claude.ai web app and Claude Desktop.

  1. Open Settings → Connectors.

  2. Click Add custom connector.

  3. Name it StatMuse and set the URL to https://api.statmuse.com/mcp.

  4. If the dialog asks how to authenticate, keep the options Claude detects for this server:

    • Authentication: Sign in now. Every StatMuse tool needs your account, so there is nothing to use before signing in.
    • OAuth client: Use Claude’s published identity. StatMuse supports Client ID Metadata Documents, so Claude identifies itself without registering a new OAuth client for each connection.

    If your organization still sees a single-screen dialog with Advanced settings, leave the OAuth client ID and secret blank.

  5. Click Add, then Connect, and sign in with your statmuse.com account when the authorization page opens.

  6. In a chat, enable the StatMuse connector from the tools menu and ask a question.

See Claude’s own guide to custom connectors for details.

Claude Code

claude mcp add --transport http statmuse https://api.statmuse.com/mcp

Then, inside Claude Code, run /mcp, select statmuse and choose Authenticate. Your browser opens the sign-in page. Once connected, /mcp lists the available tools.

See the Claude Code MCP docs for scopes (user vs. project) and management commands.

ChatGPT

ChatGPT connects to MCP servers through custom plugins. Custom plugins are available on paid plans (Plus, Pro, Business, Enterprise and Edu) in the web app and Desktop; the mobile apps can use a plugin but not create one. In Business, Enterprise or Edu workspaces an admin may need to allow custom MCP servers first.

  1. Open chatgpt.com/plugins.

  2. Click Add and choose Add custom MCP server. If that option is missing, your plan or workspace doesn’t allow custom servers.

  3. Name it StatMuse, leave Connection on the server URL option and set it to https://api.statmuse.com/mcp.

  4. Set Description to the text below. ChatGPT decides which plugin answers a question from this description, so a description of the connection (“connects to the StatMuse MCP server”) sends sports questions to web search instead.

    Answers NBA, NFL, MLB, NHL, WNBA, college football and soccer questions from StatMuse: player and team stats, leaders, records, splits, game logs, schedules, scores and box scores, standings, injuries, play-by-play, news and fantasy matchups. Use it for any sports stats question instead of web search.
  5. Leave Authentication on OAuth. Every StatMuse tool needs your account, so there is nothing to use without signing in.

  6. Read the custom-server notice and click I understand and want to continue, then Create as a plugin.

  7. The plugin appears in your personal plugins directory. Install it, then sign in with your statmuse.com account when the authorization page opens.

  8. In a chat, switch the composer from Chat to Work, type @StatMuse, and ask a question.

See OpenAI’s guide to connecting a custom MCP server for details.

Other clients

Any client that speaks the streamable HTTP transport and OAuth can connect:

  • Endpoint: https://api.statmuse.com/mcp
  • Transport: streamable HTTP. The server is stateless: no session, no SSE stream.
  • Auth: OAuth 2.1 with dynamic client registration. Clients discover the authorization server automatically from the endpoint; there is nothing to preconfigure. You sign in with your statmuse.com account.

Clients configured by file typically need no more than:

{
  "mcpServers": {
    "statmuse": {
      "url": "https://api.statmuse.com/mcp"
    }
  }
}

The exact shape varies by client, so check its documentation.

Managing access

Every client you connect appears as a connected agent on the portal’s Connected agents page, where you can review and disconnect it. Disconnecting revokes that agent’s access immediately; you can always reconnect from the client later.

Sport coverage

The MCP tools cover NBA, MLB, WNBA, NHL, NFL, CFB and FC. PGA is available through the REST API only.

Server-to-server access

Everything above assumes an interactive client and a human who can sign in. If you’re wiring the MCP server into a backend service or agent framework with no user present, authenticate with your REST API key instead: send it in the x-statmuse-api-key header on every request and skip OAuth entirely.

curl https://api.statmuse.com/mcp \
  -X POST \
  -H "x-statmuse-api-key: $STATMUSE_API_KEY" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Either way it’s the same account: one quota, one rate limit. Two caveats:

  • Interactive clients can’t do this. The connector UIs in Claude, ChatGPT and similar clients have nowhere to set a custom header; connect those with sign-in as described above. Clients configured by file or code (the MCP SDKs, Claude Code’s --header flag, most gateways) can.
  • Revoke the key, not a connected agent. A key-authenticated caller never appears on the Connected agents page. To cut off its access, revoke the key from the dashboard, exactly as for REST.