AFSIM MCP Server
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., "@AFSIM MCP Servercreate a scenario with an F-16 and a radar site"
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.
AFSIM MCP Server
MCP (Model Context Protocol) server for the Advanced Framework for Simulation, Integration, and Modeling (AFSIM). Enables LLMs and AI agents to interact with AFSIM through standardized tools.
Features
Category | Tools |
Scenario Management |
|
Entity & Component Management |
|
Simulation Control |
|
Results Handling |
|
AFSIM Backend |
|
Natural Language |
|
Related MCP server: AspenPlus MCP Server
Installation
pip install -e .Or install dependencies directly:
pip install mcpUsage
Running the server
# Via installed CLI
afsim-mcp
# Via Python module
python -m afsim_mcp.serverThe server uses stdio transport and is compatible with any MCP client (Claude Desktop, VS Code MCP extension, etc.).
Claude Desktop configuration
Add to claude_desktop_config.json:
AFSIM MCP
本项目是一个本地 MCP 服务器,用于把 AFSIM 能力接入支持 MCP 的客户端(如 Cursor、Claude Desktop、VS Code、Trae、OpenCode 等)。
仓库只包含 MCP 服务源码与配置脚本,不附带测试工程、测试数据、示例生成产物或本地运行状态。实际使用时,请把 AFSIM 工程目录通过配置指向你自己的 project_root。
如需给大模型或团队成员提供统一项目背景与建模建议,可参考仓库中的 memory.md。
如需评估当前项目真实能力边界,可参考 CAPABILITY_ASSESSMENT.md;如需约束接入大模型的标准工作流,可参考 MODEL_WORKFLOW_PROMPT.md。
前置条件
Windows
Python 3.10+
已安装 AFSIM(本机可运行)
快速开始
在项目目录执行:
python configure_mcp.py脚本会按提示询问并写入本地配置,同时输出客户端所需的 MCP 配置片段。
配置项说明
AFSIM 根目录:AFSIM 安装目录
AFSIM 项目目录:你的 AFSIM 工程目录
AFSIM demos 目录:官方示例目录
AFSIM bin 目录:
mission.exe等可执行文件所在目录配置文件存放目录:默认
C:\Users\你的用户名\.afsim_mcp运行时状态目录:默认
project_root\mcp_state;客户端通常只需要传入AFSIM_MCP_CONFIG_DIR用于定位配置文件,如需覆盖状态目录可额外设置AFSIM_MCP_STATE_DIR
如果检测到已有配置,脚本会显示旧值;直接回车表示保留旧值。
客户端配置
脚本会输出两段内容:
通用连接信息
你选择的平台对应的 JSON 配置示例
{
"mcpServers": {
"afsim": {
"command": "afsim-mcp"
}
}
}Or if not installed:
{
"mcpServers": {
"afsim": {
"command": "python",
"args": ["-m", "afsim_mcp.server"],
"cwd": "/path/to/AFSIM_MCP"
}
}
}Available Tools
37 toolsadd_moverA
Add a mover component to a platform.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the target platform. mover_type: AFSIM mover type (e.g. 'wsf_route_mover', 'wsf_air_mover'). mover_name: Optional name for the mover component.
Returns
JSON with component metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes | ||
| mover_type | No | wsf_route_mover | |
| mover_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry full behavioral disclosure. It states the core behavior and return type but lacks details on side effects, validation, preconditions, or error handling.
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 clear first sentence and well-structured parameter list. Every sentence is necessary and informative.
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 covers the main action and parameters well, and mentions the return type. It lacks prerequisites (e.g., platform must exist) and error conditions, but is adequate for a straightforward add operation.
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 fully compensates by providing clear, context-rich explanations for each parameter (e.g., 'UUID', 'AFSIM mover type', 'Optional name'), adding value 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 clearly states the action ('Add a mover component to a platform') with specific verb and object, and distinguishes from sibling tools like add_sensor and add_weapon by specifying 'mover'.
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 (when you need to add a mover to a platform) but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_sensorA
Add a sensor component to a platform.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the target platform. sensor_type: AFSIM sensor type (e.g. 'wsf_radar_sensor', 'wsf_eo_sensor'). sensor_name: Optional name for the sensor component.
Returns
JSON with component metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes | ||
| sensor_type | No | wsf_radar_sensor | |
| sensor_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool adds a sensor component and returns JSON metadata, but does not mention prerequisites (e.g., platform must exist), potential side effects, or any destructive behavior. The explanation is adequate but lacks depth.
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 and well-structured: a brief one-sentence summary followed by a clear parameter list. It is front-loaded with the key action. While it could be slightly more compact, it efficiently conveys necessary information.
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 presence of an output schema, the description does not need to detail return values. However, it omits important contextual information such as prerequisites (scenario and platform must exist) and whether the operation is additive or overwrites existing sensors. The description is moderately complete.
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?
With 0% schema description coverage, the parameter explanations in the description add significant value. Each parameter is explained with context: scenario_id is a UUID, platform_name is the target, sensor_type includes example values, and sensor_name is optional. This goes beyond the schema's title/type/default fields.
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: 'Add a sensor component to a platform.' This specific verb+resource (add + sensor) distinguishes it from sibling tools like add_mover and add_weapon. The tool name and description are consistent.
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 does not explicitly guide when to use this tool versus alternatives. While the tool name implies it's for sensors, there is no mention of when not to use it or which other tools might be more appropriate (e.g., add_mover for movers). Usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_weaponA
Add a weapon component to a platform.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the target platform. weapon_type: AFSIM weapon type (e.g. 'wsf_missile', 'wsf_bomb'). weapon_name: Optional name for the weapon component.
Returns
JSON with component metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes | ||
| weapon_type | No | wsf_missile | |
| weapon_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states the tool 'adds' a component but does not detail side effects (e.g., whether the platform is modified permanently, or if any validation occurs). The return type is noted, but more context on impact would improve transparency.
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 clear structure: a header line, a parameter list, and a return note. Every sentence adds information, but the parameter descriptions could be more tightly integrated. Overall, it's efficient and well-organized.
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's complexity (4 parameters, 2 required) and the presence of an output schema, the description covers parameters and return but misses usage context and behavioral details. For a straightforward tool, it is adequate but not fully complete.
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 compensates by explaining each parameter's purpose (e.g., 'scenario_id' as UUID, 'weapon_type' as AFSIM type with example). It also clarifies the optional nature of 'weapon_name' and the return value, adding value 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 clearly states the action 'Add', the resource 'weapon component', and the target 'platform'. It distinguishes from sibling tools like 'add_mover' and 'add_sensor' by specifying the weapon type.
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 (e.g., 'add_mover', 'add_sensor'). No prerequisites or exclusions are mentioned, leaving the agent without context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_platformA
Add a new platform (entity) to a scenario.
Parameters
scenario_id: UUID of the target scenario. name: Unique name for the platform within the scenario. platform_type: AFSIM platform type (e.g. 'wsf_air_vehicle', 'wsf_ground_vehicle'). latitude, longitude: Initial position in decimal degrees. altitude_m: Initial altitude in metres.
Returns
JSON with platform metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| name | Yes | ||
| platform_type | No | wsf_platform | |
| latitude | No | ||
| longitude | No | ||
| altitude_m | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. It states the tool adds a platform but omits side effects, prerequisites (e.g., scenario existence), or whether it is destructive. The return value is mentioned but not in detail.
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 well-structured with headings and bullet points, no extraneous information. It is concise yet covers all parameters.
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 that an output schema exists, the minimal return description is acceptable. However, missing prerequisites (e.g., scenario must exist) and error conditions make it adequate but not complete.
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 meaningful context: explains scenario_id as UUID, name as unique, platform_type examples, latitude/longitude in decimal degrees, and altitude in metres. This goes beyond the schema's titles and defaults.
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 'Add a new platform (entity) to a scenario.' with specific verb and resource, and includes a detailed parameter list. It distinguishes itself from sibling tools like delete_platform and modify_platform.
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 by listing required parameters but does not explicitly state when to use this tool versus alternatives (e.g., add_mover). No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scenarioA
Create a new AFSIM scenario in memory.
Parameters
name: Unique name for the scenario. description: Optional human-readable description. duration_s: Simulation duration in seconds (default 3600). time_step_s: Simulation time step in seconds (default 1.0).
Returns
JSON with scenario_id, name, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No | ||
| duration_s | No | ||
| time_step_s | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the 'in memory' behavior and return fields, providing key behavioral context. However, it does not specify behavior on duplicate names (overwrite/error) or side effects on existing scenarios. Still, it adds significant value beyond a bare description.
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 one-line purpose, a structured parameter list, and a return note. Every sentence earns its place, with no fluff. The front-loaded purpose immediately orients the agent.
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 complexity (4 params, no annotations, output schema present), the description covers the core: name, duration, time step, and return. It misses context like reliance on an AFSIM installation and the need to later save the scenario. However, it is adequate for an experienced agent.
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 the description must compensate. It adds 'Unique name', 'Optional human-readable description', and units for numeric parameters (seconds, defaults). This meaningfully goes beyond the schema's titles and types, though it could include constraints like positive duration.
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 'Create a new AFSIM scenario in memory,' with a specific verb and resource. It distinguishes from siblings like load_scenario (file-based) and generate_scenario_from_prompt (AI-generated), making the tool's purpose unambiguous.
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 creating a new in-memory scenario but lacks explicit guidance on when to use vs. alternatives. It does not mention prerequisites (e.g., before adding components) or when to use load_scenario or generate_scenario_from_prompt instead. The 'in memory' hint is helpful but insufficient for clear decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_platformA
Remove a platform from a scenario.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the platform to remove.
Returns
JSON with 'removed' boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states the basic action and return type (JSON with 'removed' boolean). It does not mention that the operation is destructive, irreversible, or whether it cascades to associated components. Side effects or conditions are absent.
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: one introductory sentence followed by a clear parameter list. No extraneous information, well-structured and front-loaded.
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's simplicity and the presence of an output schema (not shown), the description covers purpose, parameters, and return format. However, it could be more complete by mentioning that the platform must exist or that the operation is irreversible. Overall adequate.
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 includes parameter explanations: 'UUID of the target scenario' and 'Name of the platform to remove.' This adds meaningful semantics beyond the schema's type and title.
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 'Remove a platform from a scenario,' which identifies the specific action (remove) and resource (platform from scenario). This distinguishes it from sibling tools like create_platform, modify_platform, and remove_component.
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 removing a platform, but lacks explicit guidance on when to use this tool versus alternatives (e.g., delete_scenario for deleting the entire scenario) or prerequisites (e.g., the platform must exist). No exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_scenarioA
Remove a scenario from memory (does not delete files on disk).
Parameters
scenario_id: UUID of the scenario to remove.
Returns
JSON with 'removed' boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the key behavior of not deleting files on disk, but lacks details on side effects, permissions, or reversibility. With no annotations, the description provides moderate transparency.
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?
Short and front-loaded description. The parameter section is somewhat redundant with the schema but not excessively so. No unnecessary words.
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 delete tool with one parameter and an output schema, the description covers the essential behavior (removes from memory, not disk) and return value. Could mention error handling but overall sufficient.
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?
Only parameter 'scenario_id' is described as 'UUID of the scenario to remove', adding meaning beyond the schema's type and title. However, no format constraints or examples are given.
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?
Clearly states the action (remove a scenario from memory) and distinguishes from file deletion. Specific verb 'remove' and resource 'scenario' are unambiguous.
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?
Implied usage: use when needing to remove a scenario from memory without deleting files. No explicit when-not-to-use or alternatives among siblings like 'delete_platform' or 'remove_component'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_afsim_installationA
Auto-detect AFSIM installation from environment and file system.
Returns
JSON with afsim_home, binary paths, and all_found flag.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the non-destructive nature of detection and specifies the return format (JSON with afsim_home, binary paths, all_found flag). Since no annotations exist, this provides useful transparency, though it could mention potential failure scenarios.
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?
Extremely concise with two short sentences. The purpose is front-loaded, and every sentence adds value without redundancy.
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 parameters and a simple task, the description is fully complete. It explains the detection method and return value, which suffices for an agent to invoke 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 tool has zero parameters, so baseline is 4. The description adds meaning beyond the empty schema by specifying the return structure, which aids in understanding the output.
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 action ('Auto-detect AFSIM installation') and the source ('from environment and file system'). It distinguishes itself from sibling tools like set_afsim_binary by focusing on detection rather than setting paths.
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 is provided on when to use this tool versus alternatives. The description only states what the tool does, without indicating prerequisites or when it should be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_results_to_jsonA
Convert a result file (.csv, .evt, .aer) to JSON format.
Parameters
file_path: Path to the source result file. output_path: Destination JSON path (defaults to same name with .json extension).
Returns
JSON with the output file path.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| output_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the conversion action and return format but fails to mention critical behavioral traits such as whether existing output files are overwritten, required permissions, error handling, or side effects on source files.
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 at ~50 words, structured with parameters and returns sections, and front-loaded with the main purpose. Every sentence adds value, no redundancy.
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's simplicity (2 parameters, supported formats listed) and presence of an output schema, the description is largely complete. It explains the return value and covers main behavior. However, it could mention whether the conversion is lossy or preserves all data.
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 adds meaning for both parameters: file_path is the source path, output_path defaults to same name with .json extension (though schema default is empty string, creating slight inconsistency). This partially compensates but could be more precise (e.g., clarifying default behavior).
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 converts specific result file formats (.csv, .evt, .aer) to JSON format, using a specific verb 'convert' and resource 'result file to JSON'. This distinguishes it from sibling tools like query_csv_results which query data rather than convert formats.
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 implicitly indicates usage when a JSON output file is needed from supported result files. However, it does not explicitly state when to avoid this tool or mention alternatives, such as using query tools for in-memory results. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_scenario_from_promptA
Generate an AFSIM scenario from a natural language description.
The generator uses keyword matching and heuristics to parse the prompt and build a scenario with platforms, movers, sensors, and weapons.
Examples: "Create a scenario with 2 fighters and a ship over 2 hours" "Simulate 3 UAVs with radar sensors patrolling for 30 minutes" "Air defense scenario: 1 SAM site and 4 attack aircraft, 1 hour"
Parameters
prompt: Natural language description of the desired scenario.
Returns
JSON with scenario_id, name, platform list, warnings, and AFSIM preview.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses use of keyword matching/heuristics and components built, but lacks details on limitations, side effects, or error handling; no annotations to compensate.
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?
Concise with front-loaded purpose and helpful examples; structured Parameters/Returns section adds clarity but slightly lengthens the description.
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?
Covers purpose, mechanism, examples, and return format. Lacks mention of persistence or linkage to other tools, but sufficient for a 1-parameter tool with output schema.
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 parameter 'prompt' is described in the Parameters section, adding meaning beyond the bare schema (which had 0% 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?
Clearly states it generates an AFSIM scenario from natural language, distinguishing it from siblings like create_scenario or refine_scenario_from_prompt.
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?
Examples imply use for quick scenario creation, but no explicit when-to-use or when-not-to-use guidelines, nor direct comparison with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_results_summaryA
Summarise simulation results in a directory.
Parameters
directory: Directory to summarise (defaults to simulation output dir).
Returns
JSON with total_files, by_format counts, and total_size_bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions the return format but does not disclose side effects, permissions, or safety (e.g., read-only). With no annotation support, the description is insufficient for full transparency.
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 structured as a docstring with a clear first line and parameter/return sections. It is efficient but could be slightly more concise, though it remains readable and focused.
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 covers the basic purpose and return structure, but lacks details on edge cases (e.g., empty or non-existent directories). Given the tool's simplicity and the presence of an output schema, it is 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?
The description explains the directory parameter's purpose and default behavior ('defaults to simulation output dir'), adding meaning beyond the schema (which lacks descriptions). This compensates for 0% schema description 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?
The description clearly states 'Summarise simulation results in a directory' with a specific verb and resource, distinguishing it from sibling tools like list_result_files (lists files, not summary) and query_* tools (queries specific formats).
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 summarizing results but does not explicitly state when to use it versus alternatives like export_results_to_json or query tools. No when-not or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scenario_contentA
Get the AFSIM text representation of a scenario.
Parameters
scenario_id: UUID of the scenario.
Returns
JSON with 'name' and 'content' (AFSIM scenario text).
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states it returns the text representation, implying a read-only operation. However, it does not mention prerequisites (e.g., scenario must exist) or potential errors. The given info is minimal but not misleading.
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 and well-structured: a brief purpose statement, followed by a parameters section and a returns section. No unnecessary words.
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 tool is simple with one parameter and an output schema (known to exist). The description explains the output format (JSON with 'name' and 'content'). It could mention that the scenario must exist, but overall it's sufficient for basic usage.
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 schema has no parameter description (0% coverage), but the tool's description clarifies that 'scenario_id' is a UUID. This adds meaning beyond the schema, which only provides the title and type.
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 retrieves the AFSIM text representation of a scenario, using the verb 'Get' and specifying the resource. This distinguishes it from sibling tools like create_scenario or delete_scenario.
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 like list_scenarios (which lists names) or load_scenario (which loads into memory). The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_simulation_statusA
Query the current status of a simulation run.
Parameters
run_id: UUID of the simulation run.
Returns
JSON with status, times, PID, output directory, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It discloses return fields (status, times, PID, output directory) but omits details like whether state changes, required permissions, or error conditions. Adequate but not exhaustive.
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 concise sentences front-load purpose and parameters. Every sentence adds value; no waste.
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 one simple parameter and an output schema (not shown but indicated), the description adequately covers purpose and return format. Could mention possible status values or usage caveats, but overall complete for a query 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?
The description adds that run_id is a 'UUID of the simulation run,' providing format and semantics beyond the schema's 'string' type. Schema coverage is 0%, so description fully compensates.
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 'Query the current status of a simulation run.' The verb 'Query' and resource 'status of a simulation run' are specific and distinct from siblings like run_simulation or get_results_summary.
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 (e.g., get_results_summary, list_simulation_runs). The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_componentsA
List all components on a platform.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the target platform.
Returns
JSON array of component summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the return type (JSON array of component summaries) but omits behavioral traits like idempotency, authentication requirements, or potential side effects. The description is adequate but not exhaustive.
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 very concise with a clear structure: a one-line purpose, a parameter list, and a return value note. Every sentence serves a purpose, with no 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?
Given the tool's simplicity and the presence of an output schema, the description is largely complete. It identifies the parameters and return type. However, it could mention that the operation is read-only and safe to call multiple times, enhancing 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?
Schema description coverage is 0%, so the description must compensate. It adds brief descriptions ('UUID of the target scenario', 'Name of the target platform') which clarify the role of each parameter but offer no format constraints or examples. Minimal added value 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 clearly states it lists components on a platform, specifying the required parameters scenario_id and platform_name. This distinguishes it from sibling tools like list_platforms or list_scenarios, as it operates on a lower-level entity.
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 when to use (to list components) but does not provide explicit guidance on when not to use or alternative tools. With siblings like remove_component, some exclusion context would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_platformsA
List all platforms in a scenario.
Parameters
scenario_id: UUID of the target scenario.
Returns
JSON array of platform summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits. It states the tool lists platforms and returns a JSON array, implying a read-only operation. However, it does not mention any potential limitations or dependencies, which is adequate for a simple list tool but not exceptional.
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: one sentence for purpose, followed by a structured parameters section and return value note. No extraneous text.
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's simplicity (one parameter, output schema exists), the description is complete. It covers purpose, input, and output. However, it could mention that it returns all platforms without filtering, which is already implied.
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 schema coverage is 0%, so the description carries the burden. It explains that scenario_id is a 'UUID of the target scenario', adding meaning beyond the schema's title and type.
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 'List all platforms in a scenario', using a specific verb and resource. This distinguishes it from sibling tools like create_platform or delete_platform.
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 when one needs a list of platforms in a scenario, but does not explicitly state when to use it over alternatives like list_components or list_scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_result_filesB
List simulation result files.
Parameters
run_id: Filter to a specific run's output directory (optional). directory: Directory to scan (overrides default output dir). formats: Comma-separated list of extensions to include (e.g. '.aer,.csv').
Returns
JSON array of result file metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | ||
| directory | No | ||
| formats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It states that the tool lists files and returns metadata, but does not disclose that it is read-only, whether it accesses the file system or a database, or any side effects. The description is minimal and leaves the agent unaware of important behavioral aspects like default directories or recursion behavior.
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 and uses a clear structure with a brief purpose statement followed by labeled parameter explanations. It avoids unnecessary text, though the Python docstring style (e.g., 'Parameters ----------') is slightly verbose for an MCP description. Overall, every sentence adds value.
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 explains parameters and return type, which is helpful given the output schema exists. However, it lacks context about default behavior (e.g., what directory is scanned if none provided), whether listing is recursive, and the relationship to simulation runs. Given the tool's complexity (3 optional parameters) and no annotations, the description should provide more context to fully inform the agent.
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?
Despite 0% schema description coverage, the description provides clear semantics for all three parameters: run_id 'Filter to a specific run's output directory (optional)', directory 'Directory to scan (overrides default output dir)', and formats 'Comma-separated list of extensions to include (e.g. '.aer,.csv')'. This compensates well for the schema's lack of descriptions.
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 'List simulation result files' and specifies that it returns a JSON array of result file metadata. It distinguishes itself from sibling tools like query_aer_results, query_csv_results, and query_evt_results that query specific result types, and from export_results_to_json that exports results. The verb 'list' combined with 'result files' is specific and unambiguous.
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. Sibling tools such as query_aer_results, query_csv_results, and query_evt_results also deal with results, but the description does not explain that list_result_files returns file metadata while the query tools return parsed data. The agent is left to infer this distinction on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenario_filesA
List scenario files (.afsim and .json) in the scenarios directory.
Returns
JSON array of file paths.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return type (JSON array of file paths) and the directory searched, but lacks details on error handling, performance characteristics, or whether listing is recursive. No annotations provided to supplement.
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 brief sentences, front-loaded with the core purpose. No superfluous text.
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?
Sufficient for a simple tool with no parameters and an output schema. Could clarify if listing is recursive or only top-level, but overall complete.
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?
No parameters exist, so schema coverage is 100%. Description does not need to add parameter info; baseline 4 is appropriate.
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?
Clearly states it lists scenario files with specific extensions (.afsim and .json) in the scenarios directory, and notes the return format. This distinguishes it from sibling tools like list_scenarios or list_result_files.
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 other list tools (e.g., list_scenarios). No mentions of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scenariosA
List all in-memory scenarios.
Returns
JSON array of scenario summaries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates it returns a JSON array of summaries, implying read-only behavior. However, with no annotations provided, it lacks details like side effects (none) or performance implications, which is acceptable for a simple list tool.
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 sentences with no wasted words, front-loading the 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 the tool's simplicity (0 parameters, output schema exists), the description is complete: it specifies the resource, scope, and return format. No additional context required.
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?
There are no parameters, so the schema coverage is 100% trivially. Per calibration, baseline is 4 for 0-param tools; no additional parameter info needed.
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 'List all in-memory scenarios,' using a specific verb ('List') and resource ('scenarios'), and distinguishes from siblings like list_scenario_files and list_platforms by specifying 'in-memory'.
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 (e.g., list_scenario_files, list_platforms), or any prerequisites such as needing a loaded scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_simulation_runsB
List all known simulation runs and their statuses.
Returns
JSON array of run summaries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the return format. It does not disclose read-only nature, auth requirements, or other behavioral traits. The description carries the full burden and falls short.
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, front-loaded with purpose. No unnecessary words.
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 parameters and an output schema exists, the description is minimally acceptable but lacks details on what constitutes a 'run summary' and could be more informative for a general audience.
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?
No parameters, so baseline is 4. The description adds nothing about parameters, but that is acceptable given zero parameters.
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 lists all simulation runs with statuses. It is specific and matches the tool name, but does not differentiate from sibling tools like get_simulation_status.
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 siblings. Lacks context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load_scenarioA
Load a scenario from disk.
Parameters
file_path: Path to the scenario file. format: 'afsim' for .afsim files (default), 'json' for JSON files.
Returns
JSON with scenario_id and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| format | No | afsim |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not disclose side effects (e.g., overwriting current state), error handling, or requirements. The minimal description ('load from disk') adds little behavioral insight beyond the schema.
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 efficiently structured with a purpose statement, a parameter list, and a return note. Every sentence adds value; no wasted words.
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's simplicity (2 params, no enums, no nested objects, output schema present), the description covers essential information (what it does, parameters, return type). It misses error handling or edge cases, but is complete for basic usage. Sibling tools are diverse enough that this description suffices.
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 explains both parameters: file_path (path to file) and format (afsim default, json for JSON). This adds meaningful context beyond the schema's title and type. However, it lacks details like accepted file extensions or validation.
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 loads a scenario from disk, using specific verb 'load' and resource 'scenario from disk'. It distinguishes itself from sibling tools like create_scenario, save_scenario, and delete_scenario by focusing on loading an existing 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 guidance is provided on when to use this tool versus alternatives like create_scenario or get_scenario_content. The description lacks any context about prerequisites or situations where loading is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modify_platformA
Modify an existing platform's position or type.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the platform to modify. latitude, longitude, altitude_m: New position values (omit to keep current). platform_type: New platform type string (omit to keep current).
Returns
JSON with updated platform metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes | ||
| latitude | No | ||
| longitude | No | ||
| altitude_m | No | ||
| platform_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that optional parameters can be omitted to keep current values, and mentions the return type (JSON with updated metadata). However, it does not discuss side effects, permissions, or error conditions.
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 well-structured with a purpose sentence, a bulleted parameter list, and a returns line. It is concise and each part is necessary.
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 presence of an output schema and the moderate complexity (6 parameters), the description covers purpose, parameters, and return type adequately. It is missing details on error handling or prerequisites (e.g., scenario must exist), but overall it is reasonably complete.
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 the description must explain parameters. It provides clear explanations for each parameter: scenario_id as UUID, platform_name, lat/lon/alt as new position (omit to keep current), and platform_type as new type (omit to keep current). This adds significant meaning 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 first sentence clearly states the action and resource: 'Modify an existing platform's position or type.' This distinguishes it from sibling tools like create_platform (create new) and delete_platform (delete).
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 modifying position or type but does not explicitly state when to use this tool versus alternatives like creating a new platform or deleting one. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_aer_resultsA
Read an AFSIM .aer archive/result file.
Parameters
file_path: Path to the .aer file. max_lines: Maximum lines to return (default 500).
Returns
JSON with line_count and lines array.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| max_lines | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('Read') but provides no additional behavioral context such as side effects, authentication requirements, or error handling. With no annotations, a more explicit statement about safety would improve transparency.
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 clear purpose statement followed by structured parameter and return sections. No unnecessary text.
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 tool with an output schema, the description covers parameters and return format adequately. Missing details like error handling or prerequisites, but overall complete for typical use.
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 provides clear semantics for both parameters: file_path is 'Path to the .aer file' and max_lines is 'Maximum lines to return (default 500)'. Since schema coverage is 0%, this fully compensates and adds necessary meaning.
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 'Read' and the resource 'AFSIM .aer archive/result file', distinguishing it from sibling tools like query_csv_results and query_evt_results which operate on different file formats.
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 over alternatives or when not to use it. The intended use case (reading .aer files) is implied but not contrasted with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_csv_resultsA
Read and query a CSV result file.
Parameters
file_path: Path to the CSV file. columns: Comma-separated column names to include (all if empty). max_rows: Maximum rows to return (default 1000).
Returns
JSON with columns, row_count, and rows.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| columns | No | ||
| max_rows | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It describes the parameters and return format (JSON with columns, row_count, rows), adding default max_rows. However, it does not mention read-only nature, error handling, file existence requirements, or performance implications. Adequate but could be more transparent.
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 highly concise: one sentence for purpose, followed by a clear parameter list, and a return format note. Every sentence earns its place with no redundancy. Front-loaded with the core 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 the tool's moderate complexity (reading CSV with optional filtering), the description covers purpose, parameters, and return structure. With an output schema present, the return explanation suffices. However, it does not state assumptions like file_path must exist or behavior on missing columns. Mostly complete but misses minor contextual details.
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. It explains file_path (path to CSV), columns (comma-separated, all if empty), and max_rows (default 1000). This adds meaning beyond the schema's field names and types, but the explanations are minimal. Sufficient for basic understanding, not comprehensive.
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 'Read and query' and the resource 'CSV result file', which precisely conveys the tool's function. It differentiates well from sibling query tools like query_aer_results and query_evt_results by specifying the file type.
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 does not provide any guidance on when to use this tool versus alternatives. It lacks explicit context for when it is appropriate, exclusions, or mention of related tools. Users must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_evt_resultsA
Read an AFSIM .evt event file.
Parameters
file_path: Path to the .evt file. max_lines: Maximum lines to return (default 500).
Returns
JSON with line_count and lines array.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| max_lines | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must bear the full burden. It discloses the return format and default max_lines but lacks details on error handling, large file behavior, or safety (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 concise, front-loaded with purpose, and well-structured with clear Parameters and Returns sections. No extraneous text.
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 presence of an output schema, the description adequately explains return values. It covers the core functionality but omits error scenarios or prerequisites.
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%, but the description adds meaningful context: 'Path to the .evt file' and 'Maximum lines to return (default 500)'. This goes beyond the schema's bare titles and types.
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 'Read' and the resource 'AFSIM .evt event file', distinguishing it from sibling tools like query_aer_results and query_csv_results.
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 reading .evt files but provides no explicit guidance on when to use this tool versus alternatives like query_aer_results or query_csv_results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refine_scenario_from_promptA
Apply a natural language refinement to an existing scenario.
Supports:
Adding platforms: "add 2 more fighters"
Changing duration: "extend to 3 hours"
Parameters
scenario_id: UUID of the scenario to refine. refinement_prompt: Natural language description of the changes to make.
Returns
JSON with changes applied and updated platform count.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| refinement_prompt | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains it applies changes and returns updated JSON, but does not disclose whether modifications are persisted immediately, if the scenario must be loaded first, or potential side effects. Without annotations, more detail would be beneficial.
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, using bullet points for supported changes and a clear header for parameters. Every sentence is informative and well-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?
The description covers purpose, parameters, and return value. However, it lacks details on error handling, prerequisites (e.g., scenario existence), or validation of the prompt, leaving minor gaps for an agent.
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 explicitly explains both parameters: scenario_id as the UUID and refinement_prompt as the natural language description. This adds essential meaning beyond the schema which only provides titles.
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 refines an existing scenario using natural language, with examples of adding platforms and changing duration. This distinguishes it from siblings like generate_scenario_from_prompt which creates new scenarios.
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 modifying existing scenarios and provides concrete examples, but does not explicitly state when not to use it or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_componentB
Remove a component from a platform.
Parameters
scenario_id: UUID of the target scenario. platform_name: Name of the target platform. component_name: Name of the component to remove.
Returns
JSON with 'removed' boolean.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| platform_name | Yes | ||
| component_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only mentions the return boolean 'removed'. It does not disclose potential side effects, permissions needed, or what happens if the component doesn't exist.
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 and well-structured, using a clear header and separate sections for parameters and returns. No unnecessary words.
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 removal tool with three required parameters and an output schema, the description covers the basic functionality and return format. It lacks error handling or edge-case details but is reasonably complete for typical use.
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 adds brief parameter explanations (e.g., 'UUID of the target scenario') beyond the schema's field titles. However, schema coverage is 0% and the explanations are minimal, not deeply clarifying formats or constraints.
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 action 'Remove a component from a platform', which is a specific verb and resource. It distinguishes from sibling tools like 'add_mover' or 'delete_platform'.
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, such as when to remove a component versus modifying or deleting the platform. No context on prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_missionA
Launch the AFSIM Mission Planner.
Parameters
scenario_file: Optional path to open in Mission Planner.
Returns
JSON with success flag and PID.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_file | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions it returns a PID, implying process launch, but does not disclose potential side effects, blocking behavior, or dependencies (e.g., AFSIM installation). With no annotations, more detail 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?
The description is extremely concise: three lines covering purpose, parameter, and return value. Every part is essential and front-loaded.
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 adequately covers a simple launcher use case but omits important details like when to use this vs other run tools and whether AFSIM must be installed.
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 explains the single parameter 'scenario_file' as an optional path, which the schema lacks (0% coverage). This adds necessary meaning beyond the structured input.
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 launches the AFSIM Mission Planner, a specific action and resource. It distinguishes from sibling tools like run_simulation, run_warlock, etc., which focus on running other AFSIM components.
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 (e.g., run_simulation, run_mystic). The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_mysticB
Launch the AFSIM Mystic post-processor.
Parameters
results_dir: Directory containing simulation results to analyse.
Returns
JSON with success flag and PID.
| Name | Required | Description | Default |
|---|---|---|---|
| results_dir | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond launching and returning a PID. Without annotations, it fails to indicate whether the tool is blocking or async, what resources it uses, or any side effects.
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, using a brief paragraph followed by a structured Parameters and Returns section. Every sentence adds value without redundancy.
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 covers the basic purpose and parameter, but lacks context about prerequisites, behavior (e.g., blocking/non-blocking), and relationship to sibling tools. With no annotations, more detail is needed for full 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 description adds meaning to the single parameter by specifying 'results_dir: Directory containing simulation results to analyse.' This tells the user it expects a directory path with simulation results, which is not evident from the schema alone.
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 launches the AFSIM Mystic post-processor, specifying a verb and resource. However, it does not differentiate it from sibling tools like run_warlock or run_wizard, which might also be post-processors.
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. There is no mention of prerequisites, such as needing simulation results from a prior run, or context for choosing between post-processors.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_simulationA
Run an AFSIM simulation for the specified scenario.
If no AFSIM binary is configured (or dry_run is True), the simulation is recorded as completed immediately without executing AFSIM.
Parameters
scenario_id: UUID of the scenario to simulate. dry_run: If True, skip actual AFSIM execution (useful for testing).
Returns
JSON with run_id, status, and other run metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| dry_run | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the conditional execution behavior (dry_run or missing binary) and mentions the return format. However, it does not specify whether the tool is synchronous, its side effects, or prerequisites beyond the binary configuration.
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 and well-structured: a summary line, a conditional note, parameter descriptions, and return type. Every sentence is informative with no fluff.
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's simplicity (2 parameters, no nested objects, output schema exists), the description covers essential aspects: purpose, parameter semantics, return structure, and a behavioral nuance. It lacks only minor details like error cases or prerequisite checks.
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 0% description coverage, so the description must compensate. It fully explains both parameters: 'scenario_id' as 'UUID of the scenario to simulate' and 'dry_run' as skipping execution for testing. This adds clear meaning 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 clearly states the action ('Run an AFSIM simulation') and target ('for the specified scenario'). It is specific and distinct from sibling tools by mentioning AFSIM and scenario, but it does not explicitly differentiate from similar run tools like run_mission.
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 context about when the simulation is recorded without execution (no binary or dry_run=True), which guides usage. However, it lacks explicit statements about when to use this tool over alternatives or 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.
run_warlockB
Run the AFSIM Warlock batch simulation engine.
Parameters
scenario_file: Path to the AFSIM scenario file. output_dir: Directory for output files (default current dir).
Returns
JSON with success flag, returncode, stdout/stderr snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_file | Yes | ||
| output_dir | No | . |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions returning JSON with success flag and output snippets, but does not disclose side effects (e.g., file creation), blocking behavior, permissions, or error handling.
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?
Concise and structured: a brief header followed by a parameter list and return description. No fluff, though the docstring format is not overly compact.
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?
Covers purpose, parameters, and return value. However, lacks behavioral context (e.g., whether it's a long-running batch job) and usage guidelines. Adequate but could be more complete.
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?
With 0% schema description coverage, the description adds clear meaning: 'scenario_file' is a path, 'output_dir' is for output files with a default. This is sufficient for a 2-parameter tool.
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 'Run' and the resource 'AFSIM Warlock batch simulation engine'. It distinguishes from siblings like 'run_simulation' by specifying the Warlock engine, but could be more explicit about what makes Warlock unique.
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 such as 'run_simulation' or 'run_mystic'. No preconditions or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_wizardA
Launch the AFSIM Wizard (GUI scenario builder).
Parameters
scenario_file: Optional path to open in Wizard.
Returns
JSON with success flag and PID (if launched).
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_file | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It reveals the tool launches a GUI (blocking/interactive) and returns a PID, which is useful. However, it does not mention side effects, system state changes, or dependencies like AFSIM installation, leaving moderate gaps.
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 highly concise: a one-sentence purpose, then a clean parameter table and return type. Every piece of information is relevant and no filler. This front-loads the core action efficiently.
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 tool with one optional parameter, the description covers the key aspects: what it does, the parameter, and the return structure (success + PID). The existence of an output schema (not shown) partially offsets the need for return details. However, it could mention that the call is blocking or that AFSIM must be installed, making it nearly complete.
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 schema has 1 parameter with 0% coverage (no property descriptions). The description adds meaning: 'Optional path to open in Wizard', clarifying the param's role beyond the schema's type and default. This adds value, though it is brief.
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 'Launch[es] the AFSIM Wizard (GUI scenario builder)', using a specific verb and resource. It distinguishes from siblings like 'run_mission' and 'run_simulation' by emphasizing the GUI builder aspect, indicating a different use case.
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 (e.g., 'create_scenario' for programmatic creation, 'run_simulation' for execution). No when-not-to-use or context is given, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_scenarioA
Save a scenario to disk.
Parameters
scenario_id: UUID of the scenario to save. file_path: Destination path. Defaults to scenarios/.afsim (or .json). format: 'afsim' (default) or 'json'.
Returns
JSON with the saved file path.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes | ||
| file_path | No | ||
| format | No | afsim |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses default file paths and formats but does not mention overwriting behavior, error handling, or any destructive aspects. No annotations provided to compensate.
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 clear structure: description line, parameters section, returns note. No wasted words.
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 covers purpose, parameters, and return value. Minor gaps on error conditions and overwriting behavior but sufficient for a simple save tool given output schema presence.
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?
With 0% schema description coverage, the description fully explains each parameter: scenario_id, file_path (with default path template), and format (with defaults). Adds meaning beyond schema titles and types.
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 'Save a scenario to disk,' specifying the action (save) and resource (scenario). It distinguishes from siblings like load_scenario and create_scenario.
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 does not explicitly state when to use this tool versus alternatives like load_scenario or create_scenario. Usage is implied but lacks exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_afsim_binaryA
Configure the path to the AFSIM simulation binary.
Parameters
binary_path: Absolute path to the AFSIM executable.
Returns
JSON confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| binary_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose whether the path is validated, persisted, or if it overwrites previous settings. Minimal behavioral insight beyond 'configure'.
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 clear purpose, parameters section, and returns section. No superfluous sentences; well-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?
Adequate for a simple setter tool with one parameter and an output schema. Lacks usage context and behavioral details but covers the essentials.
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 adds meaning to the single parameter by specifying 'Absolute path to the AFSIM executable', which goes beyond the schema's type string. With 0% schema coverage, this is valuable 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 configures the path to the AFSIM simulation binary, with specific verb 'Configure' and resource 'path to the AFSIM simulation binary'. It distinguishes from siblings like set_afsim_home and set_tool_binary_path.
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 (e.g., set_afsim_home, set_tool_binary_path). No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_afsim_homeA
Set the AFSIM installation root directory.
Parameters
path: Path to AFSIM_HOME (the directory containing bin/, data/, etc.).
Returns
JSON confirmation with detected binaries.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions setting a directory and returning a JSON confirmation. Lacks details on side effects (e.g., global state change, dependencies for other tools).
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?
Extremely concise: three lines with clear purpose, parameter summary, and return value. 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?
For a simple setter with one parameter and an output schema, the description covers the essential functionality. Could mention impact on other tools, but adequate.
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 schema has no description for 'path' (0% coverage), but the description adds meaning by specifying the directory contents (bin/, data/, etc.), providing context 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 clearly states the verb 'Set' and the resource 'AFSIM installation root directory', distinguishing it from siblings like set_afsim_binary.
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 set_afsim_binary or set_tool_binary_path, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_tool_binary_pathA
Override the binary path for a specific AFSIM tool.
Parameters
tool: Tool identifier: 'wizard', 'mission', 'warlock', or 'mystic'. path: Absolute path to the tool binary.
Returns
JSON confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | ||
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It states the action and return type, but does not mention side effects, persistence, validation, or error handling. This is adequate for a simple configuration tool but leaves gaps.
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 succinct, front-loaded with the key action, and uses a clear list format for parameters. Every sentence provides necessary information without redundancy.
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's simplicity (2 parameters, no nested objects) and the presence of an output schema, the description is nearly complete. It explains the tool's purpose and parameter semantics, though behavioral details like path validation are missing. Context signals indicate 0% schema coverage, so the description compensates adequately.
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% (no descriptions in schema), but the description adds meaning by listing valid tool identifiers and specifying that path must be absolute. This clarifies usage beyond the raw schema types. Could be improved by adding constraints or examples.
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 action ('Override the binary path for a specific AFSIM tool') and lists the valid tool identifiers. It distinctively separates this tool from siblings like set_afsim_binary and set_afsim_home by focusing on individual tool binaries.
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 does not explicitly specify when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. While sibling context provides some differentiation, the description lacks direct guidance for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_simulationB
Stop a running simulation.
Parameters
run_id: UUID of the simulation run to stop.
Returns
JSON with updated run status.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose behavior for edge cases (e.g., stopping an already stopped simulation) or any side effects. The return type is mentioned briefly.
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 and front-loaded, with no wasted words. Every sentence serves a 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?
Given the simple tool (1 required parameter, no nested objects), the description covers the main function and return type. However, it omits potential errors or prerequisites.
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 explains run_id as 'UUID of the simulation run to stop', adding meaning beyond the schema's type-only definition. This clarifies the parameter's role.
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 'Stop a running simulation' with a specific verb and resource, clearly distinguishing from related tools like run_simulation. However, it could be more detailed about the scope.
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, such as pausing or canceling simulations. The description only states what it does, not context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_scenarioB
Validate a scenario and return errors/warnings.
Parameters
scenario_id: UUID of the scenario to validate.
Returns
JSON with 'valid', 'errors', and 'warnings' lists.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It states it returns errors/warnings but does not mention if it modifies state, requires an existing scenario, or has side effects.
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?
Short and well-structured with Parameters and Returns sections. Slightly verbose for the low complexity, but no excess.
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?
Covers basic purpose and return format, but lacks context about prerequisites, side effects, or when validation is needed. With output schema, return detail is partially redundant.
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 specifies scenario_id as 'UUID of the scenario to validate', which adds meaning beyond the schema's type string. Coverage is 0%, so this is essential.
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?
Clear verb 'Validate' with specific resource 'scenario', and the purpose is distinct from sibling tools like create_scenario or run_simulation.
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 validation, what prerequisites exist (e.g., scenario must be saved), or how it relates to other tools like run_simulation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action or resource: scenario, platform, component, simulation, results, or configuration. Even closely related tools like run_simulation, run_warlock, run_mission are clearly differentiated by their specific AFSIM binary and purpose. No two tools overlap in functionality.
All tools follow a verb_noun naming pattern (e.g., create_scenario, list_platforms, run_simulation). Verbs are descriptive and consistent (create, delete, list, get, set, run, query, etc.). Even longer names like export_results_to_json maintain the pattern with additional qualifiers.
With 37 tools, the server is above the typical range but still appropriate for the complex AFSIM domain. Each tool serves a specific need across scenario creation, platform management, simulation execution, and result analysis. The count is high but not excessive given the breadth of functionality.
The tool set covers the full lifecycle: scenario CRUD, platform and component management, simulation execution (multiple binaries), result querying/export, and configuration. There are no critical gaps; all major operations for managing AFSIM simulations are represented.
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
Build, validate, and manage API simulations in WireMock Cloud from MCP-compatible AI agents.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Let AI agents query data and act across all your business apps via MCP.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables Large Language Models or other MCP clients to interact with Ansys/AGI STK (Systems Tool Kit), allowing users to control STK Desktop simulations programmatically or via natural language.42-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Aspen Plus process simulations through a standardized MCP interface, supporting simulation control, data access, and flowsheet manipulation.32MIT
- AlicenseCqualityDmaintenanceEnables AI agents to control Ansys Electronics Desktop (HFSS, Maxwell, Q3D, etc.) using MCP tools for simulation automation.10040PolyForm Noncommercial 1.0.0

Scout MCP Serverofficial
AlicenseAqualityDmaintenanceEnables AI agents to interact with Scout Live platform capabilities through standardized MCP primitives, including tools for app management, deployment, and logging.612MIT
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/Yookio-Z/AFSIM_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server