Hosted MCP server

Give Claude, Cursor, ChatGPT or any other Model Context Protocol client direct access to live scores, schedules, play-by-play, box scores, odds, rosters, injuries and news. There is nothing to install: the server is hosted at one URL and uses your existing API key.

Endpoint: https://www.realtimesportsapi.com/api/mcp (Streamable HTTP)

Auth: Authorization: Bearer YOUR_API_KEY, the same key as the REST API (get a free key).

Metering: each tool call counts as one API call against your monthly quota, exactly like a REST request. Connecting and listing tools are free.

Coverage and freshness: 29 leagues monitored live (NFL, college football, NBA, men's college basketball, MLB, NHL, 23 soccer competitions). Data is aggregated from public sources and is typically 20-30 seconds behind live play. No SLA.

Claude Code

claude mcp add --transport http realtime-sports https://www.realtimesportsapi.com/api/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"

Then ask, for example: "Which NFL games are live right now?" or "Show me the college football week 6 schedule."

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "realtime-sports": {
      "url": "https://www.realtimesportsapi.com/api/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Claude Desktop

Option A, custom connector: in Settings, Connectors, choose Add custom connector and paste the URL with your key as a query parameter (custom connectors don't accept headers):

https://www.realtimesportsapi.com/api/mcp?key=YOUR_API_KEY

Option B, config file: keep the key in a header by bridging through mcp-remote in claude_desktop_config.json (requires Node.js):

{
  "mcpServers": {
    "realtime-sports": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.realtimesportsapi.com/api/mcp",
               "--header", "Authorization:${RSA_AUTH}"],
      "env": { "RSA_AUTH": "Bearer YOUR_API_KEY" }
    }
  }
}

ChatGPT (connectors)

ChatGPT can add remote MCP servers as custom connectors when developer mode is enabled (Settings, Apps & Connectors, Advanced). Create a connector with the URL below and choose no authentication, since the key travels in the URL. Menu names change often; check OpenAI's current connector documentation if these steps don't match.

https://www.realtimesportsapi.com/api/mcp?key=YOUR_API_KEY

A URL that contains your key is a secret. Don't share screenshots of it; if it leaks, rotate the key in the dashboard.

Any other client, or a quick test

The server is stateless: every request is a JSON-RPC POST. Try it with curl:

curl -s https://www.realtimesportsapi.com/api/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_live_events","arguments":{"sport":"football","league":"nfl"}}}'

Tools

All tools are read-only. Lists return compact game objects by default (pass detail: "full" for the complete REST shape). Standings are not available yet.

ToolArgumentsReturns
list_leagues-The 29 monitored leagues with the sport/league slugs the other tools take.
get_live_eventssport, league, include_odds?, detail?Games in progress now, with score, clock and status.
get_eventssport, league, limit?, detail?Current scoreboard: recent, live and upcoming games.
get_eventsport, league, event_id, include_odds?Full details for one game.
get_playssport, league, event_id, limit?, page?Play-by-play, paginated.
get_box_scoresport, league, event_idTeam totals and player stats.
get_oddssport, league, event_idCurrent spread, moneyline and total (single source book).
get_schedulesport, league, start_date?, end_date?, season?, week?, season_type?, detail?Games for a date range (up to 31 days) or an NFL/college football week.
list_teamssport, league, limit?, page?Teams in a league.
get_teamsport, league, team_idOne team: record, standing summary, venue.
get_team_rostersport, league, team_idCurrent roster grouped by position.
search_athletessport, league, query, limit?Find players by name.
get_injuriessport, league, team_id?Current injury report.
get_newssport, league, team_id?, limit?Latest league or team headlines.

Errors and limits

Also available: OpenAPI spec, Postman collection, llms.txt.