Skip to main content
Glama
maxionice

Arma Reforger MCP Server

by maxionice

Arma Reforger MCP Server — Enfusion & Enforce Script Modding

CI MCP Node.js License: MIT

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.

English | Deutsch | Changelog

IMPORTANT

Static analysis is intentionally conservative and heuristic. Enfusion Workbench remains the final compiler, importer, resource database, and runtime validator.

WARNING

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:

  • .gproj IDs, GUIDs, configurations, and dependency GUIDs

  • valid Enforce Script modules below Scripts/

  • creator-tag and Enfusion style conventions

  • .meta ownership, duplicate GUIDs, and {GUID}path references

  • Workbench/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

doctor

Diagnose runtime, paths, Workbench, limits, and cache

None

server_status

Show configuration, path availability, and safety gates

None

list_projects

Discover and parse .gproj addons

None

get_mod_development_standard

Return the versioned mod structure and engineering rules

None

inspect_project

Inventory assets, dependencies, and structure compliance

None

audit_mod_structure

Audit official or enterprise addon-structure rules

None

read_project_file

Read bounded text ranges with SHA-256

None

search_workspace

Literal search across scripts and Enfusion text resources

None

validate_resources

Check .meta, duplicate GUIDs, paths, and local references

None

analyze_enforce_script

Run documented convention/performance heuristics

None

generate_script_template

Generate tagged, bilingual Enforce Script skeletons

None

inspect_logs

Group actionable Workbench/game errors

None

search_official_docs

Search a curated primary-source catalog

None

search_local_api

Search installed Arma Reforger and Enfusion Doxygen HTML

None

write_project_file

Dry-run or atomically write approved text resources

Opt-in

inspect_layout

Inspect widget declarations and local resource references

None

export_layout_bundle

Export a layout, metadata, and local source dependencies

Opt-in

inspect_source_archive

Inventory a source ZIP and reject traversal/ZIP-bomb risks

None

extract_source_archive

Extract an authorized source ZIP below a configured root

Opt-in

export_project_archive

Export editable addon source with a JSON manifest

Opt-in

install_workbench_bridge

Install the bundled read-only NET API bridge source

Opt-in

workbench_status

Query live Workbench, compiler, and World Editor state

None

workbench_validate_scripts

Compile a script configuration in live Workbench

None

workbench_open_resource

Open a mounted resource in Workbench

Opt-in

workbench_focus_module

Focus an allowlisted Workbench editor module

Opt-in

workbench_bridge_call

Query bridge info, mounted resources, or World Editor state

Opt-in

workbench_custom_call

Call a verified custom NetApiHandler contract

Opt-in

workbench_command

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 build

Smoke-test the CLI:

node dist/cli.js --help
node dist/cli.js --version

Use 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

ARMA_REFORGER_PROJECT_ROOTS

Workbench addon folder on Windows

Semicolon-separated allowed project roots

ARMA_REFORGER_LOG_DIRS

Workbench and game log folders on Windows

Semicolon-separated read-only log roots

ARMA_REFORGER_DOCS_DIR

None

Semicolon-separated local Workbench Doxygen roots

ARMA_REFORGER_ARCHIVE_ROOTS

Project roots

Allowed ordinary source-ZIP roots

ARMA_REFORGER_EXPORT_DIR

None

Existing directory for generated source ZIPs

ARMA_REFORGER_WORKBENCH_PATH

None

Absolute Workbench executable

ARMA_REFORGER_WORKBENCH_ADDON_DIRS

Matching Steam-library game data

Semicolon-separated dependency addon roots

ARMA_REFORGER_ALLOW_WRITES

false

Enable non-dry-run project writes

ARMA_REFORGER_ALLOW_PROCESS_EXECUTION

false

Enable Workbench launch

ARMA_REFORGER_ALLOW_ARCHIVE_OPERATIONS

false

Enable source ZIP extraction/export

ARMA_REFORGER_ALLOW_WORKBENCH_ACTIONS

false

Enable UI/custom NET API actions

ARMA_REFORGER_NET_API_HOST

127.0.0.1

Loopback host only

ARMA_REFORGER_NET_API_PORTS

5775,5700

Ordered ports to probe

ARMA_REFORGER_NET_API_TIMEOUT_MS

5000

Timeout per NET API attempt

ARMA_REFORGER_MAX_FILE_BYTES

