板球预测服务器

一个基于Python的板球预测模型服务器,提供预测比赛结果、获取球员数据等功能,并支持与LLMs和MCP客户端的交互。

  • by austinnoronha
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 austinnoronha/mcp_server_with_uv

使用说明

板球预测MCP服务器

这是一个样本 模型上下文协议(MCP) 使用Python构建的服务器,演示如何向LLM和MCP客户端公开工具和资源。它还包括一个与Google Gemini集成的MCP客户端示例。

特性

  • 预测赢家工具:预测两支板球队之间的胜者(模拟逻辑)。
  • 获取玩家统计工具:返回板球运动员的模拟统计数据。
  • 获取印度俘虏信息工具:返回板球运动员的模拟统计数据或领先统计数据,包括奖杯和退役状态。
  • 匹配数据CSV资源:将模拟板球比赛数据作为CSV资源公开,并支持采样行。
  • MCP客户端:使用MCP和Google Gemini的示例客户端(需要API密钥)。
  • Web GUI客户端:一个Bootstrap+jQuery聊天界面,用于通过FastAPI与MCP服务器交互。

设置

  1. 安装 紫外线:
    # Follow instructions at https://astral.sh/uv/
    
  2. 安装依赖项:
    uv venv
    uv add "mcp[cli]" httpx pre-commit fastapi uvicorn jinja2 python-dotenv
    
  3. 设置Google Gemini API密钥:
    • 创建一个 .env 项目根目录中的文件,内容如下:
      GEMINI_KEY=your-gemini-api-key-here
      

预提交钩子

设置预提交挂钩以确保代码质量:

  1. 安装预提交挂钩:
    uv run pre-commit install
    
  2. 手动运行所有预提交钩子:
    uv run pre-commit run --all
    

运行服务器

运行MCP服务器(现在命名为 mcp_server.py):

uv run mcp dev mcp_server.py

运行客户端

运行MCP客户端(需要 .env 使用Gemini API密钥):

uv run python mcp_client.py

MCP客户端GUI(Bootstrap+jQuery)

使用Bootstrap和jQuery提供了一个简单的基于web的聊天客户端,由FastAPI提供服务。

如何启动GUI客户端

  1. 启动FastAPI后端:
    uvicorn app:app --reload
    
  2. 打开浏览器并转到:
    http://localhost:8000
    
  3. 使用聊天界面与MCP服务器交互。
    • 键入您的消息,然后单击“发送”。
    • 等待响应时将出现加载微调器。
    • 助理的回复将显示在聊天窗口中。

用法

此服务器公开以下MCP工具和资源:

工具

  • predict_winner(team1: str, team2: str) -> str:预测两队之间的胜者(模拟逻辑)。
  • get_player_stats(player_name: str) -> str:返回玩家的模拟统计数据。
  • get_indian_captian_information(player_name: str) -> str:返回板球运动员和印度队长的统计数据,包括赢得的奖杯、年龄范围和退役状态。如果播放器不存在,则返回不存在消息。

资源

  • match_data_csv() -> str:以CSV格式返回模拟匹配数据。[待办事项]

关于MCP

模型上下文协议(MCP)规范了应用程序如何向LLM提供上下文和工具。了解更多信息,请访问 模型上下文协议.io.


此项目仅用于演示目的,使用模拟数据和逻辑。