锦标赛管理服务器

一个基于模型上下文协议(MCP)的服务器,用于管理休闲网球或匹克球锦标赛,提供确定性的、有状态的锦标赛控制,包括玩家、比赛、轮次和排名管理。

  • by galois17
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 galois17/mcp-py-tournament

使用说明

锦标赛MCP服务器

此MCP服务器公开了一个模型上下文协议(MCP)服务器,用于管理休闲网球或泡菜球锦标赛。
它提供了对锦标赛(球员、比赛、轮次和排名)的确定性、有状态控制,同时通过Gemini或ChatGPT等LLM保持对话。

Walkthrough


为什么不让法学硕士来处理呢?

现代LLM可以在聊天中“配对玩家”或“记分”,但这会破坏你需要一致性、持久性或多用户控制的时刻。


MCP服务器的功能

服务器管理:

  • 玩家注册与技能水平
  • 比赛生成(BALANCED 或 RANDOM 配对)
  • 球场和圆形配置
  • 成绩报告和自动排行榜更新
  • DynamoDB中存储的持久记录

每一场比赛都有其独特之处 tournament_id 以及它自己的孤立状态。


为什么是MCP,而不是让LLM Prompt来处理它?

关注 仅LLM方法 MCP支持方法
决定论 每次运行的配对和结果各不相同。 使用定义的算法(BALANCED / RANDOM)——始终可重复。
记录保存 聊天结束后,状态将丢失。 所有数据都保存到DynamoDB。
规则执行 LLM可能会跳过或误用规则。Python中的严格验证逻辑。
多用户安全 每个聊天都有自己不一致的内存。 共享锦标赛状态可通过以下方式访问 tournament_id.
可扩展性 难以添加结构或API。 易于使用新工具进行扩展(例如。, get_leaderboard_csv, get_player_stats).
审计和分析 不可能——没有数据库。 用于分析或仪表板的完整历史数据。

先决条件

此MCP服务器需要访问 AWS DynamoDB 用于存储锦标赛数据。
您必须具备:

  1. 具有DynamoDB权限的AWS帐户(dynamodb:* 或等效物)。
  2. 通过以下方式之一配置本地AWS凭据:
    • ~/.aws/credentials
    • 环境变量(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,并且可选 AWS_DEFAULT_REGION)
    • IAM角色(如果在AWS基础架构(Lambda、ECS或EC2)上运行)
  3. 名为的DynamoDB表 TournamentTable (如果不存在,则在第一次运行时自动创建)。

AWS CLI检查示例:

aws dynamodb list-tables

扩展此服务器

因为它是基于MCP的,所以您可以轻松添加新工具,例如:

  • get_leaderboard_csv(tournament_id) → 导出Power BI或Excel的结果
  • get_player_stats(tournament_id, player_id) → 个人绩效历史
  • simulate_round(tournament_id) → 自动运行测试锦标赛

像Gemini这样的LLM可以动态地发现和调用这些工具。


它在实践中是如何工作的

  1. 用户: “让我们设置我们的锦标赛。我们有3个球场。”
    → MCP创建新的锦标赛ID(T_AB12CD34)并存储基本配置。

  2. 用户: “加上莎拉和迈克。”
    → MCP在该锦标赛的分区下拯救球员。

  3. 用户: “创建第一轮比赛。”
    → MCP运行 BALANCED 或 RANDOM 配对算法——没有重复。

  4. 用户: “报告最终得分21-17。”
    → MCP更新排名,重新计算分数,并将结果写回DynamoDB。

  5. 用户: “显示排名。”
    → MCP检索确定性状态:谁领先、活动匹配等