Bridge Digital Twins with AI Assistants - Control FlexSim simulations via Model Context Protocol (MCP)
FlexSim MCP server has 15 tools with basic naming and descriptions, but significant quality gaps. Tool names follow verb_noun convention (flexsim_open_model, flexsim_run_to_time), which is good. However, descriptions are terse (10-50 chars), parameter descriptions are sparse or missing, and output schemas are not documented. No error handling guidance, no parameter validation rules, and no indication of which operations are idempotent or reversible. The server exposes domain-specific simulation control but lacks the LLM-optimization patterns needed for reliable agent use.
Check model for script errors.
Execute FlexScript code in the model.
Export simulation results to file.
Read value from model tree.
Get performance metrics from simulation.
Get current simulation time.
Create a blank model.
Output schemas not documented. Tools like flexsim_get_statistics, flexsim_get_time, flexsim_compile return values but no schema is visible. LLMs cannot plan downstream calls or extract structured data without knowing return types.
Descriptions are too terse (10-50 chars). Baseline is 194 chars. Examples: 'Reset simulation to initial state (time = 0)' (43 chars), 'Start running the simulation continuously' (41 chars). Too short to guide LLM selection or explain when to use vs similar tools.
Parameter descriptions missing or incomplete. flexsim_step has 'steps' param with description 'Number of events to advance' but no range constraints (min/max). flexsim_evaluate accepts arbitrary 'script' with no validation rules or error guidance. flexsim_set_node_value 'value' param has no type hint or format guidance.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | <=2025-11-25 | v2 |
Open a FlexSim model file.
Reset simulation to initial state (time = 0).
Start running the simulation continuously.
Run simulation until reaching target time.
Save current model.
Write value to model tree.
Advance simulation by N events.
Stop the running simulation.
No error handling guidance. Tools like flexsim_open_model (file not found), flexsim_evaluate (script error), flexsim_run_to_time (invalid time) have no documented error cases or recovery paths. LLMs cannot self-correct without actionable error messages.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk column shows READ_ONLY, WRITE, REVERSIBLE but these are not exposed in tool metadata. LLMs cannot reason about side effects or retry safety without explicit annotations.