uSimmics MCP Bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| USIMMICS_HOME | No | Used by `configure` to discover common uSimmics installation locations. | |
| USIMMICS_BRIDGE_CONFIG | No | Override the default config path (default is %LOCALAPPDATA%/usimmics-bridge/config.json on Windows, and $XDG_CONFIG_HOME/usimmics-bridge/config.json or ~/.config/... elsewhere). Optionally set in the server environment. |
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 |
|---|---|
| environment_statusA | Check local installation, simulator, BAT54 library, configured project roots and capabilities. |
| list_projectsA | List existing uSimmics projects in the configured local roots, without creating projects. |
| inspect_schematicB | Inspect a .sch file, component parameters and SHA256 before a background edit or run. |
| update_parametersA | Atomically edit component parameters with backup and conflict detection. Each edit: {"component": "V1RF", "parameter": "frequency", "value": "12 MHz"}. Use parameter names/indices returned by inspect_schematic. Frequency changes also update matching harmonic-balance frequency keys. All edits validate before writing. Reload the file in uSimmics to see these disk changes. |
| run_schematicB | Compile a supported 5.9 schematic and run simulator.exe headlessly in an isolated run folder. Supports the documented R/C/L, Vac/Vdc, BAT54/Diode, Filter, GND and HB subset. Unknown components or ambiguous wiring fail explicitly. Returns unique output paths and solver status; does not overwrite the GUI's datasets or open a window. |
| read_resultsB | Read verified QucsData v2 real/complex simulation results, with a bounded number of points. |
| create_projectB | Create a new _prj directory in a configured project root. Fails if it already exists. |
| read_schematicA | Read complete saved .sch source plus SHA256, including malformed files for diagnosis. |
| save_schematicA | Save a complete supported 5.9 schematic atomically, including components, wires and plots. Supply full source from read_schematic with requested edits. Existing files require their current SHA256 and are backed up; omit the hash for new files. Syntax and connectivity validate before any write. Saves UTF-8/LF, never an unsaved GUI buffer. |
| clone_schematicB | Save a copy of a schematic as an independent variant. Existing destination needs its hash. |
| validate_schematicA | Check saved-file sections, plot closure, supported component connections and HB settings. Returns valid/errors/warnings and a compiled netlist. This is supported-format validation, not a claim that every native GUI feature can be rendered or checked. |
| publish_resultsA | Save this bridge's verified run dataset to the schematic's normal .dat path for GUI plots. Requires matching run provenance and current schematic hash. Backs up existing .dat. Refuses stale results and custom DataSet paths. Reload in the GUI to view changes there. |
| preview_schematicA | Return a PNG image of the saved circuit layout and optionally its discrete HB spectrum. Renders original component positions, labels, wires and supported symbols using the bridge renderer. The PNG is returned as native MCP image content and saved locally. It is NOT a screenshot of the native GUI and omits Paintings annotations with a warning. Colliding labels are nudged clear and named in adjusted_labels. The optional spectrum draws one panel per node voltage (peak-voltage dBm/50 Ohm, labelled display floor) and labels the strongest lines with mixing product, frequency and level; spectrum_markers returns dBm rounded to two decimals. Data whose provenance does not match the schematic is flagged in the image. |
| build_schematicA | Build and save a circuit from component/pin descriptions without writing .sch syntax. Components: {type,name,position:[x,y],orientation:0..3,params:{parameter:value}}. Diode additionally requires model='BAT54' (loaded locally) or explicit properties. Connections: {from:{component,pin},to:{component,pin},via:[[x,y]],label:optional}. Pins are zero-based; default R/filter/diode pin0 left, Vac pin0 top, GND pin0 center. All routes must be orthogonal. Different-net crossings/touches are rejected. Harmonics: {order:3,count:4}. Source frequencies are inserted automatically. |
| parameter_sweepB | Simulate 1..20 independent parameter variants, preserve source, return JSON/CSV comparison. Each run is limited to 1..30 seconds. Comparison frequency must exist as an actual sample. Results include per-point status and a durable partial summary. fail_fast stops after a failed point; resume_from retries unfinished points after checking source and data hashes. Cancellation terminates the current solver and preserves the checkpoint. |
| compare_resultsA | Compare a complex voltage at one actual frequency across 1..20 datasets (no interpolation). Includes magnitude and impedance-qualified dBm; AC samples are peak voltages, DC uses RMS. |
| start_jobA | Start a background run or sweep; poll job_status and use cancel_job to stop it. Requires a persistent MCP session. Job IDs are session-local (latest 64 retained), with at most four active jobs and one native solver at a time. Completed artifacts and sweep summaries survive server restarts. Closing the server cancels active jobs. |
| job_statusB | Read a session-local job's status, latest progress, result or error. |
| cancel_jobA | Request cancellation, then poll until cancelled; finished jobs are unchanged. The worker terminates the native process tree, saves partial sweep results and releases its solver slot before reporting cancelled. Repeated cancellation is safe. |
| list_schematic_templatesA | Describe templates available in the installed package, without configuration or disk writes. |
| get_schematic_templateC | Return a fresh builder specification and requirements for an installed template. |
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 21 tools
Most tools target clearly distinct operations: project setup, schematic CRUD, validation, simulation jobs, and result handling. A few boundaries require careful reading, especially run_schematic vs. start_job vs. parameter_sweep, and inspect_schematic vs. validate_schematic vs. read_schematic, but descriptions clarify them.
The set uses a mostly consistent snake_case convention, usually verb_noun (list_projects, read_schematic, save_schematic, cancel_job). Minor deviations are noun-first names like environment_status, job_status, and parameter_sweep, but the pattern remains readable.
At 21 tools, the surface is on the heavy side for a single MCP server, though the domain includes schematic editing, validation, rendering, simulation, job control, and templates. The count is defensible but borderline; some grouping could reduce cognitive load.
Coverage is strong: projects, templates, schematic build/read/save/clone/inspect/validate/preview/update, background jobs, sweeps, result comparison/publishing/reading, and environment checks are present. Minor gaps include no explicit delete/cleanup operation for projects or schematics and no dedicated artifact-listing tool.