2097152

Per-file read/write safety limit

ARMA_REFORGER_MAX_SEARCH_RESULTS

100

Default search result limit

ARMA_REFORGER_MAX_TRAVERSAL_DEPTH

12

Maximum recursive directory depth

ARMA_REFORGER_MAX_ARCHIVE_ENTRIES

10000

Maximum files accepted in a source ZIP

ARMA_REFORGER_MAX_ARCHIVE_EXPANDED_BYTES

1073741824

Maximum declared expanded ZIP size

ARMA_REFORGER_MAX_INDEXED_FILES

50000

Maximum files traversed by one project operation

ARMA_REFORGER_OPERATION_TIMEOUT_MS

60000

Maximum duration of one MCP tool request

ARMA_REFORGER_PROJECT_CACHE_TTL_MS

5000

Project-discovery cache lifetime

ARMA_REFORGER_OBSERVABILITY_LEVEL

info

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

  1. In Workbench, check File → Options → General → Net API → Enabled.

  2. Configure the local port if your Workbench build differs from the probed defaults.

  3. Call workbench_status; then use focused operations such as workbench_validate_scripts or workbench_open_resource.

  4. For mounted-resource discovery and World Editor snapshots, preview and install workbench/ARM_MCPWorkbenchBridge.c with install_workbench_bridge, reload scripts, and call workbench_bridge_call.

  5. Extend control with your own audited NetApiHandler, then call it through workbench_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.

WARNING

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=true or --allow-writes.

  • Workbench launch requires both a validated executable name and ARMA_REFORGER_ALLOW_PROCESS_EXECUTION=true or --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.

  1. Run doctor, then server_status and list_projects.

  2. Read the relevant get_mod_development_standard sections and run audit_mod_structure.

  3. Inspect the target with inspect_project.

  4. Search and read existing implementation patterns.

  5. Verify unknown APIs against local Doxygen or official documentation.

  6. Analyze scripts and validate resources.

  7. Preview writes with dryRun: true and expectedSha256.

  8. Call workbench_status and workbench_validate_scripts, or prepare a Workbench command with execute: false when offline.

  9. Inspect layouts and preview exports/extractions before enabling their gates.

  10. 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-run

The 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 decisions

Read 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 tools
analyze_enforce_scriptAnalyze Enforce ScriptC
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNo
pathNo
projectNo
creatorTagNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 TemplateB
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
baseClassNo
classNameYes
creatorTagYes

TDQS

B3/5.0
Behavior1/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 LogsB
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
logNo
tailBytesNo

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 ProjectA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesEN: Project ID, GUID, title, directory, or absolute path. DE: Projekt-ID, GUID, Titel, Ordner oder absoluter Pfad.

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 ProjectsA
Read-only

EN: Discover .gproj addons under the configured roots. DE: .gproj-Addons unter den konfigurierten Wurzeln finden.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 FileA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesEN: Addon-relative path. DE: Addon-relativer Pfad.
endLineNo
projectYes
startLineNo

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 APIC
Read-only

EN: Search the official Doxygen HTML installed with Arma Reforger Tools. DE: Die mit Arma Reforger Tools installierte offizielle Doxygen-HTML-Dokumentation durchsuchen.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 DocumentationB
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 WorkspaceA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
projectYes
extensionsNo
caseSensitiveNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 StatusA
Read-only

EN: Show configured capabilities, safety gates, and path availability. DE: Konfigurierte Funktionen, Sicherheitsfreigaben und Pfadverfuegbarkeit anzeigen.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 ResourcesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
moduleYes
pluginNo
executeNo
projectYes
autoCloseNo
pluginArgumentsNo

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 FileB
DestructiveIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
dryRunNo
contentYes
projectYes
expectedSha256No
createDirectoriesNo

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 13 tool updatesv0.1.0
    • First observedanalyze_enforce_script
    • First observedgenerate_script_template
    • First observedinspect_logs
    • First observedinspect_project
    • First observedlist_projects
    • First observedread_project_file
    • First observedsearch_local_api
    • First observedsearch_official_docs
    • First observedsearch_workspace
    • First observedserver_status
    • First observedvalidate_resources
    • First observedworkbench_command
    • First observedwrite_project_file

TDQS

A3.5/5.0

Scored across 13 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

Appeared in Searches

Latest Blog Posts

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