A simple, working example of a Model Context Protocol (MCP) server that lets you play the classic Lemonade Stand game through Claude Desktop.
模型上下文协议 (MCP) 是一项开放标准,它使像 Claude 这样的 AI 模型能够与外部数据源和工具进行交互。此服务器通过将经典的 Lemonade Stand 游戏实现为 Claude 可以使用的一组工具来演示 MCP 的工作原理。
- 🌤️ 动态天气系统影响销售
- 💰 供需商业模拟
- 📊 战略定价和库存管理
- 🏁 14天游戏周期,带利润追踪
- 🎮 可通过 Claude Desktop 完全播放
-
克隆此存储库:
git clone https://github.com/yourusername/Lemonade-Stand-MCP-Server.git cd Lemonade-Stand-MCP-Server
-
安装依赖项:
npm install
-
找到您的 Claude Desktop 配置文件:
- macOS 系统:
~/Library/Application Support/Claude/claude_desktop_config.json
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json
- macOS 系统:
-
配置Claude桌面:
{ "mcpServers": { "lemonade-stand": { "command": "node", "args": [ "/absolute/path/to/Lemonade-Stand-MCP-Server/server.js" ] } } }
-
重启Claude桌面
-
您现在应该在 Claude Desktop 中看到一个锤子图标,表示 MCP 服务器已连接!
一旦服务器连接成功,只需与 Claude 开始新的聊天并说:
“使用可用的 MCP 工具玩完整的 Lemonade Stand 游戏。”
克劳德随后会:
- 开始新游戏
- 分析天气状况
- 就供应和定价做出战略决策
- 报告每日结果
- 坚持到第 14 天,否则你的生意就会失败
- 天气系统:温度和天气状况影响客流量
- 供应链:以不同的价格购买杯子、柠檬、糖和冰
- 价格策略:设定每杯价格以平衡利润和需求
- 库存管理:冰每天都会融化;明智地管理你的供应
- 客户需求:基于天气、价格和可用库存
服务器向 Claude 公开了以下 MCP 工具:
start_game
:开始新的游戏get_game_state
:检查当前状态、金钱、库存和天气buy_supplies
:购买杯子、柠檬、糖和冰set_price
:设定每杯柠檬水的价格sell_lemonade
:开业并查看每日结果next_day
:前进到下一天
{
"mcpServers": {
"lemonade-stand": {
"command": "wsl.exe",
"args": [
"/home/username/.nvm/versions/node/v20.11.1/bin/node",
"/home/username/projects/Lemonade-Stand-MCP-Server/server.js"
]
}
}
}
{
"mcpServers": {
"lemonade-stand": {
"command": "npx",
"args": [
"/path/to/Lemonade-Stand-MCP-Server/server.js"
]
}
}
}
-
克劳德桌面上没有锤子图标:
- 确保 Claude Desktop 是最新的
- 检查配置文件路径是否正确
- 验证 Node.js 是否已安装并可访问
- 检查 Claude Desktop 登录:
- 视窗:
%APPDATA%\Claude\logs\
- macOS:
~/Library/Logs/Claude/
- 视窗:
-
服务器连接错误:
- 验证配置中的服务器路径是否是绝对路径
- 直接使用以下方式测试服务器
node server.js
- 检查 Claude Desktop 日志中是否有任何错误
-
WSL 特定问题:
- 确保在 WSL 中安装了 Node.js
- 使用 Node.js 二进制文件的完整路径
- 检查 WSL 是否正确安装并正在运行
修改服务器:
- 编辑
server.js
以更改游戏机制或添加新工具 - 使用以下方式进行本地测试
node server.js
- 重新启动 Claude Desktop 以加载更改
Lemonade-Stand-MCP-Server/
├── server.js # Main MCP server implementation
├── package.json # Node.js dependencies
└── README.md # This file
该 MCP 服务器实现了一个简单的游戏循环:
- 服务器在内存中维护游戏状态
- 每个工具代表一个游戏动作(购买、出售等)
- 当Claude调用工具时,服务器会更新游戏状态
- 结果以 JSON 格式返回给 Claude
- Claude分析结果并决定下一步行动
这展示了如何使用 MCP 来创建交互式体验,其中 AI 模型可以维持状态、做出决策并与复杂系统交互。