NBA API MCP服务器
一个全面的模型上下文协议(MCP)服务器,通过 nba_api 包裹。
](https://www.python.org/) 
特性
- 36工具 分为6类:
- 玩家工具 (8) -搜索、信息、职业统计、游戏日志、奖项、投篮图表、比较 - 团队工具 (8) -搜索、信息、名册、统计数据、比赛日志、领袖、阵容 - 实时数据工具 (4) -记分牌、现场比分、逐局游戏、投注赔率 - 联盟工具 (6) -排名、领袖、赛程、季后赛画面、球队历史 - 游戏工具 (5) -查找游戏、盒子分数(传统和高级)、逐个游戏 - 分析工具 (5) -忙碌统计、球员追踪、对决、投篮区、关键数据
- 3资源 为了快速访问数据:
- 所有NBA球员名单 - NBA现役球员名单 - 所有NBA球队名单
安装
先决条件
- Python 3.10或更高版本
- pip或uv包管理器
从源代码安装
# Clone the repository
git clone https://github.com/your-username/nba-api-mcp.git
cd nba-api-mcp
# Install with pip
pip install -e .
# Or install with uv
uv pip install -e .仅安装依赖项
pip install mcp nba_api pydantic配置
对于Kilo码/VS码
添加到MCP设置文件(~/.local/share/code-server/User/globalStorage/kilocode.kilo-code/settings/mcp_settings.json):
{
"mcpServers": {
"nba-api": {
"command": "python",
"args": ["-m", "nba_api_mcp.server"],
"cwd": "/path/to/nba-api-mcp/src",
"disabled": false,
"alwaysAllow": [],
"disabledTools": []
}
}
}或者,如果作为软件包安装:
{
"mcpServers": {
"nba-api": {
"command": "nba-api-mcp",
"disabled": false,
"alwaysAllow": [],
"disabledTools": []
}
}
}适用于克劳德桌面
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"nba-api": {
"command": "python",
"args": ["-m", "nba_api_mcp.server"],
"cwd": "/path/to/nba-api-mcp/src"
}
}
}对于Jan
一月 是一种支持MCP服务器的开源ChatGPT替代方案。
1.安装Jan
下载并安装Jan
2.安装MCP服务器
# Clone and install the NBA API MCP server
git clone https://github.com/epinnock/nba-api-mcp.git
cd nba-api-mcp
pip install -e .3.1月份配置MCP
- 打开Jan并前往 设置 (齿轮图标)
- 导航至 扩展 → 模型上下文协议
- 启用MCP支持
- 点击 添加服务器 并配置:
{
"nba-api": {
"command": "python3",
"args": ["-m", "nba_api_mcp.server"],
"env": {}
}
}或者直接编辑MCP配置文件:
- macOS/Linux:
~/.jan/mcp.json - 视窗:
%APPDATA%\jan\mcp.json
{
"mcpServers": {
"nba-api": {
"command": "python3",
"args": ["-m", "nba_api_mcp.server"],
"env": {}
}
}
}4.重新开始一月
重新启动Jan以加载MCP服务器。您应该在对话中看到NBA API工具。
5.与Jan一起使用
配置后,您可以向Jan提出以下问题:
- “今晚的NBA比赛是什么?”
- “向我展示勒布朗·詹姆斯的职业生涯数据”
- “获取当前NBA排名”
- “比较斯蒂芬·库里和凯文·杜兰特”
- “湖人本赛季的阵容是什么?”
Jan将自动使用NBA API MCP工具获取实时数据。
一月安装故障排除
如果MCP服务器未连接:
- 检查Python路径:确保
python3在您的PATH中,或使用完整路径:
{
"command": "/usr/bin/python3",
"args": ["-m", "nba_api_mcp.server"]
}- 检查安装情况:验证软件包是否已安装:
python3 -c "import nba_api_mcp; print('OK')"- 查看日志:检查Jan的开发人员控制台(Cmd+Option+I/Ctrl+Shift+I)是否有错误
- 手动测试:直接测试服务器:
python3 -m nba_api_mcp.server使用示例
配置后,您可以通过MCP客户端使用NBA API工具:
玩家查询
"Search for LeBron James"
→ search_players(query="LeBron James")
"Get LeBron's career stats"
→ get_player_career_stats(player_id=2544)
"Show me Steph Curry's shot chart this season"
→ get_player_shot_chart(player_id=201939)
"Compare LeBron and Jordan's stats"
→ compare_players(player_id_1=2544, player_id_2=893)团队查询
"Show me the Lakers roster"
→ get_team_roster(team_id=1610612747)
"Get Celtics team stats"
→ get_team_stats(team_id=1610612738)
"What are the best Lakers lineups?"
→ get_team_lineups(team_id=1610612747, min_minutes=50)实时数据
"What games are on tonight?"
→ get_scoreboard()
"Get the live box score for today's Lakers game"
→ get_live_box_score(game_id="0022400XXX")
"Show play-by-play for the current game"
→ get_live_play_by_play(game_id="0022400XXX")联盟信息
"Show NBA standings"
→ get_league_standings()
"Who leads the league in scoring?"
→ get_league_leaders(stat_category="PTS")
"Show the Western Conference playoff picture"
→ get_playoff_picture()博弈分析
"Find all Lakers vs Celtics games this season"
→ find_games(team_id=1610612747, vs_team_id=1610612738, season="2024-25")
"Get the box score for game 0022400123"
→ get_traditional_box_score(game_id="0022400123")
"Show advanced stats for that game"
→ get_advanced_box_score(game_id="0022400123")高级分析
"Show hustle stats for all players"
→ get_hustle_stats(player_or_team="player")
"Get player tracking stats for drives"
→ get_player_tracking_stats(stat_category="Drives")
"Show clutch time stats for teams"
→ get_clutch_stats(player_or_team="team", clutch_time="Last 5 Minutes")工具参考
玩家工具
| 工具 | 说明 |
|---|---|
search_players | 按名字搜索NBA球员 |
get_player_info | 获取详细的玩家信息 |
get_player_career_stats | 获取职业统计数据 |
get_player_game_log | 获取每场比赛的统计数据 |
get_player_awards | 获得奖项和成就 |
get_player_shot_chart | 获取射击图表数据 |
compare_players | 比较两个玩家 |
get_player_vs_player | 正面交锋统计数据 |
团队工具
| 工具 | 说明 |
|---|---|
search_teams | 搜索NBA球队 |
get_team_info | 获取团队信息 |
get_team_roster | 获取当前名册 |
get_team_stats | 获取团队统计数据 |
get_team_game_log | 获取游戏结果 |
get_team_leaders | 获取团队统计负责人 |
get_team_lineups | 获取阵容统计信息 |
get_team_vs_player | 球队vs球员统计数据 |
实时数据工具
| 工具 | 说明 |
|---|---|
get_scoreboard | 今天的比赛和比分 |
get_live_box_score | 现场游戏盒得分 |
get_live_play_by_play | 现场逐一播放 |
get_game_odds | 投注赔率 |
联盟工具
| 工具 | 说明 |
|---|---|
get_league_standings | 会议排名 |
get_league_leaders | 统计负责人 |
get_league_schedule | 赛季时间表 |
get_playoff_picture | 季后赛排名 |
get_player_stats_leaders | 所有玩家统计 |
get_franchise_history | 特许经营历史 |
游戏工具
| 工具 | 说明 |
|---|---|
find_games | 搜索游戏 |
get_game_summary | 游戏摘要信息 |
get_traditional_box_score | 传统统计数据 |
get_advanced_box_score | 高级统计数据 |
get_play_by_play | 完整的游戏 |
分析工具
| 工具 | 说明 |
|---|---|
get_hustle_stats | 骗局统计 |
get_player_tracking_stats | 跟踪数据 |
get_matchup_stats | 防守对决 |
get_shot_zones | 射击区域统计 |
get_clutch_stats | 离合器时间统计 |
通用球员/球队ID
热门玩家ID
- 勒布朗·詹姆斯:
2544 - 斯蒂芬·库里:
201939 - 凯文·杜兰特:
201142 - Giannis Antetokounmpo:
203507 - 尼古拉·约基奇:
203999 - 卢卡·唐契奇:
1629029 - 乔尔·埃姆比德:
203954 - 杰森·塔图姆:
1628369
团队ID
- 洛杉矶湖人队:
1610612747 - 波士顿凯尔特人队:
1610612738 - 金州勇士队:
1610612744 - 迈阿密热火队:
1610612748 - 纽约尼克斯队:
1610612752 - 芝加哥公牛队:
1610612741 - 布鲁克林篮网:
1610612751 - 费城76人队:
1610612755
使用 search_players 或 search_teams 查找任何球员或球队的ID。
发展
在本地运行
cd nba-api-mcp
python -m nba_api_mcp.server运行测试
pip install -e ".[dev]"
pytest代码格式化
black src/
isort src/API速率限制
NBA API可能会对请求进行速率限制。服务器会优雅地处理这个问题,但为了获得最佳结果:
- 避免快速连续地提出太多请求
- 尽可能缓存结果
- 使用静态资源查找球员/球队
贡献
欢迎投稿!请随时提交拉取请求。
- 复刻仓库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
免责声明
该项目不隶属于NBA或得到NBA的认可。所有NBA数据均来自公开可用的API。请尊重NBA网站 使用条款.
