Arma Reforger MCP Server
The Arma Reforger MCP Server provides a comprehensive toolkit for local, security-focused modding, including project inspection, script analysis, resource validation, documentation search, log diagnostics, safe Workbench automation, and archive operations.
Server & Configuration:
server_statusdisplays configured capabilities, safety gates, and path availability;get_mod_development_standardreturns versioned engineering rules;audit_mod_structurechecks structure compliance.Project Discovery & Inspection:
list_projectsdiscovers.gprojaddons;inspect_projectparses metadata, inventories assets, resolves dependencies, and checks script module placement;validate_resourceschecks.metafiles, GUID uniqueness, resource paths, and reference mismatches.File Operations:
read_project_filereads bounded line ranges;search_workspaceperforms literal search across scripts, configs, and resources;write_project_filepreviews or atomically writes approved text resources with concurrency protection.Enforce Script Tools:
analyze_enforce_scriptruns heuristics for conventions and performance;generate_script_templatecreates bilingual class/component/modded-class/workbench-plugin templates.Log Diagnostics:
inspect_logsanalyzes Workbench/game logs and groups actionable errors with bilingual remediations.Documentation Search:
search_official_docssearches curated offline catalog;search_local_apisearches installed Doxygen HTML.Workbench Automation:
workbench_statusqueries live state;workbench_commandprepares and launches allowlisted modules (ResourceManager, ScriptEditor, WorldEditor, etc.); additional tools support bridge calls, resource opening, and script validation.Layout & Archive Handling:
inspect_layoutchecks widget declarations and local resource references;inspect_source_archive,extract_source_archive,export_project_archive,export_layout_bundlehandle source ZIPs and layout bundles safely.
Provides a tool to search locally installed Doxygen HTML documentation for Arma Reforger and Enfusion APIs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Arma Reforger MCP Servervalidate resources in my addon"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Arma Reforger MCP Server — Enfusion & Enforce Script Modding
Arma Reforger MCP is a local, security-focused Model Context Protocol server and native Claude Code + Codex plugin for Arma Reforger modding, Enfusion Workbench automation, Enforce Script, UI layouts, and editable source bundles. It combines offline project intelligence with the official loopback Workbench NET API and a bundled, auditable NetApiHandler bridge.
Static analysis is intentionally conservative and heuristic. Enfusion Workbench remains the final compiler, importer, resource database, and runtime validator.
Windows/Workbench support is currently Beta and available for public testing. The Windows CI matrix and a real Workbench compatibility preflight pass, while native-Windows hardware acceptance remains pending. If something fails, please open a Windows/Workbench bug report so the maintainer can reproduce and fix it.
Why this MCP exists
Generic filesystem tools do not understand Enfusion projects. This server models the parts that matter when an Arma Reforger addon fails:
.gprojIDs, GUIDs, configurations, and dependency GUIDsvalid Enforce Script modules below
Scripts/creator-tag and Enfusion style conventions
.metaownership, duplicate GUIDs, and{GUID}pathreferencesWorkbench/game log categories and likely remediation
the local Doxygen API shipped with Arma Reforger Tools
safe Workbench command construction without shell execution
The repository also packages three reusable Claude/Codex skills:
$develop-arma-reforger-mod— inspect, research, implement, review, and verify addon changes$diagnose-arma-reforger-mod— trace project, dependency, script, resource, replication, and runtime failures$control-arma-reforger-workbench— safely orchestrate live Workbench, layout, bridge, and source-bundle operations
Related MCP server: enfusion-mcp
MCP capabilities
Tool | Purpose | Side effects |
| Diagnose runtime, paths, Workbench, limits, and cache | None |
| Show configuration, path availability, and safety gates | None |
| Discover and parse | None |
| Return the versioned mod structure and engineering rules | None |
| Inventory assets, dependencies, and structure compliance | None |
| Audit official or enterprise addon-structure rules | None |
| Read bounded text ranges with SHA-256 | None |
| Literal search across scripts and Enfusion text resources | None |
| Check | None |
| Run documented convention/performance heuristics | None |
| Generate tagged, bilingual Enforce Script skeletons | None |
| Group actionable Workbench/game errors | None |
| Search a curated primary-source catalog | None |
| Search installed Arma Reforger and Enfusion Doxygen HTML | None |
| Dry-run or atomically write approved text resources | Opt-in |
| Inspect widget declarations and local resource references | None |
| Export a layout, metadata, and local source dependencies | Opt-in |
| Inventory a source ZIP and reject traversal/ZIP-bomb risks | None |
| Extract an authorized source ZIP below a configured root | Opt-in |
| Export editable addon source with a JSON manifest | Opt-in |
| Install the bundled read-only NET API bridge source | Opt-in |
| Query live Workbench, compiler, and World Editor state | None |
| Compile a script configuration in live Workbench | None |
| Open a mounted resource in Workbench | Opt-in |
| Focus an allowlisted Workbench editor module | Opt-in |
| Query bridge info, mounted resources, or World Editor state | Opt-in |
| Call a verified custom | Opt-in |
| Prepare or launch an allowlisted Workbench command | Opt-in |
Resources are available at reforger://contracts/v1, reforger://server/status, reforger://projects, reforger://standards/mod-development, reforger://docs/official, and reforger://workbench/capabilities. The versioned contract resource fixes the advertised tool, resource, prompt, result-metadata, and error-envelope shapes for compatibility review. Prompts cover script review, failure diagnosis, standards-aware feature planning, and safe Workbench control.
Professional mod structure and rules
get_mod_development_standard exposes the complete bilingual, versioned standard. It distinguishes hard engine requirements, official Bohemia guidelines, and this MCP's enterprise engineering policy so advisory preferences are never mislabeled as compiler facts. audit_mod_structure accepts official and enterprise profiles; inspect_project includes the enterprise audit by default.
The addon layout is content-driven. Only the project descriptor is universal; create conditional areas only when the addon owns that concern:
<AddonName>/
|-- <AddonName>.gproj
|-- Scripts/Game/<TAG>/<Feature>/
|-- Scripts/WorkbenchGame/<TAG>/<Editor>/
|-- Configs/<TAG>/<Feature>/
|-- Prefabs/<TAG>/<Feature>/
|-- UI/<TAG>/<Feature>/{Layouts,Imagesets,Textures}/
|-- Assets/<Domain>/<TAG>/<Feature>/
|-- Worlds/<TAG>/<World>/
\-- Sounds/<TAG>/<Feature>/For larger teams, keep CI, repository-side tests, architecture/runbook documentation, tooling, contribution/security policy, changelog, and license in a repository wrapper outside the publishable addon tree when practical. The standard also defines reviewable gates for architecture, verified APIs, GUID integrity, multiplayer authority/JIP, security boundaries, measured performance, regression evidence, CI, release/rollback, provenance, and ownership.
Quick start
Requirements
Node.js 20.19 or newer
npm 10 or newer
Arma Reforger Tools for Workbench execution and local Doxygen API search
A local Arma Reforger addon source directory containing a
.gproj
Clean end-user download
For normal use, download the *-standalone.zip asset from GitHub Releases. It contains the single bundled MCP runtime, plugin manifests, skills, essential documentation, and the Workbench bridge. Extract it and run node dist/cli.js --version; no dependency, build, or test installation is required.
Release automation rejects tests, fixtures, source files, E2E tools, source maps, coverage, logs, local configuration, generated databases, and temporary files in the published package. Developer clones intentionally retain tests and CI as quality evidence, while generated Git archives exclude test/E2E directories. Each release also publishes a CycloneDX SBOM and SHA256SUMS; GitHub stores keyless Sigstore attestations for SLSA build provenance and the SBOM. Verify downloads with sha256sum --check SHA256SUMS and gh attestation verify <artifact> -R maxionice/arma-reforger-mcp.
Developer installation from GitHub
git clone https://github.com/maxionice/arma-reforger-mcp.git
cd arma-reforger-mcp
npm ci
npm run buildSmoke-test the CLI:
node dist/cli.js --help
node dist/cli.js --versionUse as a Codex plugin
The repository root is a Codex plugin. .codex-plugin/plugin.json bundles the MCP server and all skills through Codex's native inline MCP server map.
Use either the extracted standalone release or a locally built clone as the plugin source. Start a new Codex session after installing so the tools and skills are loaded.
Use as a Claude Code plugin
Claude Code reads .claude-plugin/plugin.json, its root .mcp.json, and the same skills/ directory:
claude plugin validate . --strict
claude --plugin-dir .Restart the development session or run /reload-plugins after replacing/rebuilding the package. Both clients receive identical MCP tools and bilingual workflows; only their native plugin manifest differs.
Configure a standalone MCP client
Use an absolute server path and configure at least one addon root:
{
"mcpServers": {
"arma-reforger": {
"command": "node",
"args": ["C:/Tools/arma-reforger-mcp/dist/cli.js"],
"env": {
"ARMA_REFORGER_PROJECT_ROOTS": "C:/Users/you/Documents/My Games/ArmaReforgerWorkbench/addons",
"ARMA_REFORGER_ARCHIVE_ROOTS": "C:/Users/you/ArmaSourceArchives",
"ARMA_REFORGER_EXPORT_DIR": "C:/Users/you/ArmaExports",
"ARMA_REFORGER_DOCS_DIR": "C:/Program Files (x86)/Steam/steamapps/common/Arma Reforger Tools/Workbench/docs",
"ARMA_REFORGER_LOG_DIRS": "C:/Users/you/Documents/My Games/ArmaReforgerWorkbench/logs;C:/Users/you/Documents/My Games/ArmaReforger/logs"
}
}
}
}For Codex config.toml, the equivalent standalone configuration is:
[mcp_servers.arma-reforger]
command = "node"
args = ["C:/Tools/arma-reforger-mcp/dist/cli.js"]
[mcp_servers.arma-reforger.env]
ARMA_REFORGER_PROJECT_ROOTS = "C:/Users/you/Documents/My Games/ArmaReforgerWorkbench/addons"
ARMA_REFORGER_DOCS_DIR = "C:/Program Files (x86)/Steam/steamapps/common/Arma Reforger Tools/Workbench/docs"
ARMA_REFORGER_LOG_DIRS = "C:/Users/you/Documents/My Games/ArmaReforgerWorkbench/logs;C:/Users/you/Documents/My Games/ArmaReforger/logs"Configuration
Copy .env.example as a reference. The server reads environment variables from its parent MCP client; it does not load .env automatically.
Variable | Default | Description |
| Workbench addon folder on Windows | Semicolon-separated allowed project roots |
| Workbench and game log folders on Windows | Semicolon-separated read-only log roots |
| None | Semicolon-separated local Workbench Doxygen roots |
| Project roots | Allowed ordinary source-ZIP roots |
| None | Existing directory for generated source ZIPs |
| None | Absolute Workbench executable |
| Matching Steam-library game data | Semicolon-separated dependency addon roots |
|
| Enable non-dry-run project writes |
|
| Enable Workbench launch |
|
| Enable source ZIP extraction/export |
|
| Enable UI/custom NET API actions |
|
| Loopback host only |
|
| Ordered ports to probe |
|
| Timeout per NET API attempt |
|
| Per-file read/write safety limit |
|
| Default search result limit |
|
| Maximum recursive directory depth |
|
| Maximum files accepted in a source ZIP |
|
| Maximum declared expanded ZIP size |
|
| Maximum files traversed by one project operation |
|
| Maximum duration of one MCP tool request |
|
| Project-discovery cache lifetime |
|
| Structured stderr logs: silent/error/info/debug |
CLI equivalents include --archive-root, --export-dir, --workbench-addon-dir, --net-api-port, --allow-archive-operations, and --allow-workbench-actions. Run node dist/cli.js --help for the complete list.
Live Workbench control
In Workbench, check File → Options → General → Net API → Enabled.
Configure the local port if your Workbench build differs from the probed defaults.
Call
workbench_status; then use focused operations such asworkbench_validate_scriptsorworkbench_open_resource.For mounted-resource discovery and World Editor snapshots, preview and install
workbench/ARM_MCPWorkbenchBridge.cwithinstall_workbench_bridge, reload scripts, and callworkbench_bridge_call.Extend control with your own audited
NetApiHandler, then call it throughworkbench_custom_call. This is deliberately gated because handler side effects are project-defined.
The server controls documented NET API and CLI surfaces; it does not perform brittle mouse/keyboard automation. Complete project-specific automation is achieved by adding typed Workbench handlers or command-line plugins, not by exposing arbitrary shell access.
Published Workshop data is compressed, indexed, and protected and cannot be reconstructed into editable source. Archive tools support only ordinary source ZIPs that you own or may modify.
Safety model
Every project read/write is confined to canonical configured roots.
Symlinks are skipped during traversal, and resolved paths are checked again.
Writes default to
dryRun: true, support optimistic SHA-256 concurrency checks, restrict extensions, and use an atomic same-directory rename.Writes require
ARMA_REFORGER_ALLOW_WRITES=trueor--allow-writes.Workbench launch requires both a validated executable name and
ARMA_REFORGER_ALLOW_PROCESS_EXECUTION=trueor--allow-process-execution.Live NET API access is loopback-only; UI/custom calls require a separate Workbench-action gate.
ZIP inspection rejects absolute/traversal paths, backslashes, symlinks, encryption, excessive entry counts, and excessive expanded size.
Actual extraction/export requires both write and archive gates. Extraction additionally requires an explicit source-rights acknowledgement.
Workbench is spawned with
shell: false; the MCP never exposes arbitrary command execution.MCP protocol traffic uses stdout. Diagnostics use stderr so JSON-RPC cannot be corrupted.
See SECURITY.md for the trust boundary and reporting process.
Recommended workflow
Run
doctor, thenserver_statusandlist_projects.Read the relevant
get_mod_development_standardsections and runaudit_mod_structure.Inspect the target with
inspect_project.Search and read existing implementation patterns.
Verify unknown APIs against local Doxygen or official documentation.
Analyze scripts and validate resources.
Preview writes with
dryRun: trueandexpectedSha256.Call
workbench_statusandworkbench_validate_scripts, or prepare a Workbench command withexecute: falsewhen offline.Inspect layouts and preview exports/extractions before enabling their gates.
Compile/reload and test in the matching stable or experimental Workbench branch.
Development
npm ci
npm run check
npm run build
npm run verify:package
npm pack --dry-runThe test suite covers parsers, Enforce Script heuristics, GUID/resource validation, log classification, path confinement, project discovery, and an end-to-end MCP client/server call.
Real Workbench validation is deliberately separate because it requires licensed native-Windows tooling and a genuine addon. The package includes an original, writable acceptance addon template; prepare it without overwriting existing sources with node dist/e2e/cli.js --prepare-addon <absolute-new-directory>. The E2E CLI reads Steam's libraryfolders.vdf, auto-detects stable or experimental Tools and matching game data across separate libraries, and still accepts explicit paths for non-standard layouts. Native Windows is enforced by default, while --allow-compatibility-layer permits a clearly classified Wine/Proton preflight that never counts as production evidence. Follow the bilingual Windows E2E runbook or dispatch the self-hosted Real Workbench E2E workflow. A redacted evidence report is generated for every completed real run.
src/
├── domain/ # Enfusion-aware parsers and analyzers
├── security/ # Canonical project-root confinement
├── services/ # Files, projects, docs, logs, writes, Workbench
├── shared/ # Bilingual result and utility types
├── server.ts # MCP tools, resources, and prompts
└── cli.ts # stdio entry point
workbench/ # Bilingual bridge plus reproducible real E2E addon template
skills/ # Development, diagnosis, and Workbench-control workflows
.codex-plugin/ # Native Codex manifest
.claude-plugin/ # Native Claude Code manifest
.mcp.json # Claude Code bundled MCP launch definition
tests/ # Unit, fixture, and MCP integration tests
docs/ # Architecture and research decisionsRead Architecture, Research, Windows E2E, and Contributing before substantial changes.
Research basis
The implementation is derived from primary sources: the Bohemia Interactive Community Wiki, the official Workbench NET API, the official Arma Reforger samples, the generated Arma Reforger Script API, and the official MCP TypeScript SDK. The exact findings and design consequences are recorded in docs/RESEARCH.md.
Trademark and affiliation
This is an independent open-source project and is not affiliated with or endorsed by Bohemia Interactive. Arma Reforger, Enfusion, and related marks belong to their respective owners. Do not copy Bohemia Interactive game data or sample assets into this repository; follow the applicable Bohemia Interactive licenses.
License
The MCP implementation is available under the MIT License.
Available Tools
13 toolsanalyze_enforce_scriptAnalyze Enforce ScriptCRead-only
EN: Run documented, heuristic Enfusion convention and performance checks on code, one file, or all scripts in an addon. DE: Dokumentierte, heuristische Enfusion-Konventions- und Performance-Pruefungen auf Code, eine Datei oder alle Addon-Scripts anwenden.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| path | No | ||
| project | No | ||
| creatorTag | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the description adds little beyond that. It does not explain what the output looks like, any side effects, or limitations. The tool is said to run checks, but without an output schema, the agent cannot anticipate the return value. No additional behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence in English and its German translation. It is front-loaded with the core purpose and contains no unnecessary words. Every sentence earns its place by stating what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (4 parameters, no output schema, no parameter descriptions), the description is incomplete. It does not explain how to specify code vs file vs addon, what the output contains, or how to interpret the results. The agent would lack essential context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 4 parameters with 0% description coverage, and the description does not explain any of them. It mentions 'code, one file, or all scripts' but does not map these to the parameters (code, path, project, creatorTag). The agent cannot understand how to use each parameter effectively, making the description insufficient for parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool runs heuristic Enfusion convention and performance checks on code, files, or all scripts in an addon. The verb 'Run' and the specific resource ('checks') are well-defined, and it is easily distinguishable from siblings like 'validate_resources' or 'inspect_project' which have different purposes. However, it could be more specific about the exact nature of the checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'validate_resources' or 'inspect_logs'. There is no mention of prerequisites, context, or when not to use it. The description leaves the agent to infer usage from the tool name and title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_script_templateGenerate Enforce Script TemplateBRead-only
EN: Generate a creator-tagged, bilingual Enforce Script class, component, modded class, or Workbench plugin without writing it. DE: Eine mit Creator-Tag und zweisprachigen Kommentaren versehene Enforce-Script-Klasse, Komponente, Modded-Klasse oder ein Workbench-Plugin erzeugen, ohne zu schreiben.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| baseClass | No | ||
| className | Yes | ||
| creatorTag | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states 'generate ... without writing it' suggesting a read-like operation, but annotations declare readOnlyHint=true which contradicts the generative nature. No other behavioral details (auth, side effects) are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences (EN and DE). However, the bilingual repetition adds minor redundancy; overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate parameter count and no output schema, the description lacks details on return format, error handling, and prerequisites. It is too brief for a tool with 4 parameters and no schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'creator-tagged' and lists kinds, giving partial meaning to creatorTag and kind parameters, but does not explain className or baseClass constraints. With 0% schema coverage, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'generate' and the resource 'Enforce Script template' with specific kinds (class, component, modded class, Workbench plugin). It distinguishes this tool from siblings like write_project_file or analyze_enforce_script by focusing on template generation without writing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for code generation but does not explicitly state when to use this tool versus alternatives. No 'when-not' or exclusion criteria are provided, so guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_logsInspect Workbench and Game LogsBRead-only
EN: Analyze a selected or the newest configured log and group actionable errors with bilingual remediations. DE: Ein ausgewaehltes oder das neueste konfigurierte Log analysieren und handlungsrelevante Fehler mit zweisprachigen Loesungen gruppieren.
| Name | Required | Description | Default |
|---|---|---|---|
| log | No | ||
| tailBytes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, so the tool is safe. The description adds value by explaining it groups errors and provides remediations, but does not disclose potential side effects or access requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is bilingual, adding length. The English part is one concise sentence covering main actions. Could be slightly more compact, but no unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters, no output schema, and siblings, the description covers the core purpose but omits output format, prerequisites (e.g., log configuration), and error handling. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. The 'log' parameter is partially explained as a selected or newest configured log, but 'tailBytes' (integer with default and bounds) is not described at all. Schema provides type info but no context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes logs, groups actionable errors, and provides bilingual remediations. It uses specific verbs ('analyze', 'group') and distinguishes from siblings like inspect_project or read_project_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives (e.g., inspect_project, read_project_file). The description mentions 'selected or the newest configured log' but lacks context for choosing this over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_projectInspect Arma Reforger ProjectARead-only
EN: Parse .gproj metadata, inventory assets, resolve local dependencies, and check script-module placement. DE: .gproj-Metadaten parsen, Assets inventarisieren, lokale Abhaengigkeiten aufloesen und Script-Module pruefen.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | EN: Project ID, GUID, title, directory, or absolute path. DE: Projekt-ID, GUID, Titel, Ordner oder absoluter Pfad. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds context by detailing the specific read-only operations performed (parse, inventory, resolve, check). It does not mention potential performance or prerequisite details, but the annotation covers the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two bilingual lines, front-loaded with key actions. The slight redundancy due to dual language is acceptable and does not harm clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing output format description; for a tool with no output schema, the agent cannot know what data the tool returns. The actions listed give a hint, but explicit return value information is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter 'project' is well-documented in the schema. The description does not add additional parameter-specific information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists four specific actions: parse metadata, inventory assets, resolve dependencies, and check script-module placement. It clearly defines the tool's purpose and distinguishes it from siblings like list_projects (listing only) or read_project_file (reading a single file).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidelines are provided; the description implies the tool is for comprehensive project inspection, but does not state when to prefer it over alternatives like validate_resources or analyze_enforce_script. The usage context is implied by the actions listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList Arma Reforger ProjectsARead-only
EN: Discover .gproj addons under the configured roots. DE: .gproj-Addons unter den konfigurierten Wurzeln finden.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description adds value by specifying the scope ('under the configured roots'). However, it does not disclose other behavioral traits like performance implications or authentication needs beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences (one in English, one in German) with no wasted words. It front-loads the English version and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no parameters, the description covers what it does and its scope. However, it lacks any indication of the output format (e.g., list of paths or names), which is a gap given no output schema is provided. The bilingual duplication adds no contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the description has no burden to explain parameters. With 0 parameters and 100% schema coverage, a baseline of 4 applies, and the description adds no parameter-related meaning—which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'discover' and specifies the resource '.gproj addons under the configured roots', clearly indicating a listing action. This distinguishes it from siblings like 'inspect_project' or 'read_project_file', which focus on single items or file reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_workspace' or 'inspect_project'. There is no mention of prerequisites, use cases, or exclusions, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_project_fileRead Arma Reforger Project FileARead-only
EN: Read a bounded line range from a text file inside an addon. DE: Einen begrenzten Zeilenbereich aus einer Textdatei innerhalb eines Addons lesen.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | EN: Addon-relative path. DE: Addon-relativer Pfad. | |
| endLine | No | ||
| project | Yes | ||
| startLine | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. Description adds the important behavioral detail of 'bounded line range', clarifying that not the entire file is read. This is useful context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short (two sentences) and to the point. The bilingual format adds some redundancy but is acceptable for a multilingual tool. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no output schema, and low parameter documentation, the description lacks return value info, error cases, and prerequisites. It is insufficient for a file reading tool that could have encoding or size limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only path has description). Description mentions 'bounded line range' but does not explain startLine, endLine defaults, or constraints (e.g., endLine max 5000). It fails to add meaning for 3 out of 4 parameters, which is needed given low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'read a bounded line range from a text file', specifying the action, scope (inside an addon), and the bounded nature of the read. This distinguishes it from sibling tools like write_project_file (write) and inspect_project (inspect).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for reading specific file sections but gives no explicit guidance on when to choose this over siblings (e.g., search_workspace for search or inspect_project for metadata). No exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_local_apiSearch Local Arma Reforger Script APICRead-only
EN: Search the official Doxygen HTML installed with Arma Reforger Tools. DE: Die mit Arma Reforger Tools installierte offizielle Doxygen-HTML-Dokumentation durchsuchen.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the description adds no significant behavioral context. It does not mention search mechanics (e.g., case-sensitivity, indexing scope) or any side effects beyond what is implied by read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single English sentence (plus German translation), which is concise. However, the bilingual content is unnecessary for an agent, and the structure does not front-load key details beyond the basic action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no parameter description coverage, the description should at least hint at what the search returns (e.g., Doxygen page links, snippets). It does not, leaving the agent uncertain about the tool's output and usage expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides no additional meaning for 'query' or 'limit' beyond their names and schema constraints. The agent gains no insight into query format, matching behavior, or how limit affects results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches 'the official Doxygen HTML installed with Arma Reforger Tools', specifying the resource and action. The title reinforces 'Search Local'. However, it does not explicitly differentiate from the sibling 'search_official_docs', though the 'installed' phrase hints at local vs online.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like search_official_docs or search_workspace. No prerequisites or context are provided, leaving the agent without decision-support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_official_docsSearch Official Arma Reforger DocumentationBRead-only
EN: Search the curated, offline catalog of primary Bohemia Interactive documentation and samples. DE: Den kuratierten Offline-Katalog primaerer Bohemia-Interactive-Dokumentation und Beispiele durchsuchen.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=false. The description adds context that the catalog is 'curated' and 'offline', which is useful but does not disclose additional behavioral traits such as authorization needs or result format. It adds some value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key purpose. However, including a bilingual version (German) adds redundancy for an agent likely operating in English. It could be more concise by omitting the German text, but it is still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details about result format, limitations (e.g., only documentation, not code), and parameter usage. Given that there is no output schema and schema coverage is 0%, the description does not sufficiently compensate to make the tool's usage fully clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'query' or 'limit' parameters at all. It only describes the catalog being searched. For a search tool, parameters are critical, and the description fails to add meaning beyond the schema's basic definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches a specific curated, offline catalog of official documentation and samples. It distinguishes itself from siblings like search_workspace or search_local_api by specifying the source (Bohemia Interactive) and nature (curated, offline).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used for official docs via 'primary Bohemia Interactive documentation and samples', but it does not provide explicit guidance on when to use this versus alternative search tools, nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_workspaceSearch Arma Reforger WorkspaceARead-only
EN: Search text, Enforce Script, configs, metadata, prefabs, and world files using a safe literal query. DE: Text, Enforce Script, Konfigurationen, Metadaten, Prefabs und Weltdateien mit einer sicheren Literalsuche durchsuchen.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| project | Yes | ||
| extensions | No | ||
| caseSensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false. The description adds context about the types of files searched (text, scripts, configs, etc.), but does not disclose other behaviors such as performance, result limits, or scanning scope. With annotations present, the description provides marginal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a single English sentence and a German translation. It front-loads the purpose without extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has five parameters, no output schema, and 0% schema coverage, the description is highly incomplete. It fails to explain parameter behavior, return format, or effective querying strategies. For a search tool, more context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it only lists file types and does not explain any of the five parameters (limit, query, project, extensions, caseSensitive). The description adds little meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: searching text, scripts, configs, metadata, prefabs, and world files using a safe literal query. The name 'search_workspace' aligns with the resources searched, and it distinguishes from siblings like search_official_docs and search_local_api.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for workspace search via 'safe literal query' but does not explicitly state when to use this tool over alternatives like search_official_docs or search_local_api. No exclusions or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_statusArma Reforger MCP StatusARead-only
EN: Show configured capabilities, safety gates, and path availability. DE: Konfigurierte Funktionen, Sicherheitsfreigaben und Pfadverfuegbarkeit anzeigen.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds that it shows capabilities, safety gates, and path availability, which is useful but does not disclose further behavioral traits such as caching, server requirements, or output format. With annotations covering the safety profile, the description provides moderate additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences (EN and DE), front-loading the English version. Every word contributes to the purpose without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description is sufficient for a zero-parameter status tool, it could be more complete by hinting at the output format or structure (e.g., JSON, list). The description covers what it shows but not how the data is presented, which might require the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema has 100% coverage trivially. Per guidelines, a baseline score of 4 is appropriate since no parameter description is needed. The description does not repeat schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool shows 'configured capabilities, safety gates, and path availability.' The verb 'show' combined with specific resource types clearly defines the tool's purpose and distinguishes it from sibling tools like 'list_projects' or 'inspect_logs,' which address different concerns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives. While it implies its use for checking server configuration before other operations, no when-not-to-use or alternative recommendations are provided. The context is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_resourcesValidate Enfusion ResourcesARead-only
EN: Check local .meta files, GUID uniqueness, resource paths, missing metadata, and local {GUID}path mismatches. DE: Lokale .meta-Dateien, GUID-Eindeutigkeit, Ressourcenpfade, fehlende Metadaten und lokale {GUID}Pfad-Abweichungen pruefen.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the tool is known to be read-only and closed-world. The description adds transparency by detailing exactly what is validated (meta files, GUIDs, paths, etc.), going beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences (EN and DE), front-loaded with the English version. It is concise and to the point, though the German repetition could be trimmed. Overall, it is efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple input (one parameter) and no output schema, the description lists what the tool checks but does not explain the return format (e.g., list of issues, success/failure). It covers the scope of validation adequately but lacks detail on expected output, making it mildly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single required parameter 'project' with no description. Schema description coverage is 0%, and the tool description does not explain what 'project' means (e.g., project name or path). The description adds no semantic meaning to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('Check') and lists concrete resources (local .meta files, GUID uniqueness, resource paths, missing metadata, mismatches). This clearly distinguishes it from sibling tools like inspect_project or search_workspace, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool checks but provides no guidance on when to use it versus alternatives (e.g., inspect_project for project structure, search_workspace for broader search). No when-not or explicit context is given, so the usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workbench_commandPrepare or Run Arma Reforger WorkbenchC
EN: Build a quoted Workbench command and optionally launch the configured executable without a shell. DE: Einen korrekt maskierten Workbench-Befehl erstellen und die konfigurierte Programmdatei optional ohne Shell starten.
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | ||
| plugin | No | ||
| execute | No | ||
| project | Yes | ||
| autoClose | No | ||
| pluginArguments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations exist but are neutral (no readOnly, destructive hints). The description adds 'launch without a shell' but doesn't clarify side effects, permissions, or execution behavior. For a tool that can launch executables, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences (one English, one German) are brief, but the repetition of the same information in two languages is wasteful. It is structured but lacks useful content that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, a nested object, no output schema, and no parameter descriptions, the description is severely incomplete. It does not cover return values, error cases, or parameter relationships, leaving the agent with little to act on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description provides no explanation of any of the 6 parameters. The agent must guess from names like 'pluginArguments' or 'autoClose'. No example values or context for the nested object or enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool builds a Workbench command and optionally launches it, using clear verbs and resource. The title adds 'Prepare or Run Arma Reforger Workbench', making the purpose specific. It distinguishes from sibling tools like list_projects or server_status, which are about listing or inspecting, not building commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives. No mention of prerequisites, exclusions, or context. The description only states what it does, not when or why.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_project_fileWrite Arma Reforger Project FileBDestructiveIdempotent
EN: Preview or atomically write an approved text resource inside an addon with optional SHA-256 concurrency protection. DE: Eine freigegebene Textressource innerhalb eines Addons mit optionalem SHA-256-Aenderungsschutz vorpruefen oder atomar schreiben.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| dryRun | No | ||
| content | Yes | ||
| project | Yes | ||
| expectedSha256 | No | ||
| createDirectories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and idempotent hints. The description adds atomicity and SHA-256 concurrency protection, but does not elaborate on approval requirements, error scenarios, or failure behavior. Adds some value beyond annotations but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences (EN and DE), front-loading key functionality. While bilingual content may be redundant for an AI agent, it does not waste words and is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, no output schema, and write operation with destructive hint, the description should cover success/failure indicators, preview behavior, and atomic write guarantees. It only partially addresses these, leaving gaps in completeness for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. It mentions 'SHA-256' and 'approved text resource', partially explaining expectedSha256 and content, but does not describe dryRun, project, createDirectories, or path. Minimal addition beyond bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Preview or atomically write an approved text resource inside an addon', specifying the verb (preview/write) and resource (text resource). It distinguishes from sibling 'read_project_file' as a write operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for writing or previewing a file but does not explicitly state when to use versus alternatives like 'read_project_file' or when not to use. No explicit guidance on preview vs write choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v0.1.0- First observed
analyze_enforce_script - First observed
generate_script_template - First observed
inspect_logs - First observed
inspect_project - First observed
list_projects - First observed
read_project_file - First observed
search_local_api - First observed
search_official_docs - First observed
search_workspace - First observed
server_status - First observed
validate_resources - First observed
workbench_command - First observed
write_project_file
TDQS
Scored across 13 tools
Each tool targets a distinct aspect of ArmA Reforger development: project discovery, inspection, file I/O, validation, script analysis, generation, log analysis, documentation search, and workbench execution. No two tools have overlapping purposes; even the three search tools are scoped to workspace files, official docs, and local API respectively.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., list_projects, inspect_project, search_workspace, validate_resources). The verbs are descriptive and uniform, making the toolset easy to navigate.
With 13 tools, the set is well-scoped for a modding assistant. It covers discovery, inspection, file operations, validation, analysis, generation, and documentation without being overwhelming or too sparse.
The toolset supports the core modding workflow: discover projects, inspect and modify files, validate resources, analyze scripts, generate templates, search documentation, and examine logs. Minor gaps like project creation or dependency management are absent but do not severely hinder core functionality.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
An MCP server that gives your AI access to the source code and docs of all public github repos
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that supercharges AI assistants with powerful tools for software development, enabling research, planning, code generation, and project scaffolding through natural language interaction.1132103MIT
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server for Arma Reforger and Enfusion engine modding that enables users to create mods, search API classes, and generate scripts through natural language. It provides a comprehensive suite of tools for scaffolding addons, generating prefabs, and building projects using the Workbench CLI.8914-
- AlicenseAqualityCmaintenanceMCP server for DayZ Enforce Script that gives AI coding assistants deep knowledge of the DayZ scripting API with semantic search, code validation, class hierarchy, and reverse call graphs.81MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered modding for Arma Reforger with 50 tools for API search, code generation, project scaffolding, and Workbench control.1-
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/maxionice/arma-reforger-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server