nfl_query

Pro tier

Custom SQL

LAST RESORT: Execute raw SQL only when nfl_search_plays, nfl_team_stats, nfl_player_stats, and nfl_compare cannot answer the question. Requires calling nfl_schema first. Read-only SELECT only. 500 row cap. 10s timeout. Traps: player names in `plays` are short form ('P.Mahomes'); `player_stats` uses full display names. `schedules.total` is ACTUAL points scored — the betting line is `total_line`. `officials` joins to other tables via the standard `game_id`.

Minimum tier
Pro
Data coverage
Varies by query

Parameters

NameTypeRequiredDescription
sqlstringRequiredA SQL SELECT query.
max_rowsintegerOptionalMax rows to return (default 100, max 500)Default: 100

Example request

A Model Context Protocol tools/call over Streamable HTTP. Replace YOUR_API_KEY with a key from your dashboard.

curl -X POST https://mcp.nflmcp.com/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": "nfl_query",
    "arguments": {
      "sql": "SELECT season, COUNT(*) AS plays FROM plays WHERE season = 2024 GROUP BY season",
      "max_rows": 5
    }
  }
}'

Example response

{
  "rows": [
    {
      "season": 2024,
      "plays": 46779
    }
  ],
  "row_count": 1,
  "truncated": false
}