锦标赛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 用于存储锦标赛数据。\ 您必须具备:
- 具有DynamoDB权限的AWS帐户(
dynamodb:*或等效物)。 - 通过以下方式之一配置本地AWS凭据:
- ~/.aws/credentials - 环境变量(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY,并且可选 AWS_DEFAULT_REGION) - IAM角色(如果在AWS基础架构(Lambda、ECS或EC2)上运行)
- 名为的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可以动态地发现和调用这些工具。
______________________________________________________________________
它在实践中是如何工作的
- 用户: “让我们设置我们的锦标赛。我们有3个球场。”\
→ MCP创建新的锦标赛ID(T_AB12CD34)并存储基本配置。
- 用户: “加上莎拉和迈克。”\
→ MCP在该锦标赛的分区下拯救球员。
- 用户: “创建第一轮比赛。”\
→ MCP运行 BALANCED 或 RANDOM 配对算法——没有重复。
- 用户: “报告最终得分21-17。”\
→ MCP更新排名,重新计算分数,并将结果写回DynamoDB。
- 用户: “显示排名。”\
→ MCP检索确定性状态:谁领先、活动匹配等
