Fantasy Football Data Suite
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Documented (README)
claude mcp add stathead -- npx -y stathead-mcp{
"mcpServers": {
"stathead": {
"command": "npx",
"args": ["-y", "stathead-mcp"]
}
}
}MCP Servers overview
# StatHead
**An open NFL fantasy-football analytics platform** — live data, machine-learned
projections, dynasty values, and prospect grades, served as a web app **and** as
an [MCP](https://modelcontextprotocol.io) server you can plug straight into
Claude or any AI client.
- 🌐 **Web app** — [stathead.app](https://stathead.app)
([QA mirror](https://dachhack.github.io/stathead/))
- 🤖 **MCP server** — 30 NFL tools for AI projects → [`mcp/`](mcp/)
- 🧠 **ML pipeline** — projection / dynasty-value / prospect models trained from
10+ seasons of data
- 📦 **MIT-licensed code.** ⚠️ The **data** has its own terms —
see [`DATA_SOURCES.md`](DATA_SOURCES.md) before redistributing anything.
---
## Use it in your own AI project (MCP)
The fastest way to build on StatHead. No clone, no build:
```bash
npx -y stathead-mcp
```
**Claude Code:**
```bash
claude mcp add stathead -- npx -y stathead-mcp
```
**Claude Desktop** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"stathead": { "command": "npx", "args": ["-y", "stathead-mcp"] }
}
}
```
Then ask things like *"Compare Bijan Robinson's and Jahmyr Gibbs' weekly
consistency in 2024"* or *"Top 10 dynasty WRs by StatHead value, with their
ages."* Full tool list and configuration: [`mcp/README.md`](mcp/README.md).
## Run the web app locally
```bash
npm install
npm run dev # Vite dev server
```
Other useful scripts:
| Script | What it does |
| --- | --- |
| `npm run build` | Production build (semantic layer → features → tsc → vite → Pages post-build) |
| `npm run build:mcp` | Bundle the MCP server → `mcp/dist/server.mjs` |
| `npm run mcp` | Run the MCP server from source (`tsx`) |
| `npm run lint` | ESLint |
| `npm run data:local` | Download data sources for local work |
The repo is a TypeScript/React (Vite) front end plus a TypeScript + Python data
& ML pipeline under [`scripts/`](scripts/) and [`python/`](python/). The same
tool layer (`src/tools.ts` → `src/data.ts`) backs both the app and the MCP
server.
## Data
StatHead pulls from many upstreams — open data (nflverse, DynastyProcess, CFBD),
public APIs (Sleeper, ESPN, FantasyFootballCalculator), proprietary community
values (KeepTradeCut, FantasyCalc), and derived features from paid scouting
products. **Licensing varies a lot by source.**
👉 **Read [`DATA_SOURCES.md`](DATA_SOURCES.md) before redistributing data,
publishing a dataset, or shipping a commercial product.** The short version:
share the open sources and StatHead's own model outputs freely; fetch the rest
from the original source under your own access rather than rebundling it.
## Data proxies (self-hosting)
Live KeepTradeCut, FantasyCalc, and ESPN data is fetched through small
Cloudflare Worker CORS proxies, because those upstream APIs block direct
browser requests. The worker source lives under [`workers/`](workers/) and a
deploy workflow is in
[`.github/workflows/deploy-workers.yml`](.github/workflows/deploy-workers.yml).
By default the app points at the upstream project's workers, so it works as
soon as you clone it. **If you deploy your own copy, stand up your own workers**
(so you don't depend on — or get rate-limited by — someone else's) and override
the URLs via env vars. Copy [`.env.example`](.env.example) to `.env.local` and set:
| Var | Proxies |
| --- | --- |
| `VITE_KTC_PROXY` | KeepTradeCut dynasty values (`workers/ktc-proxy`) |
| `VITE_FC_PROXY` | FantasyCalc values (`workers/fc-proxy`) |
| `VITE_ESPN_NEWS_PROXY` | ESPN player news/overview (`workers/espn-news-proxy`) |
| `VITE_VISIT_TRACKER` | Visitor analytics beacon (`workers/visit-tracker`) |
Each falls back to the project's worker when unset. Deploy a worker with
`cd workers/<name> && npx wrangler deploy` (or use the deploy workflow).
### Visitor analytics
The app sends a first-party, cookie-less pageview beacon per tab view to
[`workers/visit-tracker`](workers/visit-tracker), which writes to Cloudflare
Workers Analytics Engine. No third parties, no identifiers stored in the
browser, no raw IPs kept — visitors are counted with a daily-rotating
anonymous hash, and Do Not Track / Global Privacy Control are honored.
Aggregates (daily views/visitors, top pages, referrers, countries) are served
by the worker's `/stats` endpoint and a small dashboard at its root URL. See
the worker's header comment for the data layout and the one-time
`CLOUDFLARE_ANALYTICS_API_TOKEN` setup.
## Environments
Two deploy targets, fed by the same codebase:
| Env | URL | Host | Base path | Trigger |
| --- | --- | --- | --- | --- |
| **QA** | `dachhack.github.io/stathead/` | GitHub Pages | `/stathead/` | push to the dev branch ([`deploy.yml`](.github/workflows/deploy.yml)) |
| **Production** | `stathead.app` | Cloudflare Pages | `/` | push to `production` ([`deploy-prod.yml`](.github/workflows/deploy-prod.yml)) |
The base path is set by the `BASE_PATH` env var in
[`vite.config.ts`](vite.config.ts) (default `/stathead/`); the prod
workflow builds with `BASE_PATH=/`. Everything in the app reads
`import.meta.env.BASE_URL`, so that one switch repoints every asset and
data URL.
**Promote QA → prod by merging the dev branch into `production`.** That
push builds for the root domain and uploads to Cloudflare Pages. See the
header of [`deploy-prod.yml`](.github/workflows/deploy-prod.yml) for the
one-time Cloudflare Pages + DNS setup.
## License
Code is [MIT](LICENSE). Data is **not** covered by that license — see
[`DATA_SOURCES.md`](DATA_SOURCES.md). The name "Stathead" may conflict with
[Sports Reference's Stathead](https://stathead.com) trademark; see the note in
that file.
What people ask about stathead
What is dachhack/stathead?
+
dachhack/stathead is mcp servers for the Claude AI ecosystem. Fantasy Football Data Suite It has 0 GitHub stars and its last recorded update is dated 2026-09-13.
How do I install stathead?
+
You can install stathead by cloning the repository (https://github.com/dachhack/stathead) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is dachhack/stathead safe to use?
+
Our security agent has analyzed dachhack/stathead and assigned a Trust Score of 82/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains dachhack/stathead?
+
dachhack/stathead is maintained by dachhack. The last recorded GitHub activity is dated 2026-09-13, with 1 open issues.
Are there alternatives to stathead?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy stathead to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/dachhack-stathead)<a href="https://claudewave.com/repo/dachhack-stathead"><img src="https://claudewave.com/api/badge/dachhack-stathead" alt="Featured on ClaudeWave: dachhack/stathead" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
The fastest path to AI-powered full stack observability, even for lean teams.