Screeps MCP 服务器
一个用于与Screeps接口的模型上下文协议(MCP)服务器。该MCP为人工智能助手提供了工具,用于上传代码、监控控制台输出、排查机器人问题以及与Screeps游戏状态进行交互。
特点/功能
🚀 代码管理
- 上传代码将您的机器人代码部署到Screeps服务器
- 分支机构支持上传到不同分支进行测试
🔍 监控与调试
- 控制台日志检索并监控控制台输出
- 执行命令在Screeps控制台中运行JavaScript命令
- 错误检测自动扫描错误和异常
- 性能分析监控CPU、桶(bucket)、GCL(可能是指某种全局缓存或资源管理器,具体需根据上下文确定)和资源使用情况
- 全面故障排除带可操作建议的健康检查
💾 内存管理
- 读取内存访问机器人内存(全部或特定路径)
- 写入内存修改机器人内存以进行配置
- 内存大小追踪监控内存使用情况
🗺️ 游戏状态访问
- 房间信息获取房间内的物体、结构、 creep(游戏或模拟中的一种角色或单位)和资源
- 地形数据获取用于路径寻找和规划的地形图
- 房间状态检查所有权、保留状态和控制器状态
- 用户信息访问您的GCL(全球计算限额?/具体根据上下文确定)、CPU限制和账户详情
- 游戏时间获取当前滴答数/时间
安装
- 安装依赖项:
cd screeps-mcp
npm install- 配置身份验证:
创建一个 .env 文件(或设置环境变量):
# Option 1: Use Auth Token (Recommended)
SCREEPS_TOKEN=your_screeps_auth_token_here
# Option 2: Use Email/Password
SCREEPS_EMAIL=your@email.com
SCREEPS_PASSWORD=your_password
# Optional: Custom Server
SCREEPS_SERVER=https://screeps.com
SCREEPS_BRANCH=default- 获取您的授权令牌:
- 访问 https://screeps.com/a/#!/account/auth-tokens - 生成一个具有“完全访问权限”的令牌 - 将令牌复制到您的 .env 文件
与Claude桌面版的使用
在您的Claude Desktop MCP配置中添加:
MacOS(中文常译为“苹果电脑操作系统”或简称“苹果系统”): ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"screeps": {
"command": "node",
"args": ["/home/azcoigreach/repos/screeps-mcp/index.js"],
"env": {
"SCREEPS_TOKEN": "your_token_here",
"SCREEPS_SERVER": "https://screeps.com",
"SCREEPS_BRANCH": "default"
}
}
}
}添加配置后,重启Claude桌面版。
可用工具
1. upload_code
将你的机器人代码上传到Screeps。
参数:
mainJsPath(必需):main.js 文件的路径branch(可选):分支名称(默认:“default”)
示例:
Upload my bot code at /home/user/screeps/main.js to the experimental branch2. get_console
检索最近的控制台日志。
示例:
Show me the console logs from my Screeps bot3. execute_command
在 Screeps 控制台中执行 JavaScript 命令。
参数:
command(必填):要执行的JavaScript表达式
示例:
Execute the command: Game.time
Execute the command: Object.keys(Game.creeps).length
Execute the command: Memory.rooms['W1N1'].energyAvailable4. get_memory
获取机器人内存数据。
参数:
path(可选):特定的记忆路径(例如,“rooms.W1N1”)
示例:
Get my bot's memory
Get memory at path: rooms.W1N15. set_memory
设置机器人内存值。
参数:
path(必填):内存路径value(必需):要设置的 JSON 值
示例:
Set memory at path 'config.debug' to value 'true'6. get_room_terrain
获取房间的地形数据。
参数:
roomName(必填):房间名称(例如,“W1N1”)encoded(可选):返回编码格式(默认:false)
示例:
Get terrain for room W1N17. get_room_status
获取房间状态(所有权、预订情况)。
参数:
roomName(必填):房间名称
示例:
Get status for room W1N18. get_user_info
获取您的用户信息。
示例:
Show me my Screeps user info9. get_game_time
获取当前游戏帧数。
示例:
What's the current game time?10. analyze_performance
综合性能分析。
回报:
- CPU使用率和桶(bucket)级别
- GCL等级及进度
- 房间数量和蠕变计数
- 蜱虫数量
示例:
Analyze my bot's performance11. check_for_errors
扫描控制台日志以查找错误。
回报:
- 错误计数
- 错误列表
- 所有最近的日志
示例:
Check if my bot has any errors12. troubleshoot_bot
全面健康检查并提供建议。
退货:
- 性能指标
- 误差分析
- 内存使用量
- 可操作的建议
示例:
Troubleshoot my Screeps bot13. get_room_objects
获取详细的房间信息。
参数:
roomName(必填):房间名称
退货:
- 结构计数
- 蠕虫数量(包括友好和敌对)
- 可用能量
- 控制器状态
示例:
Get information about room W1N1常见用例
1. 部署并监控
Upload my code at /home/user/screeps/main.js
Wait a few seconds
Show me the console logs
Check for errors2. 排查问题
Troubleshoot my bot
Show me the console logs
Analyze performance3. 检查房间状态
Get information about room W1N1
Get terrain for room W1N1
Get status for room W1N14. 调试机器人行为
Execute command: JSON.stringify(Memory.creeps)
Execute command: Object.keys(Game.creeps).forEach(name => console.log(name, Game.creeps[name].memory.role))5. 监控性能
Analyze performance
What's my CPU bucket level?
How many creeps do I have?故障排除
认证错误
- 确保
SCREEPS_TOKEN设置正确 - 验证您的令牌是否具有“完全访问”权限
- 检查您的令牌是否已过期
连接问题
- 验证
SCREEPS_SERVERURL是正确的 - 检查您的网络连接
- 确保防火墙没有阻止连接
命令执行延迟
- 控制台命令可能需要1-2个游戏周期来执行
- 结果将显示在下一页
get_console打电话 - 使用
troubleshoot_bot以便立即分析
路径问题
- 使用绝对路径来
mainJsPath参数 - 确保文件存在且可读
- 检查文件权限
发展
本地测试
# Start the MCP server
npm start
# Or with hot reload
npm run dev添加新工具
- 在(文件/代码中)添加工具定义
ListToolsRequestSchema处理程序(或处理者) - 实现处理工具逻辑的函数
- 将这个案例加入
CallToolRequestSchema处理程序 - 用新工具更新此README文件
API 参考文档
这个MCP使用了官方的Screeps HTTP API:
- 基本URL:
https://screeps.com/api - 认证:基于令牌(X-Token 头)或基本认证
- 文档链接:https://docs.screeps.com/auth-tokens.html(中文表述可为:“相关文档请访问:https://docs.screeps.com/auth-tokens.html”)
所用的关键终点指标
POST /api/user/code- 上传代码GET /api/user/console- 获取控制台日志POST /api/user/console- 执行控制台命令GET /api/user/memory- 获取内存POST /api/user/memory- 设置内存GET /api/game/room-terrain- 获取地形GET /api/game/room-status- 获取房间状态GET /api/auth/me- 获取用户信息GET /api/game/time- 获取游戏时间
安全
- 永远不要提交代币添加
.env到;向;朝.gitignore - 使用环境变量不要在代码中硬编码凭据
- 令牌权限使用最小必要权限
- 旋转代币定期重新生成身份验证令牌
贡献
欢迎贡献!改进方向:
- 支持WebSocket的实时控制台监控
- 市场API集成
- 段式内存支持
- 房间可视化工具
- 战斗回放分析
- 性能分析工具
许可证
麻省理工学院(MIT)
相关资源
版本历史
1.0.0(2025年10月10日)
- 首次发布
- 代码上传功能
- 控制台监控和命令执行
- 内存管理
- 性能分析与故障排除
- 房间信息及地形通道
- 游戏状态查询
