返回 MCP 目录
public公开dns本地运行

factorio-ai-companion

一个在Factorio游戏和Claude Code之间建立双向聊天桥接的MCP协议服务,通过RCON实现实时通信,允许玩家与AI助手在游戏内互动。

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

或者使用隐藏的设置图形界面:

  1. 在异星工厂主菜单中,按下 Ctrl + Alt 组合键,然后点击 设置
  2. 切换到 “其他” 选项卡。
  3. local-rcon-socket 设置为 127.0.0.1:34198
  4. local-rcon-password 设置为 factorio

4. 启动异星工厂多人游戏

重要提示:RCON仅在多人游戏模式下可用(即使是单人游戏)。

  1. 启动异星工厂。
  2. 选择 多人游戏创建新游戏(或 加载游戏)。
  3. 选择你的存档,然后点击 开始游戏
  4. 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

📄 鸣谢

本项目受 异星工厂学习环境 的模式和最佳实践启发。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端