VoltLab MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VoltLab MCP ServerBuild a DOL starter, wire START and STOP, then run it and show me the trip."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚡ VoltLab — Motor Control Circuit Simulator
A minimal, cross-platform simulator for electromechanical motor-control circuits — DOL starters, interlocks, seal-in logic, on-delay sequencing, reversing starters, even a full 10-story relay elevator. Place contactors, thermal overloads, push buttons, lamps and 3-phase motors on a schematic, wire them terminal-by-terminal, and watch the live simulation: phase-colored wires, inrush current, overload trips, coast-down.
And the twist: the whole app is agent-controllable over MCP — an LLM agent can build, wire, break, fault, document and film circuits entirely through tool calls.

https://github.com/touhidsiddiqueeraj-bit/VoltLab/raw/main/docs/media/dol-starter-demo.mp4
The app scripting its own demo video: press START → seal-in holds → STOP → coast-down. (Click the link above to play — GitHub doesn't inline-play repo videos.)
Highlights
Live physics, not animation — a real per-tick solver: union-find netlists, phase propagation, 6× FLC inrush, class-10 thermal trip curves, single-phasing after phase loss, motor coast-down, fuse blowing on short circuit.
16 device types with IEC-style SVG symbols drawn in-phase-colors: supplies, breakers, fuses, contactors (main + NO/NC aux + coil), thermal overloads (95-96 / 97-98), on-delay timers, NO/NC push buttons, selectors, lamps, buzzer, floor cams, junctions.
MCP agent layer — 26 tools over stdio JSON-RPC or plain HTTP. Point Claude/ZCode/any MCP client at it and it runs the panel like a virtual training bench.
Self-documenting exports — the app produces an IEC 61082-1-style multi-sheet PDF drawing set (zone grids, title blocks, sheet index) and a scripted 720p demo video of any circuit, on demand, from the GUI or from an agent tool call.
Light + dark themes, minimal chrome, zoom (25–300 %, Ctrl+wheel, Fit), inspector, collapsible event log, and an 11-step interactive tutorial with action gates.
Zero runtime dependencies — the server, simulator and MCP bridge are pure Node stdlib. Electron is the only (dev) dependency.
Related MCP server: visio-mcp
Quick start
⚡ Live demo, zero install: the docs/ folder doubles as a
GitHub Pages site with the real simulator running in your
browser — enable Settings → Pages → Deploy from branch → main → /docs and open
https://<user>.github.io/VoltLab/. The demo page embeds the actual sim/engine.js
(client-side; no backend needed for the interactive tour).
git clone https://github.com/touhidsiddiqueeraj-bit/VoltLab.git
cd voltlab
npm install # once — installs Electron only
npm run serve # browser mode → http://127.0.0.1:8123 (auto-loads the DOL demo)
# or
npm start # Electron desktop window (same app, same API)The UI is deliberately minimal: one toolbar (run / step / advance + Faults and Circuit menus), a text palette on the left, an inspector on the right, and a collapsible event-log drawer with a live ticker. Click a palette entry, click the canvas to place; click two terminals to wire. The 🎓 button starts the interactive tutorial.
First scenario (60 seconds)
The DOL starter demo loads running — breaker Q1 on, H1 power lamp lit.
Click the S1 START button → contactor KM1 picks up, the motor spins up, H2 lights. Release — the seal-in aux contact 13-14 keeps it running.
Click S0 STOP → contactor drops, motor coasts down.
Faults ▸ Stall rotor, then START again → locked rotor draws ~60 A → after ~15 s KK1 trips, the contactor drops and H3 lights. Click the red RESET on the overload to recover.

Example circuits
Five worked examples ship in circuits/ — each validated headlessly in
test/examples.test.mjs. Ideas, wiring walk-throughs and
exercises per circuit live in docs/examples.md.
Circuit | What it demonstrates |
| Direct-On-Line start/stop, seal-in holding, class-10 overload trip, trip lamp |
| Forward/reverse contactors, phase-swap wiring, electrical interlock that makes simultaneous energizing impossible |
| On-delay timer starts a second conveyor motor 3 s after the first |
| Call latching for up/down contactors, travel limits, NC cross-interlock, hoist overload |
| Full 10-story relay elevator: 3-deck floor cam = car position, per-floor call relays K1–K10, auto-reset via complement decks, dispatch chain with dwell timer — 46 components, 169 wires |

The 10-story elevator — the dispatch bank: run contactor, thermal overload, up/down contactors and the 3-deck floor cam.

Documentation
Doc | Contents |
The real engine running on GitHub Pages — no install | |
How the engine, host, UI and MCP layer fit together; the solver model; design constraints | |
Complete 26-tool MCP reference + raw HTTP equivalents + worked agent session | |
The circuit JSON schema — components, wires, waypoints, demo scripts | |
Guided tour of every example circuit with scenarios to try | |
Dev setup, test layout, how to add devices and circuits |
Agent control (MCP)
Start the app (either mode), then register the stdio bridge with your MCP client:
{
"mcpServers": {
"voltlab": {
"command": "node",
"args": ["/path/to/voltlab/mcp/server.mjs"],
"env": { "VOLTLAB_URL": "http://127.0.0.1:8123" }
}
}
}The bridge is dependency-free, speaks newline-delimited JSON-RPC 2.0 over stdio, and
serves the tool catalog verbatim from sim/api.js — the single source of
truth shared with the HTTP API. The toolbar MCP button shows the live connection
status and this exact config, ready to copy:

A taste of the 26 tools (full reference in docs/mcp.md):
Group | Tools |
Build |
|
Operate |
|
Break |
|
Observe |
|
Library |
|
Document |
|
The same catalog is reachable without MCP — plain HTTP:
curl -X POST http://127.0.0.1:8123/api/command \
-H 'Content-Type: application/json' \
-d '{"tool": "press_button", "args": {"id": "S1"}}'
curl http://127.0.0.1:8123/api/state | jq # full snapshot (or stream /api/events via SSE)Self-documenting exports
Circuit ▸ Export PDF report produces a proper drawing set, not a shrunken screenshot:
Sheet 1 — index: title block, full-circuit overview with numbered tile map, sheet index (zone → sheet)
Sheets 2…n — schematic tiled 1:1 across A4-landscape sheets with overlap, IEC-style zone reference grids and per-sheet title blocks
Then symbol legend, component list and event log, in a light print theme

Circuit ▸ Record demo video makes the app perform its own circuit: per the circuit's
demo script it presses every button on the live simulation while recording 720p @ 25 fps
with per-step captions and a camera that eases toward whatever it's operating. Saved under
exports/ as webm, transcoded to mp4 when ffmpeg is available.
Both exports are also agent tools (export_pdf, export_video) — an agent can document
any circuit it builds.
Tutorial
The 🎓 button runs an 11-step interactive tutorial: palette + placement, wiring terminals, running the DOL starter (press START, watch seal-in, STOP), overload faults and reset, then tours of the Circuit/MCP menus. Steps marked 👆 stay locked until you actually perform the action.

Tests & packaging
npm test # engine + example-circuit tests + MCP end-to-end (31 tests)
node --test test/dol.test.mjs # just the DOL physics scenario (14 tests)
npm start -- --smoke # Electron headless self-test → prints SMOKE OK
npm start -- --screenshot=out.png # load demo, capture PNG, exit
npm run package # standalone linux-x64 build → dist/VoltLab-linux-x64Engine tests drive the real DOL scenario headlessly: pick-up, seal-in, trip timing, phase loss, fuse blowing — no browser involved.
test/mcp.e2e.mjsspawns the real HTTP host and the real MCP stdio server, then drives the full user scenario purely throughtools/call(24 checks).
Project layout
sim/devices.js device registry: terminals, params, defaults (shared by engine & renderer)
sim/engine.js the solver: per-tick DSU netlist, phase propagation, thermal model
sim/api.js tool catalog + dispatcher — single source of truth for HTTP and MCP
server.js dependency-free HTTP host: static app/, /api/*, SSE state stream
app/ the web UI (IEC SVG symbols, palette, wiring, inspector, log drawer)
electron/main.mjs Electron shell (+ --smoke / --screenshot / --headless / --check modes)
mcp/server.mjs MCP stdio server → proxies tools/call to the HTTP API
circuits/ circuit library (5 examples, JSON)
scripts/ generator for the 10-floor elevator circuit + demo-page sync
test/ engine tests + example-circuit tests + MCP end-to-end
docs/ GitHub Pages site: landing page + live demo + deep-dive docsEnvironment variables
Variable | Purpose |
| Server port (default 8123; Electron prints its port if 8123 was taken) |
| Start with an empty canvas instead of the DOL demo |
| MCP bridge → app URL (default |
| Comma-separated extra Chromium switches for the Electron shell |
Acknowledgments
VoltLab is an open, cross-platform reimagining of the ideas behind the classic Windows EKTS (Electrical Control Techniques Simulator). All code in this repository is original.
License
MIT © 2026 Touhid Siddiquee Raj
This server cannot be deployed
Maintenance
Related MCP Connectors
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
MCP facade over the Nebelus Construction API. ~48 tools give full agent build parity: create/update/probe agents, edit graphs, attach knowledge and vector stores, wire connectors, set governance policies and locked guardrails, enable grounding-trace, and read deployment wiring. Purpose-built for regulated industries: data residency is enforced per region (EU / GCC-KSA), with PII controls and an audit trail. Agents are created as drafts — no deploy tool is exposed over MCP by design; publishing happens in the Nebelus console.
Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to automatically generate Multisim circuits, run simulations, extract experimental data, and export circuit diagrams, CSV, waveforms, and lab reports.19MIT
- AlicenseBqualityBmaintenanceEnables LLM agents to create circuit schematics and diagrams in Microsoft Visio through MCP tools for managing documents, pages, stencils, shapes, wires, and exports, with measured pin geometry for accurate component connections.231MIT
- FlicenseDqualityBmaintenanceEnables AI agents to design electrical schematics through a high-level semantic API, handling components, pins, nets, validation/ERC, auto-layout, and SVG/KiCad rendering without requiring coordinate or file internals.22-
- FlicenseNot gradedqualityCmaintenanceEnables an LLM agent to create, validate, and simulate Schneider Electric ZelioSoft2 V5.4.3 relay-ladder-logic (.zm2) programs, either by writing the file format directly from a JSON spec or by driving the application's GUI — visibly or on an isolated Windows desktop so the user's own mouse and screen stay untouched.-