StatsPlus Server
БесплатноНе проверенExposes the StatsPlus API as tools for MCP-compatible clients, enabling users to query player/team statistics, contracts, ratings, and game history via natural
Описание
Exposes the StatsPlus API as tools for MCP-compatible clients, enabling users to query player/team statistics, contracts, ratings, and game history via natural language.
README
An MCP server that exposes the StatsPlus API as tools for use with Claude and other MCP-compatible clients.
Prerequisites
- Node.js 18+
- A StatsPlus league account linked to a team
Installation
git clone https://github.com/joshuarichard/StatsPlus-MCP.git
cd StatsPlus-MCP
npm install
npm run build
Configuration
Getting your session cookie
The StatsPlus API requires an active browser session. To get your cookie:
- Log into
https://statsplus.net/<your-league-url>in your browser - Open DevTools (
Cmd+Option+Ion Mac,F12on Windows/Linux) - Go to Application → Cookies →
https://statsplus.net - Copy the
sessionidandcsrftokenvalues and combine them:sessionid=<value>;csrftoken=<value>
Adding to your MCP client
Add the following to your MCP client config (e.g. ~/.claude/mcp.json for Claude Code):
{
"mcpServers": {
"statsplus": {
"command": "node",
"args": ["/path/to/StatsPlus-MCP/dist/index.js"],
"env": {
"STATSPLUS_LEAGUE_URL": "<your-league-url>",
"STATSPLUS_COOKIE": "sessionid=<sessionid>;csrftoken=<csrftoken>"
}
}
}
Replace:
/path/to/StatsPlus-MCP— the absolute path where you cloned this repo<your-league-url>— your league's URL slug (e.g.myleague,mlb2025)<sessionid>— thesessionidcookie value from your browser<csrftoken>— thecsrftokencookie value from your browser
Alternatively, with the Claude Code CLI:
claude mcp add statsplus \
-e STATSPLUS_LEAGUE_URL=<your-league-url> \
-e "STATSPLUS_COOKIE=sessionid=<sessionid>;csrftoken=<csrftoken>" \
-- node /path/to/StatsPlus-MCP/dist/index.js
Available Tools
| Tool | Description | Parameters |
|---|---|---|
get_player_batting_stats |
Player batting statistics | year?, pid?, split? |
get_player_pitching_stats |
Player pitching statistics | year?, pid?, split? |
get_player_fielding_stats |
Player fielding statistics by position | year?, pid?, split? |
get_team_batting_stats |
Team batting statistics with rate stats | year?, split? |
get_team_pitching_stats |
Team pitching statistics with rate stats | year?, split? |
get_players |
Player roster with names and team assignments | team_id?, org_id? |
find_player |
Search players by name (partial, case-insensitive) | name |
start_ratings_job |
Start the async ratings export; returns poll_url immediately |
— |
get_ratings |
Collect ratings results (pass poll_url to avoid re-starting the job) |
poll_url?, player_ids? |
get_game_history |
All major league games with scores, hits, errors, and pitcher IDs | — |
get_contracts |
All current and active player contracts | team_id?, player_id? |
get_contract_extensions |
Signed extensions taking effect in future seasons | — |
get_teams |
Team list with IDs and abbreviations | — |
get_draft |
Draft picks | lid? |
get_exports |
CSV export of all league games | — |
Split IDs: 1 = Overall, 2 = vs Left-handed, 3 = vs Right-handed
Usage tips
Name-to-ID resolution: Use
find_player(name)for quick name → ID lookups without downloading the full roster. For a full org's players, useget_players(org_id)which filters byParent Team ID.Ratings workflow: The ratings export is an async job that takes 60–90 seconds. To avoid blocking mid-workflow, call
start_ratings_job()first, do your other lookups while it processes, then callget_ratings(poll_url)to collect results:start_ratings_job() → { poll_url: "..." } get_player_batting_stats(...) ← runs concurrently get_contracts(team_id: ...) get_ratings(poll_url: "...") → results ready, no extra waitCalling
get_ratings()without apoll_urlstarts a new job and blocks until complete. Ratings columns include batting attributes (Cntct,Gap,Pow,Eye,Ks) with L/R splits,Pot*potential counterparts, and positional grades. Key encoding notes:- Star ratings are stored as
stars × 2— e.g. 3.5 stars =7, 5 stars =10 - International complex players have a negative
Leaguevalue (e.g.-100) - Column names are not guaranteed to be stable across OOTP versions
- Star ratings are stored as
Preseason / empty responses: During preseason, all stat endpoints return HTTP 204 with no data for the upcoming year. Always pass
year=<most recent completed season>to get data.Fielding:
get_player_fielding_statsreturns one row per player per position per split. A player who appeared at multiple positions will have multiple rows — one for each.Game history:
runs0/hits0/errors0are the home team;runs1/hits1/errors1are the away team.winning_pitcher,losing_pitcher,starter0, andstarter1are numeric player IDs.save_pitcheris0when there is no save pitcher.Contracts:
salary0is the current season salary,salary1is next season, and so on throughsalary14. Unpopulated years are0.is_majorandno_tradeare0/1integers.contract_team_idis the MLB org that holds the contract (use this with theteam_idfilter).get_contract_extensionsuses the same schema for deals already signed but not yet in effect.Splits: All stat endpoints that accept a
splitparameter use1= Overall,2= vs Left-handed,3= vs Right-handed. Omittingsplitreturns all three rows per player/team.
Development
npm run build # Compile TypeScript
npm test # Run tests
npm run test:watch # Run tests in watch mode
npm run lint # Type-check without emitting
License
MIT
Установить StatsPlus Server в Claude Desktop, Claude Code, Cursor
unyly install statsplus-mcp-serverСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add statsplus-mcp-server -- npx -y github:joshuarichard/StatsPlus-MCPFAQ
StatsPlus Server MCP бесплатный?
Да, StatsPlus Server MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для StatsPlus Server?
Нет, StatsPlus Server работает без API-ключей и переменных окружения.
StatsPlus Server — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить StatsPlus Server в Claude Desktop, Claude Code или Cursor?
Открой StatsPlus Server на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare StatsPlus Server with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
