ReforgerForge MCP
Enables AI-powered modding for Arma Reforger with 50 tools for API search, code generation, project scaffolding, and Workbench control.
README
ReforgerForge MCP
The universal AI modding toolkit for Arma Reforger.
Describe what you want to build — your AI agent handles API research, code generation, project scaffolding, Workbench control, and in-editor testing. Works with any MCP-compatible agent: Cursor, Google Antigravity, Claude Desktop, Claude Code, Kiro, Windsurf, VS Code Copilot, Continue.dev, and more.
Forked from steffenbk/enfusion-mcp-BK with permission. ReforgerForge adds universal agent support, simplified setup, and ongoing maintenance as an independent project.
Features
- 50 MCP tools — API search, wiki, asset browsing, code generation, Workbench live control
- 8,693 indexed API classes — full Enfusion/Arma Reforger class hierarchy
- 250+ wiki guides — searchable tutorials and documentation
- Agent-agnostic — one server, install script for every major AI IDE
- Zero modding experience required — natural language → built addon
Quick Start
git clone https://github.com/goatboynz/reforger-forge-mcp.git
cd reforger-forge-mcp
npm install
npm run build
Or on Windows:
.\scripts\setup.ps1
Then install into your agent(s):
# Install into ALL supported agents at once
.\scripts\install-agents.ps1 -All
# Or pick one
.\scripts\install-agents.ps1 -Agent antigravity
.\scripts\install-agents.ps1 -Agent cursor
Restart your agent and verify reforger-forge shows 50 tools.
Configure paths
Copy and edit the config file:
cp reforger-forge.config.example.json reforger-forge.config.json
| Key | Description |
|---|---|
workbenchPath |
Arma Reforger Tools (Steam) install |
gamePath |
Arma Reforger game install |
projectPath |
Where your mods are saved |
Re-run .\scripts\install-agents.ps1 after changing paths so all agents get updated env vars.
Agent Setup
ReforgerForge uses stdio MCP (local Node.js process). Every agent below runs the same server — only the config file location differs.
| Agent | Config file | Install command |
|---|---|---|
| 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 (workspace) |
.\scripts\install-agents.ps1 -Agent kiro |
| All agents | All of the above | .\scripts\install-agents.ps1 -All |
Google Antigravity
- Run
.\scripts\install-agents.ps1 -Agent antigravity - Open Antigravity → Settings → Customizations → Open MCP Config
- Confirm
reforger-forgeappears, then click Refresh in Installed MCP Servers - The shared config is at
~/.gemini/config/mcp_config.json(same file used by Antigravity CLI)
Manual config (if needed):
{
"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
Workspace config: .cursor/mcp.json (included). Global: run install script or merge configs/cursor-global.json.
Restart → MCP: Restart Servers
Claude Desktop
Merge configs/claude-desktop.json or run install script.
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Claude Code
# 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)
Uses servers key (not mcpServers). Run install script — it writes both user-level and workspace .vscode/mcp.json.
Command palette: MCP: List Servers → verify reforger-forge is running.
Windsurf (Cascade)
Global config only at ~/.codeium/windsurf/mcp_config.json. Run install script, then refresh MCP list in Cascade panel.
Continue.dev
Run install script. MCP servers live inside ~/.continue/config.json under mcpServers.
Any other MCP client
Use the stdio template at configs/agents/stdio-template.json. Replace REPLACE_WITH_ABSOLUTE_PATH with your clone path.
{
"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": "..."
}
}
}
}
Complete Tool Reference (50 tools)
Legend: Offline = no Workbench needed | Live = requires Workbench running (wb_launch)
API & Documentation (Offline)
| Tool | What it does |
|---|---|
api_search |
Search 8,693 Enfusion/Arma Reforger API classes and methods. Includes inherited methods, enum detection, sibling classes, and format: 'tree' for ASCII inheritance hierarchy. |
component_search |
Find ScriptComponent descendants — filter by category (character, vehicle, weapon, damage, inventory, ai, ui, etc.) and event handlers (e.g. OnDamage, EOnFrame). |
wiki_search |
Search 250+ pre-downloaded BIKI wiki pages and Enfusion tutorials. Returns previews — use wiki_read for full content. |
wiki_read |
Read the full content of a wiki page by title, including code examples (up to 100k chars, no truncation). |
wb_knowledge |
Search the bundled modding knowledge base — scripting, audio, weapons, vehicles, AI, UI, game modes, animation, and more. Use query='index' to list all topics. |
Game Assets (Offline)
| Tool | What it does |
|---|---|
game_browse |
Browse base game files (scripts, prefabs, configs) from loose files and .pak archives. Do not use filesystem tools on the game install directly. |
game_read |
Read a specific base game file — vanilla .c scripts, .et prefabs, .conf configs from loose files or .pak. |
asset_search |
Search game assets (prefabs, models, textures, scripts, configs) by name across loose files and .pak archives. Returns paths and GUIDs. |
game_duplicate |
Duplicate a base game prefab/config into your mod folder with full ancestor chain resolved. Optionally flatten=true to bake all inherited components. Registers with Workbench for a new GUID. |
workshop_info |
Read Workshop metadata from a mod's .gproj — mod ID, GUID, title, dependencies, configurations. |
Project & Mod Management
| Tool | Workbench? | What it does |
|---|---|---|
project |
No | Browse, read, or write files in your mod project directory (action: browse / read / write). |
mod |
Build only | Manage addons: action=create scaffold new addon, action=validate check structure, action=build compile with Workbench CLI. |
workshop_info |
No | Read .gproj Workshop publish metadata. |
Code Generation (Offline)
| Tool | What it does |
|---|---|
script_create |
Generate Enforce Script .c files — component, gamemode, action, entity, manager, modded, basic. Auto-fetches overridable parent methods from API index. |
prefab |
action=create: Generate .et prefab with components and ancestry. action=inspect: Full inheritance chain merge showing which ancestor each component/value comes from. |
layout_create |
Generate UI .layout files — hud, menu, dialog, list, custom widget types. |
config_create |
Generate .conf files — factions, mission headers, entity catalogs, editor placeables. |
server_config |
Generate server.json for local dedicated server testing. |
Scenarios & Advanced Workflows
| Tool | Workbench? | What it does |
|---|---|---|
scenario_create |
Live | Place scenario elements in open Workbench world — type=objective (SP/co-op Scenario Framework hierarchy) or type=base (Conflict multiplayer base). |
scenario_create_conflict |
No | Generate a complete Conflict multiplayer scenario (up to 7 files): mission header, SubScene stub, layer files with game mode, bases, capture zones, defenders, ambient vehicles. |
animation_graph |
No | Vehicle animation graph tool — action=author (generate .agr/.ast scaffolds), action=inspect (read/validate graphs), action=setup (full guided wizard). |
building_setup |
No | Set up destructible building from Blender export manifest — creates structure prefab with slot wiring and per-phase destruction components. |
Workbench Connection & Diagnostics (Live)
| Tool | What it does |
|---|---|
wb_launch |
Start Arma Reforger Workbench, install handler scripts into mod, wait for NET API. Auto-called by other wb_* tools when needed. Call wb_cleanup before publishing mod. |
wb_connect |
Test connection to Workbench NET API. Returns connection status and editor mode. |
wb_diagnose |
Full diagnostic — config, handler script locations, NET API status. Use when wb_launch or wb_connect fails. |
wb_cleanup |
Remove temporary EnfusionMCP handler scripts from mod before publishing. Safe even if never installed. |
wb_state |
Full Workbench snapshot — mode (edit/play), entity count, selection, terrain bounds, sub-scene, prefab edit status. |
wb_reload |
Reload scripts or plugins without restarting Workbench. |
Workbench Editor Control (Live)
| Tool | What it does |
|---|---|
wb_play |
Enter play mode (Play in Editor). Compiles scripts and launches world for testing. |
wb_stop |
Exit play mode, return to World Editor. |
wb_save |
Save current world. Optionally Save As to new path. Edit mode only. |
wb_undo_redo |
Undo or redo the last World Editor action. |
wb_open_resource |
Open a resource in its editor (.et → Prefab Editor, .c → Script Editor, etc.). |
wb_execute_action |
Run any Workbench menu action by path (e.g. Tools,Reload Scripts). Destructive actions blocked. |
Workbench Entities (Live)
| Tool | What it does |
|---|---|
wb_entity_create |
Create entity from prefab at position/rotation. Optional name and target layer. Edit mode only. |
wb_entity_delete |
Delete entity by name. Edit mode only. |
wb_entity_list |
List entities in current world with pagination and optional name filter. |
wb_entity_inspect |
Get entity details — components, properties, position, children. By name or index. |
wb_entity_modify |
Move, rotate, rename, reparent, set/clear/list component properties, manage array items. Edit mode only. |
wb_entity_select |
Select, deselect, clear, or get current selection. |
wb_entity_duplicate |
Duplicate a scene entity (including locked base-game instances) into your mod as a standalone .et with new GUID. |
wb_component |
Add, remove, or list components on an entity. Edit mode only for add/remove. |
wb_clipboard |
Copy, cut, paste, paste at cursor, duplicate selected entities, check clipboard content. |
Workbench World & Resources (Live)
| Tool | What it does |
|---|---|
wb_terrain |
Query terrain height at coordinates or get world bounds (min/max extents). |
wb_layers |
Create, delete, rename layers; set active layer; toggle visibility/lock. Edit mode only for mutations. |
wb_resources |
Register new resources, rebuild resource databases, get resource info, open in editor. |
wb_prefabs |
Create entity templates, save prefab changes, GUID lookup, locate prefabs by path. Edit mode only for create/save. |
wb_projects |
List loaded addon projects, locate project by name, open .gproj file in Workbench. |
wb_localization |
Insert, delete, modify string table entries, or get full localization table. |
wb_script_editor |
Read/write lines in the open Script Editor file — get file, read/write/insert/remove lines, line count. |
wb_validate |
Validate material or texture resources using Workbench built-in validators. Returns errors and warnings. |
Run node scripts/list-tools.mjs anytime to verify all 50 tools register on your machine.
Usage Examples
Create a HUD widget that shows player health and stamina
Make a zombie survival game mode with wave spawning
Search the API for all vehicle damage components
Launch Workbench, load my mod, and enter play mode
Generate a Conflict scenario for Everon with 3 bases
Inspect the inheritance chain for Rifle_M16A2.et
Configuration
Environment variables override config files:
| Variable | Description | Default |
|---|---|---|
ENFUSION_WORKBENCH_PATH |
Arma Reforger Tools path | Steam default |
ENFUSION_GAME_PATH |
Arma Reforger game path | Sibling of Tools |
ENFUSION_PROJECT_PATH |
Mod output directory | ~/Documents/My Games/.../addons |
ENFUSION_WORKBENCH_HOST |
NET API host | 127.0.0.1 |
ENFUSION_WORKBENCH_PORT |
NET API port | 5775 |
REFORGER_FORGE_DEBUG |
Enable debug logging | off |
Config file search order:
reforger-forge.config.json(project root)~/.reforger-forge/config.json(user home)- Legacy
enfusion-mcp.config.jsonpaths (backward compatible)
Requirements
- Node.js 20+
- Arma Reforger Tools (Steam) — for
modbuild and allwb_*tools - Arma Reforger (Steam) — for game asset browsing
Development
npm run build # Compile TypeScript
npm test # Run test suite (446 tests)
npm run dev # Run server in dev mode
node scripts/list-tools.mjs # Verify all 50 tools register
.\scripts\install-agents.ps1 -All # Push config to all agents
Project Structure
reforger-forge-mcp/
├── src/ # TypeScript source
├── data/ # API index, wiki, patterns, knowledge base
├── mod/ # Workbench NET API handler scripts
├── configs/agents/ # Manual install templates
├── scripts/
│ ├── setup.ps1 # Build + configure
│ ├── install-agents.ps1 # Install into any AI agent
│ └── list-tools.mjs # Verify tool registration
├── .cursor/mcp.json # Cursor workspace
├── .vscode/mcp.json # VS Code workspace
├── .kiro/settings/mcp.json # Kiro workspace
└── dist/ # Built server (generated)
Publishing to GitHub
git remote add origin https://github.com/goatboynz/reforger-forge-mcp.git
git push -u origin main
Credits & Attribution
ReforgerForge MCP is based on:
- steffenbk/enfusion-mcp-BK — primary upstream fork
- Articulated7/enfusion-mcp — original project
Used and modified with permission. MIT licensed.
License
MIT — see LICENSE
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。