使用说明
StatsPlus MCP服务器
一 主控程序 暴露的服务器 StatsPlus API 作为与Claude和其他MCP兼容客户端一起使用的工具。
先决条件
- Node.js 18+
- 与球队关联的StatsPlus联赛账户
安装
git clone https://github.com/joshuarichard/StatsPlus-MCP.git
cd StatsPlus-MCP
npm install
npm run build
配置
获取会话cookie
StatsPlus API需要一个活动的浏览器会话。要获取您的cookie:
- 登录
https://statsplus.net/<your-league-url>在浏览器中 - 打开DevTools(
Cmd+Option+I在Mac上,F12在Windows/Linux上) - 首选 应用 → Cookie →
https://statsplus.net - 复制
sessionid和csrftoken值并将它们组合起来:sessionid=<value>;csrftoken=<value>
添加到您的MCP客户端
将以下内容添加到MCP客户端配置中(例如。 ~/.claude/mcp.json 克劳德代码):
{
"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>"
}
}
}
替换:
/path/to/StatsPlus-MCP--克隆此仓库的绝对路径<your-league-url>--你所在联盟的URL标记(例如。myleague,mlb2025)<sessionid>--thesessionid浏览器中的cookie值<csrftoken>--thecsrftoken浏览器中的cookie值
或者,使用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
可用工具
| 工具 | 说明 | 参数 |
|---|---|---|
get_player_batting_stats |
球员击球统计 | year?, pid?, split? |
get_player_pitching_stats |
球员投球统计 | year?, pid?, split? |
get_player_fielding_stats |
按位置划分的球员防守统计数据 | year?, pid?, split? |
get_team_batting_stats |
球队击球统计数据和速率统计数据 | year?, split? |
get_team_pitching_stats |
球队投球统计数据和速率统计数据 | year?, split? |
get_players |
球员名单,包括姓名和球队分配 | team_id?, org_id? |
find_player |
按名称搜索玩家(部分,不区分大小写) | name |
start_ratings_job |
启动异步评级导出;回报 poll_url 立即 |
-- |
get_ratings |
收集评分结果(通过 poll_url 以避免重新启动作业) |
poll_url?, player_ids? |
get_game_history |
所有有得分、命中率、失误和投手ID的大联盟比赛 | -- |
get_contracts |
所有当前和活跃的玩家合约 | team_id?, player_id? |
get_contract_extensions |
已签署的续约将在未来赛季生效 | -- |
get_teams |
带有ID和缩写的团队列表 | -- |
get_draft |
选秀权 | lid? |
get_exports |
CSV导出所有联赛 | -- |
拆分ID: 1 =总体而言, 2 =vs左手, 3 =vs右手
使用技巧
-
名称到ID解析: 使用
find_player(name)用于快速命名→ 无需下载完整名册即可查找ID。对于一个完整组织的玩家,使用get_players(org_id)通过以下方式过滤Parent Team ID. -
评级工作流程: 评级导出是一个异步作业,需要60-90秒。为避免阻塞工作流程中的进程,请调用
start_ratings_job()首先,在处理过程中进行其他查找,然后调用get_ratings(poll_url)收集结果:start_ratings_job() → { poll_url: "..." } get_player_batting_stats(...) ← runs concurrently get_contracts(team_id: ...) get_ratings(poll_url: "...") → results ready, no extra wait召唤
get_ratings()没有apoll_url开始一个新作业并阻塞直到完成。评分栏包括击球属性(Cntct,Gap,Pow,Eye,Ks)对于L/R分割,Pot*潜在对手和职位等级。关键编码注意事项:- 星级评级存储为
stars × 2--例如3.5颗星=7,5星级=10 - 国际复杂球员有 负面的
League价值(例如。-100) - 列名不能保证在OOTP版本之间稳定
- 星级评级存储为
-
前置原因/空响应: 在季前赛期间,所有统计端点都返回HTTP 204,没有来年的数据。总是通过
year=<most recent completed season>以获取数据。 -
实地考察:
get_player_fielding_stats每个玩家每个位置每次拆分返回一行。出现在多个位置的玩家将有多行——每行一行。 -
游戏历史:
runs0/hits0/errors0是主队;runs1/hits1/errors1是客队。winning_pitcher,losing_pitcher,starter0,以及starter1是数字玩家ID。save_pitcher是0当没有替补投手时。 -
合同:
salary0是当前赛季的工资,salary1是下个赛季,以此类推salary14人口稀少的年份0.is_major和no_trade是0/1整数。contract_team_id是持有合同的MLB组织(与team_id过滤器)。get_contract_extensions对已签署但尚未生效的交易使用相同的模式。 -
拆分: 所有接受
split参数使用1=总体而言,2=vs左手,3=vs右手。省略split返回每个玩家/团队的所有三行。
发展
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
许可证
麻省理工学院
