article
README
🚀 异星工厂AI助手
这是一个通过MCP协议在异星工厂(Factorio)和Claude Code之间建立的双向聊天桥梁。
🚀 快速开始
状态:✅ 第一阶段完成 - 聊天桥梁已正常工作!
通过RCON,异星工厂和Claude Code之间已实现双向聊天。
📦 安装指南
1. 安装依赖项
bun install
2. 安装异星工厂模组
Windows系统:
xcopy /E /I factorio-mod "%APPDATA%\Factorio\mods\ai-companion"
Linux/Mac系统: 请查看 factorio-mod/README.md
3. 在异星工厂中配置RCON
编辑 %APPDATA%\Factorio\config\config.ini 文件,并添加以下行(如果文件中尚未存在):
local-rcon-socket=127.0.0.1:34198
local-rcon-password=factorio
或者使用隐藏的设置图形界面:
- 在异星工厂主菜单中,按下 Ctrl + Alt 组合键,然后点击 设置。
- 切换到 “其他” 选项卡。
- 将
local-rcon-socket设置为127.0.0.1:34198。 - 将
local-rcon-password设置为factorio。
4. 启动异星工厂多人游戏
重要提示:RCON仅在多人游戏模式下可用(即使是单人游戏)。
- 启动异星工厂。
- 选择 多人游戏 → 创建新游戏(或 加载游戏)。
- 选择你的存档,然后点击 开始游戏。
- RCON将自动启用。
5. 测试RCON连接(可选)
bun run src/rcon/test-connection.ts
预期输出:
✅ RCON在第1次尝试时连接成功
✅ 连接成功!
✅ RCON正常工作!
6. 启动MCP服务器
bun run src/index.ts
预期输出:
🚀 正在启动异星工厂MCP服务器...
✅ RCON在第1次尝试时连接成功
📡 RCON已连接到异星工厂
✅ MCP服务器在标准输入输出上运行
💡 服务器已准备就绪!Claude Code现在可以使用以下工具:
- get_companion_messages
- send_companion_message
7. 连接Claude Code
项目根目录下的 .mcp.json 文件已配置Claude Code使用此服务器。Claude Code将在需要时自动启动MCP服务器。
8. 进行测试!
在异星工厂聊天框中:
/companion 你好,Claude!你能帮我吗?
在Claude Code中:
使用 get_companion_messages 工具
Claude将看到:
[
{
"player": "你的名字",
"message": "你好,Claude!你能帮我吗?",
"tick": 12345
}
]
Claude可以回复:
使用 send_companion_message 工具发送消息 "你好!我来帮你了!"
在异星工厂中,你将看到:
[AI助手] 你好!我来帮你了!
💻 使用示例
可用工具
get_companion_messages
从异星工厂聊天中获取以 /companion 开头的未读消息。
返回值: {player, message, tick} 数组
send_companion_message
以AI助手的身份向异星工厂聊天发送消息。
输入: { message: string }
🔧 技术细节
架构
异星工厂(Lua模组捕获 /companion 聊天消息)
↕ RCON(TCP端口27000)
Node.js MCP服务器(Bun)
↕ MCP协议(标准输入输出)
Claude Code(用户端)
已完成的功能
- ✅ 带有重试逻辑的RCON客户端
- ✅ 聊天消息解析器
- ✅ 具有FLE模式的异星工厂Lua模组
- ✅ 包含2个工具的MCP服务器
- ✅ 通过
.mcp.json实现Claude Code集成
第二阶段(未来计划)
- AI控制的角色
- 游戏状态内省
- 自动化建造/制作
- 多智能体协作
🛠️ 故障排除
"连接失败"
- 确保异星工厂正在运行。
- 检查是否启用了 "作为服务器启动"。
- 验证RCON端口是否为27000。
- 验证RCON密码是否为 "factorio"。
"没有消息"
- 在异星工厂聊天框中输入
/companion <消息>(而不仅仅是 "companion")。 - 检查异星工厂 → 模组菜单中是否启用了该模组。
- 安装模组后重启异星工厂。
"命令未找到"
- 确保已安装Bun:https://bun.sh
- 运行
bun --version进行验证。
🛠️ 开发
# 运行测试
bun test
# 测试RCON连接
bun run src/rcon/test-connection.ts
# 启动MCP服务器
bun run src/index.ts
📄 鸣谢
本项目受 异星工厂学习环境 的模式和最佳实践启发。
微信扫一扫