NFL Analytics MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_warehouseA | Run a read-only SELECT against the NFL warehouse (DuckDB). Multiple statements are rejected. See describe_warehouse for tables and gotchas. |
| describe_warehouseA | List tables/views (no arg) or show one table's columns plus the relevant data-dictionary notes (gotchas, join keys, conventions). |
| team_formB | Team record, EPA splits (season-to-date and last 5 games), rest/travel profile, and next scheduled game. through_week=0 means whole season. |
| player_lookupA | Find a player (name substring or gsis_id), return id bridge, bio, and recent season stat lines from the cross-era weekly view. |
| predict_gameA | Model prediction for a matchup: home win probability, predicted margin, feature inputs. Uses schedule rest days if the game is scheduled; attaches the market line when available. Early-season caveat applies (weeks 1-3). |
| power_ratingsC | Current model power ratings for all teams (EPA/play units; ratings entering the next game). net = mean(off) - mean(def); lower def is better. |
| model_reportB | Backtest summary and the honest verdict from the last training run. |
| kalshi_marketsA | Open Kalshi NFL markets. kind: game | spread | total | win_totals | superbowl. Optional team filter (canonical code, e.g. DET). Prices are probabilities in dollars (0.64 = 64c = 64% implied). |
| kalshi_market_detailB | One market's full picture: current prices, top-of-book depth, implied probability at bid/mid/ask, spread width, and estimated fee. |
| kalshi_snapshot_nowA | Record a price snapshot of ALL open NFL markets into kalshi.duckdb (adds to line-movement history). Also runs on the 6h schedule. |
| kalshi_price_historyC | Recorded price history for one market from accumulated snapshots. |
| coach_profileC | Head coach career: records, playoffs, ATS, 4th-down aggressiveness, pass-rate-over-expected, scheme identity (curated), rivalry records. |
| referee_statsA | Head referee tendencies 2015+: penalties/game, home penalty bias, over rate, home win/cover rates. Empty name = all refs ranked. |
| betting_boardC | Upcoming games: Vegas lines vs live Kalshi prices with dislocation flags (market-vs-market, fee-adjusted) and situational angles. |
| news_searchA | Full-text search over ALL stored news (ESPN, team sites, PFT, Yahoo) ranked by relevance. e.g. 'Gibbs hamstring', 'coaching change Arizona'. |
| player_newsA | Recent news and injury-report entries for a player (name or gsis_id), from the polled ESPN feeds in news.duckdb. |
| league_newsA | Latest league headlines (optionally filtered to one team) from the polled ESPN news feed. |
| data_statusA | Coverage and staleness: latest season/week per core table, last refresh-log lines, and whether a refresh looks needed. |
| refresh_dataA | Download latest nflverse data and rebuild the warehouse (~1-2 min). Runs as a subprocess so the server holds no DB handle during rebuild. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Every tool targets a distinct resource and action: player vs team vs game vs market vs warehouse. Even the news trio is separated by scope, and the kalshi quartet clearly separates listing, detail, snapshot, and history.
Tool names mix conventions: some are verb-first (predict_game, refresh_data, query_warehouse, describe_warehouse), others are noun-first (team_form, player_lookup, kalshi_markets). The kalshi_ prefix provides local consistency, but the overall pattern is not uniform.
With 19 tools, the server is slightly above the ideal 3-15 range, but the comprehensive scope—data ingestion, analytics, news, betting markets, and model reporting—justifies the count. Each tool earns its place.
The tool surface covers the full lifecycle: data refresh and status, warehouse querying and schema discovery, player/team/coach/referee analytics, news search, betting market analysis, and model prediction/reporting. No obvious dead ends or missing key operations.