FD Solutions MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FDSOLUTIONS_HOME | No | FD Solutions install root (uses `<home>/api/python`). Highest priority; if unset or invalid, config.json is used instead. | |
| FDSOLUTIONS_PYTHON_API | No | Directory that contains simworks.py (usually `<FD Solutions install root>/api/python`). Highest priority; if unset or invalid, config.json is used instead. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| addA | Add a simulation object (SimWorks add* only; configure with set_property). After success, the reply includes |
| object_actionC | Manipulate selection and objects in the project tree (SI meters for vertices). Select cheat-sheet (SimWorks
|
| switch_viewC | Switch the CAD camera or view plane. |
| switch_layoutA | Switch between run and design layout modes. Workflow: run simulation → (extract results) → switch_layout('design') before further edits → switch_layout('run') only when you need the run/results UI again. Never assume set_property works while still in run layout after a solve. |
| run_actionA | Run solvers, sweeps, or analysis scripts. Confirm with the user before action=run / run_sweep / eme_sweep. If the call blocks until done and the MCP request times out, the solver may still be running in SimWorks — do not issue a second start to "retry" a timeout. |
| project_actionC | Open, save, or create a simulation project. Prefer absolute paths. |
| set_propertyA | Set one property on the currently selected object(s). Prefer calling directly when you know the exact SimWorks property name.
Numbers are SI only. On failure, get_info(kind="property"), then retry only
the failed property — do not invent names from similar software. If you set After a simulation finishes, many properties can only be set in design
layout. If set fails with a design-layout / inactive message, call
|
| group_membershipB | Add the selected object to a group, or remove it from its current group. |
| add_group_variableB | Configure a setup, parameter, or result variable on the selected group. |
| set_source_signalA | Assign a user-defined time-domain signal to an existing source ( Used in FDTD / FDFD for custom pulses (modulated Gaussian, multi-peak, etc.).
This is not
|
| set_eme_analysisA | Set one parameter on the EME Analysis Window ( Use this before This is not |
| get_infoA | Discover properties and metadata. Prefer this before inventing property names for set. kind=eme_analysis calls getemeanalysis(name) for the EME Analysis Window (not object get). Pair with set_eme_analysis; sweep results use get_results(kind="eme_sweep"). |
| get_resultsA | Extract simulation results. For kind=data, call with no dataset/data first (LIST MODE) to discover available names, then call again with object_name + dataset_name [+ data_name]. kind=eme_sweep: getemesweep(dataset_name) after run_action(eme_sweep). Configure the analysis window with set_eme_analysis / get_info(eme_analysis). |
| material_actionB | List, add, set, or query materials. Do not invent material names — list first if unsure. |
| jobs_actionC | Manage the simulation job queue. |
| workspace_actionC | Clear workspace variables or the script console. |
| load_dataA | Load a script file, data files, or import NK / raw arrays into the workspace.
|
| save_dataA | Save workspace variables to a file. Use project_action(save) to save the .sim project. |
| file_ioC | Low-level file open/close/write helpers. |
| dataset_queryC | Query parameters or attributes on a dataset object (not fd_instance). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| system_instructions | System instructions for the SimWorks FD Solutions MCP simulation assistant. Operational rules only: MCP tools only, SI units, confirm before run, name tracking / select paths. No separate guideline-fetch tool required. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
The set covers distinct domains, but several tools are generic action multiplexers (object_action, run_action, project_action, material_action, jobs_action, workspace_action), so their exact boundaries depend on action parameters rather than names. get_info, dataset_query, and get_results also overlap in discovery/query roles, though descriptions help clarify.
Names are all snake_case, but conventions are mixed: bare add, noun_action multiplexers, verb_noun getters/setters, and noun-only tools like group_membership and file_io. It remains readable, but the pattern is not predictable across the surface.
Twenty tools is at the upper end but reasonable for a broad simulation platform spanning projects, objects, properties, solvers, results, materials, jobs, and files. Most tools map to distinct workflow areas, though the generic action tools inflate the surface somewhat.
The surface covers the main simulation lifecycle: project management, object creation/manipulation, property configuration, solver runs, results extraction, materials, jobs, workspace, and file/data handling. Minor gaps remain around explicit deletion/close operations and some actions hidden behind generic multiplexers.