内容
# 重新锻造 MCP
**适用于 Arma Reforger 的通用 AI 修改工具包。**
描述您想要构建的内容 — 您的 AI 代理处理 API 研究、代码生成、项目脚手架、工作台控制和编辑器内测试。与 **任何 MCP 兼容的代理** 合作:Cursor、Google Antigravity、Claude Desktop、Claude Code、Kiro、Windsurf、VS Code Copilot、Continue.dev 等。
> 从 [steffenbk/enfusion-mcp-BK](https://github.com/steffenbk/enfusion-mcp-BK) 分叉而来,获得许可。ReforgerForge 添加了通用代理支持、简化的设置和作为独立项目的持续维护。
## 功能
- **50 个 MCP 工具** — API 搜索、wiki、资产浏览、代码生成、工作台实时控制
- **8,693 个索引 API 类** — 完整的 Enfusion/Arma Reforger 类层次结构
- **250+ 个 wiki 指南** — 可搜索的教程和文档
- **与代理无关** — 一个服务器,为所有主要 AI IDE 安装脚本
- **无需模组经验** — 自然语言 → 构建的插件
## 快速开始
```bash
git clone https://github.com/goatboynz/reforger-forge-mcp.git
cd reforger-forge-mcp
npm install
npm run build
```
或在 Windows 上:
```powershell
.\scripts\setup.ps1
```
然后安装到您的代理(s):
```powershell
# 一次安装到所有支持的代理
.\scripts\install-agents.ps1 -All
# 或选择一个
.\scripts\install-agents.ps1 -Agent antigravity
.\scripts\install-agents.ps1 -Agent cursor
```
重启您的代理并验证 **reforger-forge** 显示 **50 个工具**。
### 配置路径
复制并编辑配置文件:
```bash
cp reforger-forge.config.example.json reforger-forge.config.json
```
| 键 | 描述 |
| --- | --- |
| `workbenchPath` | Arma Reforger 工具(Steam)安装 |
| `gamePath` | Arma Reforger 游戏安装 |
| `projectPath` | 您的模组保存位置 |
在更改路径后重新运行 `.\scripts\install-agents.ps1` 以更新所有代理的环境变量。
---
## 代理设置
ReforgerForge 使用 **stdio MCP** (本地 Node.js 进程)。以下每个代理都运行相同的服务器 — 只有配置文件位置不同。
| 代理 | 配置文件 | 安装命令 |
| --- | --- | --- |
| **Cursor** | `%USERPROFILE%\.cursor\mcp.json` | `.\scripts\install-agents.ps1 -Agent cursor` |
| **Google Antigravity** | `%USERPROFILE%\.gemini\config\mcp_config.json` | `.\scripts\install-agents.ps1 -Agent antigravity` |
| **Claude Desktop** | `%APPDATA%\Claude\claude_desktop_config.json` | `.\scripts\install-agents.ps1 -Agent claude` |
| **Windsurf** | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` | `.\scripts\install-agents.ps1 -Agent windsurf` |
| **VS Code(Copilot)** | `%APPDATA%\Code\User\mcp.json` + `.vscode\mcp.json` | `.\scripts\install-agents.ps1 -Agent vscode` |
| **Continue.dev** | `%USERPROFILE%\.continue\config.json` | `.\scripts\install-agents.ps1 -Agent continue` |
| **Kiro** | `.kiro/settings/mcp.json`(工作区) | `.\scripts\install-agents.ps1 -Agent kiro` |
| **所有代理** | 以上所有 | `.\scripts\install-agents.ps1 -All` |
### Google Antigravity
1. 运行 `.\scripts\install-agents.ps1 -Agent antigravity`
2. 打开 Antigravity → **设置** → **自定义** → **打开 MCP 配置**
3. 确认 `reforger-forge` 出现,然后点击 **刷新** 已安装的 MCP 服务器
4. 共享配置位于 `~/.gemini/config/mcp_config.json`(与 Antigravity CLI 使用的同一个文件)
手动配置(如果需要):
```json
{
"mcpServers": {
"reforger-forge": {
"command": "node",
"args": ["C:\\full\\path\\to\\reforger-forge-mcp\\dist\\index.js"],
"env": {
"ENFUSION_WORKBENCH_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Arma Reforger Tools",
"ENFUSION_GAME_PATH": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Arma Reforger",
"ENFUSION_PROJECT_PATH": "C:\\Users\\YOU\\Documents\\My Games\\ArmaReforgerWorkbench\\addons"
}
}
}
}
```
### Cursor
工作区配置:`.cursor/mcp.json`(已包含)。全局:运行安装脚本或合并 `configs/cursor-global.json`。
重启 → **MCP:重启服务器**
### Claude Desktop
合并 `configs/claude-desktop.json` 或运行安装脚本。
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
### Claude Code
```bash
# Windows
claude mcp add --scope user reforger-forge -- cmd /c node "FULL_PATH\reforger-forge-mcp\dist\index.js"
# macOS / Linux
claude mcp add --scope user reforger-forge -- node /path/to/reforger-forge-mcp/dist/index.js
```
### VS Code(GitHub Copilot)
使用 `servers` 键(不是 `mcpServers`)。运行安装脚本 — 它写入用户级和工作区 `.vscode/mcp.json`。
命令面板:**MCP:列出服务器** → 验证 `reforger-forge` 正在运行。
### Windsurf(Cascade)
仅在 `~/.codeium/windsurf/mcp_config.json` 处进行全局配置。运行安装脚本,然后在 Cascade 面板中刷新 MCP 列表。
### Continue.dev
运行安装脚本。MCP 服务器位于 `~/.continue/config.json` 下的 `mcpServers`。
### 任何其他 MCP 客户端
使用 `configs/agents/stdio-template.json` 处的 stdio 模板。 将 `REPLACE_WITH_ABSOLUTE_PATH` 替换为您的克隆路径。
```json
{
"mcpServers": {
"reforger-forge": {
"command": "node",
"args": ["/absolute/path/to/reforger-forge-mcp/dist/index.js"],
"env": {
"ENFUSION_WORKBENCH_PATH": "...",
"ENFUSION_GAME_PATH": "...",
"ENFUSION_PROJECT_PATH": "..."
}
}
}
}
```
---
## 完整的工具参考(50 个工具)
图例:**离线** = 不需要工作台 | **在线** = 需要运行工作台(`wb_launch`)
### API 和文档(离线)
| 工具 | 功能 |
| --- | --- |
| `api_search` | 搜索 8,693 个 Enfusion/Arma Reforger API 类和 方法。包括继承的方法、枚举检测、兄弟类和 `format: 'tree'` 表示 ASCII 继承层次。 |
| `component_search` | 查找 ScriptComponent 后代 — 按类别(角色、载具、武器、伤害、库存、AI、UI 等)和事件处理程序(例如 `OnDamage`、`EOnFrame`)筛选。 |
| `wiki_search` | 搜索 250+ 个预下载的 BIKI wiki 页面和 Enfusion 教程。返回预览 — 使用 `wiki_read` 获取完整内容。 |
| `wiki_read` | 读取指定 wiki 页面的完整内容,包括代码示例(最多 100k 字符,无截断)。 |
| `wb_knowledge` | 搜索捆绑的模组知识库 — 脚本、音频、武器、载具、AI、UI、游戏模式、动画等。使用 `query='index'` 列出所有主题。 |
### 游戏资产(离线)
| 工具 | 功能 |
| --- | --- |
| `game_browse` | 从松散文件和 `.pak` 存档中浏览基础游戏文件(脚本、预制、配置)。不要直接在游戏安装文件夹上使用文件系统工具。 |
| `game_read` | 读取特定基础游戏文件 — 原始 `.c` 脚本、`.et` 预制、`.conf` 配置文件,来自松散文件或 `.pak`。 |
| `asset_search` | 按名称搜索游戏资产(预制、模型、纹理、脚本、配置)跨松散文件和 `.pak` 存档。返回路径和 GUID。 |
| `game_duplicate` | 将基础游戏预制/配置复制到您的模组文件夹中,解析完整的祖先链。 可选 `flatten=true` 以合并所有继承的组件。为 Workbench 注册新的 GUID。 |
| `workshop_info` | 从模组的 `.gproj` 读取 Workshop 元数据 — 模组 ID、GUID、标题、依赖项、配置。 |
### 项目和模组管理
| 工具 | 需要 Workbench? | 功能 |
| --- | --- | --- |
| `project` | 否 | 浏览、读取或写入模组项目目录中的文件(`action`: 浏览 / 读取 / 写入)。 |
| `mod` | 仅构建 | 管理插件:`action=create` 搭建新插件,`action=validate` 检查结构,`action=build` 使用 Workbench CLI 编译。 |
| `workshop_info` | 否 | 读取 `.gproj` Workshop 发布元数据。 |
### 代码生成(离线)
| 工具 | 功能 |
| --- | --- |
| `script_create` | 生成 Enforce Script `.c` 文件 — 组件、游戏模式、动作、实体、管理器、修改、基本。自动从 API 索引获取可重写父方法。 |
| `prefab` | `action=create`: 生成带有组件和祖先的 `.et` 预制。 `action=inspect`: 显示完整的继承链,显示每个组件/值来自哪个祖先。 |
| `layout_create` | 生成 UI `.layout` 文件 — hud、菜单、对话框、列表、自定义小部件类型。 |
| `config_create` | 生成 `.conf` 文件 — 派系、任务头、实体目录、编辑器可放置项。 |
| `server_config` | 为本地专用服务器测试生成 `server.json`。 |
### 场景和高级工作流
| 工具 | 需要 Workbench? | 功能 |
| --- | --- | --- |
| `scenario_create` | **在线** | 在打开的工作台世界中放置场景元素 — `type=objective`(SP/合作 Scenario Framework 层次结构)或 `type=base`(冲突多人游戏基地)。 |
| `scenario_create_conflict` | 否 | 生成一个完整的冲突多人游戏场景(最多 7 个文件):任务头、SubScene 存根、层文件与游戏模式、基地、捕获区域、防御者、环境车辆。 |
| `animation_graph` | 否 | 车辆动画图工具 — `action=author`(生成 `.agr/.ast` 存根)、 `action=inspect`(读取/验证图表)、 `action=setup`(完整引导向导)。 |
| `building_setup` | 否 | 从 Blender 导出清单设置可破坏建筑 — 创建具有插槽连接和每个阶段破坏组件的结构预制。 |
### Workbench 连接和诊断(在线)
| 工具 | 功能 |
| --- | --- |
| `wb_launch` | 启动 Arma Reforger Workbench,安装模组中的处理程序脚本,等待 NET API。自动由其他 `wb_*` 工具在需要时调用。调用 `wb_cleanup` 在发布模组前清理。 |
| `wb_connect` | 测试与 Workbench NET API 的连接。返回连接状态和编辑器模式。 |
| `wb_diagnose` | 完整的诊断 — 配置、处理程序脚本位置、NET API 状态。使用 `wb_launch` 或 `wb_connect` 失败时使用。 |
| `wb_cleanup` | 在发布模组前从模组中删除临时 EnfusionMCP 处理程序脚本。即使从未安装也安全。 |
| `wb_state` | 完整的 Workbench 快照 — 模式(编辑/播放)、实体计数、选择、 terrain 边界、子场景、预制编辑状态。 |
| `wb_reload` | 重载脚本或插件,无需重启 Workbench。 |
### Workbench 编辑器控制(在线)
| 工具 | 功能 |
| --- | --- |
| `wb_play` | 进入播放模式(在编辑器中播放)。编译脚本并启动世界进行测试。 |
| `wb_stop` | 退出播放模式,返回到世界编辑器。 |
| `wb_save` | 保存当前世界。可选另存为新路径。仅编辑模式。 |
| `wb_undo_redo` | 撤销或重做最后的世界编辑器操作。 |
| `wb_open_resource` | 在其编辑器中打开资源(.et → 预制编辑器,.c → 脚本编辑器等)。 |
| `wb_execute_action` | 通过路径运行任何 Workbench 菜单操作(例如 `Tools,Reload Scripts`)。破坏性操作被阻止。 |
### Workbench 实体(在线)
| 工具 | 功能 |
| --- | --- |
| `wb_entity_create` | 从预制文件在位置/旋转处创建实体。可选名称和目标层。仅编辑模式。 |
| `wb_entity_delete` | 按名称删除实体。仅编辑模式。 |
| `wb_entity_list` | 列出当前世界中的实体,分页并可选名称筛选。 |
| `wb_entity_inspect` | 获取实体详细信息 — 组件、属性、位置、子实体。按名称或索引。 |
| `wb_entity_modify` | 移动、旋转、重命名、重新父级、设置/清除/列出组件属性、管理数组项。仅编辑模式。 |
| `wb_entity_select` | 选择、取消选择、清除或获取当前选择。 |
| `wb_entity_duplicate` | 将场景实体(包括锁定的基础游戏实例)复制到您的模组中作为独立的 `.et` 并具有新的 GUID。 |
| `wb_component` | 添加、删除或列出实体上的组件。仅编辑模式添加/删除。 |
| `wb_clipboard` | 复制、剪切、粘贴、粘贴到光标处、复制选定实体、检查剪贴板内容。 |
### Workbench 世界和资源(在线)
| 工具 | 功能 |
| --- | --- |
| `wb_terrain` | 查询坐标处的地形高度或获取世界边界(最小/最大范围)。 |
| `wb_layers` | 创建、删除、重命名图层;设置活动图层;切换可见性/锁定。仅编辑模式修改。 |
| `wb_resources` | 注册新资源、重建资源数据库、获取资源信息、在编辑器中打开。 |
| `wb_prefabs` | 创建实体模板、保存预制文件、GUID 查找、按路径定位预制文件。仅编辑模式创建/保存。 |
| `wb_projects` | 列出加载的插件项目、定位项目名称、打开 `.gproj` 文件到 Workbench。 |
| `wb_localization` | 插入、删除、修改字符串表条目或获取完整的本地化表。 |
| `wb_script_editor` | 读取/写入打开的脚本编辑器文件 — 获取文件、读取/写入/插入/删除行、行数。 |
| `wb_validate` | 使用 Workbench 内置验证器验证材质或纹理资源。返回错误和警告。 |
运行 `node scripts/list-tools.mjs` 随时验证所有 50 个工具在您的机器上注册。
---
## 使用示例
```
创建显示玩家健康和耐力的 HUD 小部件
制作带有波浪生成的僵尸生存游戏模式
搜索 API 中的所有车辆伤害组件
启动 Workbench、加载我的模组并进入播放模式
为 Everon 生成冲突场景,包含 3 个基地
检查 Rifle_M16A2.et 的继承链
```
---
## 配置
环境变量覆盖配置文件:
| 变量 | 描述 | 默认值 |
| --- | --- | --- |
| `ENFUSION_WORKBENCH_PATH` | Arma Reforger 工具路径 | Steam 默认值 |
| `ENFUSION_GAME_PATH` | Arma Reforger 游戏路径 | 工具的兄弟目录 |
| `ENFUSION_PROJECT_PATH` | 模组输出目录 | `~/Documents/My Games/.../addons` |
| `ENFUSION_WORKBENCH_HOST` | NET API 主机 | `127.0.0.1` |
| `ENFUSION_WORKBENCH_PORT` | NET API 端口 | `5775` |
| `REFORGER_FORGE_DEBUG` | 启用调试日志 | 关闭 |
配置文件搜索顺序:
1. `reforger-forge.config.json`(项目根目录)
2. `~/.reforger-forge/config.json`(用户主目录)
3. 旧版 `enfusion-mcp.config.json` 路径(向后兼容)
---
## 需求
* **Node.js 20+**
* **Arma Reforger 工具**(Steam) — 用于 `mod` 构建和所有 `wb_*` 工具
* **Arma Reforger**(Steam) — 用于游戏资产浏览
---
## 开发
```bash
npm run build # 编译 TypeScript
npm test # 运行测试套件(446 个测试)
npm run dev # 以开发模式运行服务器
node scripts/list-tools.mjs # 验证所有工具注册
.\scripts\install-agents.ps1 -All # 将配置推送到所有代理
```