circuitjs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| circuit_loadA | Replace the current circuit with the given circuit definition in Falstad CircuitJS1 text format (the same format produced by File > Export as Text, starting with a "$" line). Resets simulation time to 0. Returns the list of parsed elements so you can verify the circuit and note element indices for probing. The simulator keeps state between tool calls. |
| circuit_exportB | Export the current circuit as Falstad text format, or as an SVG drawing of the schematic. |
| circuit_stateA | Read the current simulation state: time, running flag, timestep, and every element with its voltage difference, current, post voltages and info string. Use the element |
| sim_controlB | Start/stop/reset the simulation, set the max timestep, or set the voltage of an external voltage source (an "Extern voltage" element, type ExtVoltageElm, addressed by its name). "reset" reloads the current circuit, zeroing time and all state. |
| run_transientA | Run the simulation for a given amount of SIMULATED time while sampling probes, then stop. Returns time-series data {t, }. Probes: {"node":"name"} reads a labeled node voltage; {"element":i,"quantity":"current"|"voltageDiff"|"power"} reads element i (indices from circuit_state/circuit_load). Simulation speed is bounded by the circuit's sim-speed setting and CPU, so wall-clock time may differ from simulated time; the call aborts with partial data if wallTimeoutMs elapses first. |
| screenshotA | Take a PNG screenshot of the circuit as currently drawn (including scope traces if the circuit defines scopes). Returns the image; optionally also saves it to save_path. |
| circuit_linkA | Return a URL that opens the circuit in the Falstad simulator in any normal browser (falstad.com, no install needed). Uses the current circuit unless |
| eval_jsA | Advanced escape hatch: run arbitrary JavaScript inside the CircuitJS1 page. The code is the body of an async function receiving |
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 8 tools
Each tool has a clear, distinct role: loading/exporting circuits, reading state, controlling simulation, running transient probes, taking screenshots, generating links, and escaping to JS. circuit_state and run_transient are separated clearly as snapshot vs. time-series sampling.
Four tools use the circuit_ prefix, while sim_control, run_transient, screenshot, and eval_js follow different patterns. The names are still readable, but the convention is not uniformly applied across the server.
Eight tools is a well-scoped count for a circuit simulator server. Each tool maps to a meaningful user need without redundancy or bloat.
The set covers the full simulation workflow: load, export, inspect, control, run transient analysis, capture output, and share. eval_js provides an escape hatch for anything not explicitly exposed, leaving no obvious dead ends.