AFSIM MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AFSIM_MCP_STATE_DIR | No | Path to the runtime state directory (default: <project_root>\mcp_state) | |
| AFSIM_MCP_CONFIG_DIR | No | Path to the configuration directory (default: C:\Users\<username>\.afsim_mcp) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_scenarioA | Create a new AFSIM scenario in memory. Parametersname: 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). ReturnsJSON with scenario_id, name, and metadata. |
| load_scenarioA | Load a scenario from disk. Parametersfile_path: Path to the scenario file. format: 'afsim' for .afsim files (default), 'json' for JSON files. ReturnsJSON with scenario_id and metadata. |
| save_scenarioA | Save a scenario to disk. Parametersscenario_id: UUID of the scenario to save. file_path: Destination path. Defaults to scenarios/.afsim (or .json). format: 'afsim' (default) or 'json'. ReturnsJSON with the saved file path. |
| validate_scenarioB | Validate a scenario and return errors/warnings. Parametersscenario_id: UUID of the scenario to validate. ReturnsJSON with 'valid', 'errors', and 'warnings' lists. |
| list_scenariosA | List all in-memory scenarios. ReturnsJSON array of scenario summaries. |
| list_scenario_filesA | List scenario files (.afsim and .json) in the scenarios directory. ReturnsJSON array of file paths. |
| delete_scenarioA | Remove a scenario from memory (does not delete files on disk). Parametersscenario_id: UUID of the scenario to remove. ReturnsJSON with 'removed' boolean. |
| get_scenario_contentA | Get the AFSIM text representation of a scenario. Parametersscenario_id: UUID of the scenario. ReturnsJSON with 'name' and 'content' (AFSIM scenario text). |
| create_platformA | Add a new platform (entity) to a scenario. Parametersscenario_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. ReturnsJSON with platform metadata. |
| delete_platformA | Remove a platform from a scenario. Parametersscenario_id: UUID of the target scenario. platform_name: Name of the platform to remove. ReturnsJSON with 'removed' boolean. |
| modify_platformA | Modify an existing platform's position or type. Parametersscenario_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). ReturnsJSON with updated platform metadata. |
| list_platformsA | List all platforms in a scenario. Parametersscenario_id: UUID of the target scenario. ReturnsJSON array of platform summaries. |
| add_moverA | Add a mover component to a platform. Parametersscenario_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. ReturnsJSON with component metadata. |
| add_sensorA | Add a sensor component to a platform. Parametersscenario_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. ReturnsJSON with component metadata. |
| add_weaponA | Add a weapon component to a platform. Parametersscenario_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. ReturnsJSON with component metadata. |
| remove_componentB | Remove a component from a platform. Parametersscenario_id: UUID of the target scenario. platform_name: Name of the target platform. component_name: Name of the component to remove. ReturnsJSON with 'removed' boolean. |
| list_componentsA | List all components on a platform. Parametersscenario_id: UUID of the target scenario. platform_name: Name of the target platform. ReturnsJSON array of component summaries. |
| 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. Parametersscenario_id: UUID of the scenario to simulate. dry_run: If True, skip actual AFSIM execution (useful for testing). ReturnsJSON with run_id, status, and other run metadata. |
| stop_simulationB | Stop a running simulation. Parametersrun_id: UUID of the simulation run to stop. ReturnsJSON with updated run status. |
| get_simulation_statusA | Query the current status of a simulation run. Parametersrun_id: UUID of the simulation run. ReturnsJSON with status, times, PID, output directory, etc. |
| list_simulation_runsB | List all known simulation runs and their statuses. ReturnsJSON array of run summaries. |
| set_afsim_binaryA | Configure the path to the AFSIM simulation binary. Parametersbinary_path: Absolute path to the AFSIM executable. ReturnsJSON confirmation. |
| list_result_filesB | List simulation result files. Parametersrun_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'). ReturnsJSON array of result file metadata. |
| query_csv_resultsA | Read and query a CSV result file. Parametersfile_path: Path to the CSV file. columns: Comma-separated column names to include (all if empty). max_rows: Maximum rows to return (default 1000). ReturnsJSON with columns, row_count, and rows. |
| query_evt_resultsA | Read an AFSIM .evt event file. Parametersfile_path: Path to the .evt file. max_lines: Maximum lines to return (default 500). ReturnsJSON with line_count and lines array. |
| query_aer_resultsA | Read an AFSIM .aer archive/result file. Parametersfile_path: Path to the .aer file. max_lines: Maximum lines to return (default 500). ReturnsJSON with line_count and lines array. |
| export_results_to_jsonA | Convert a result file (.csv, .evt, .aer) to JSON format. Parametersfile_path: Path to the source result file. output_path: Destination JSON path (defaults to same name with .json extension). ReturnsJSON with the output file path. |
| get_results_summaryA | Summarise simulation results in a directory. Parametersdirectory: Directory to summarise (defaults to simulation output dir). ReturnsJSON with total_files, by_format counts, and total_size_bytes. |
| set_afsim_homeA | Set the AFSIM installation root directory. Parameterspath: Path to AFSIM_HOME (the directory containing bin/, data/, etc.). ReturnsJSON confirmation with detected binaries. |
| detect_afsim_installationA | Auto-detect AFSIM installation from environment and file system. ReturnsJSON with afsim_home, binary paths, and all_found flag. |
| set_tool_binary_pathA | Override the binary path for a specific AFSIM tool. Parameterstool: Tool identifier: 'wizard', 'mission', 'warlock', or 'mystic'. path: Absolute path to the tool binary. ReturnsJSON confirmation. |
| run_wizardA | Launch the AFSIM Wizard (GUI scenario builder). Parametersscenario_file: Optional path to open in Wizard. ReturnsJSON with success flag and PID (if launched). |
| run_missionA | Launch the AFSIM Mission Planner. Parametersscenario_file: Optional path to open in Mission Planner. ReturnsJSON with success flag and PID. |
| run_warlockB | Run the AFSIM Warlock batch simulation engine. Parametersscenario_file: Path to the AFSIM scenario file. output_dir: Directory for output files (default current dir). ReturnsJSON with success flag, returncode, stdout/stderr snippets. |
| run_mysticB | Launch the AFSIM Mystic post-processor. Parametersresults_dir: Directory containing simulation results to analyse. ReturnsJSON with success flag and PID. |
| 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" Parametersprompt: Natural language description of the desired scenario. ReturnsJSON with scenario_id, name, platform list, warnings, and AFSIM preview. |
| refine_scenario_from_promptA | Apply a natural language refinement to an existing scenario. Supports:
Parametersscenario_id: UUID of the scenario to refine. refinement_prompt: Natural language description of the changes to make. ReturnsJSON with changes applied and updated platform count. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 37 tools
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.