Cricket MCP服务器
一个模型上下文协议(MCP)服务器,提供来自Cricbuzz的全面板球数据。该服务器提供实时板球统计数据、球员信息、比赛日程和新闻更新。
特性
- 球员统计:获取详细的板球运动员统计数据,包括所有格式(测试、ODI、T20)的击球和保龄球记录
- 现场比赛:获取当前正在进行的板球比赛
- 赛程:获取即将到来的板球比赛时间表
- 板球新闻:最新板球新闻和更新
- ICC排名:国际刑事法院对测试、ODI和T20格式的击球、保龄球、全能运动员和球队的官方排名
- 比赛记分卡:详细的比赛分析,包括击球和保龄球统计数据
- 现场评论:给定比赛URL的最近逐球更新
- 网页搜索:在互联网上搜索板球主题的标题/片段
安装
- 克隆或下载此存储库
- 安装所需的依赖项:
pip install -r requirements.txt演示:Gradio Web UI
您可以使用Gradio和Gemini提供的对话式web界面与Cricket MCP服务器进行交互。
1.设置Gemini API密钥
您需要一个Google Gemini API密钥来使用会话代理。将其设置为环境变量:
export GOOGLE_API_KEY="your-gemini-api-key"2.运行Gradio演示
python3 cricket_gradio.py这将在您的浏览器中启动一个web UI,您可以在其中与板球助手聊天,询问统计数据、现场比赛、新闻等。
提示: 聊天UI支持对话记忆和丰富的响应。
用法
作为MCP服务器运行
服务器可以与MCP客户端集成。以下是如何配置它:
{
"cricket": {
"command": "python3",
"args": ["cricket_server.py"],
"transport": "stdio",
}
}为了实现更灵活的设置,您可以使用环境变量来定义python可执行文件和服务器脚本路径。
独立运行
出于测试目的,您可以直接运行服务器:
python3 cricket_server.py可用工具
1.get_player_stats
获取全面的板球运动员统计数据。
参数:
player_name(str):板球运动员的姓名match_format(str,可选):特定格式(“测试”、“ODI”、“T20”)。如果未提供,则返回所有格式。
退货:
- 玩家基本信息(姓名、国家、角色、图片)
- ICC击球和保龄球排名
- 详细的击球统计数据
- 详细的保龄球统计数据
例子:
# Get all stats for a player
stats = get_player_stats("Virat Kohli")
# Get only T20 stats
t20_stats = get_player_stats("Virat Kohli", "T20")2.get_live_matches
获取当前实时板球比赛。
退货: 现场比赛信息列表,包括球队和当前状态。
3.获取时间表
获取即将到来的板球比赛时间表。
退货: 即将到来的国际板球比赛列表,包括日期和详细信息。
4.获取新闻
获取最新的板球新闻。
退货: 板球新闻文章列表,包括标题、描述、时间戳和类别。
5.get_icc_rankings
获取ICC各类板球的官方排名。
参数:
category(str):排名类别。必须是以下之一:“击球”、“保龄球”、“全能选手”或“团队”。
退货: 包含Test、ODI和T20格式排名的词典。每种格式都包含一份球员或球队的名单,包括他们的位置、姓名、国家和评级。
例子:
# Get batting rankings
batting_rankings = get_icc_rankings("batting")
# Get bowling rankings
bowling_rankings = get_icc_rankings("bowling")
# Get team rankings
team_rankings = get_icc_rankings("teams")6.获取详细信息
获取特定板球比赛的详细记分卡。
参数:
match_url(str):Cricbuzz上比赛的URL(可以从get_live_matches获得)。
退货: 包含比赛详细信息的词典,包括比赛标题、结果和每局的详细记分卡,以及击球和保龄球统计数据。
7.get_live_备忘录
获取特定板球比赛的最新现场评论。
参数:
match_url(str):Cricbuzz比赛页面URL(一般比赛或直接评论选项卡)limit(int,可选):要返回的最近项目的最大数量(默认值为20)
退货: 词典包含 title, commentary_url,以及 events (评论行列表)。
例子:
commentary = get_live_commentary("https://www.cricbuzz.com/live-cricket-scorecard/12345")8.网络搜索
搜索网络并返回包含标题和片段的结果。
参数:
query(str):搜索查询num_results(int,可选):结果数(默认为5)site_filter(str,可选):限制为域,如cricbuzz.com
退货: 结果列表: { "title": str, "url": str, "snippet": str }.
9.搜索_视频_备注
在网上搜索板球比赛的实时评论和更新。
参数:
match_description(str,可选):完整的比赛描述(例如,“津巴布韦vs新西兰第二场比赛”)team1(str,可选):第一个团队名称team2(str,可选):第二个团队名称
退货: 板球新闻网站实时评论和比赛更新的网络搜索结果列表。
例子:
# Search by match description
results = search_live_commentary(match_description="Zimbabwe vs New Zealand 2nd Test")
# Search by team names
results = search_live_commentary(team1="Zimbabwe", team2="New Zealand")数据源
该服务器从Cricbuzz.com抓取数据,并使用谷歌搜索来发现玩家个人资料。请确保您遵守网站的服务条款并负责任地使用。
依赖项
fastmcp:MCP服务器框架requests:用于web抓取的HTTP库beautifulsoup4:HTML解析库lxml:XML/HTML解析器googlesearch-python:谷歌搜索API包装
配置
默认情况下,服务器在stdio传输上运行。基本使用不需要额外的配置。
错误处理
该服务器包括全面的错误处理功能,用于:
- 网络连接问题
- 玩家名称无效
- 缺少Cricbuzz的数据
- 搜索失败
MCP目录徽章
将此徽章添加到您的README中,以显示您的服务器已列出且安全:
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。
贡献
请随时提交问题和增强请求!
免责声明
该工具从公共网站抓取数据。作者不对任何滥用或违反网站服务条款的行为负责。负责任地使用并确保遵守适用的条款和条件。
