circuitjs-mcp
circuitjs-mcp
MCP-сервер, позволяющий управлять симулятором схем CircuitJS1 Фальстада из AI-агентов. Это стандартный MCP-сервер на stdio, поэтому он работает с любым MCP-совместимым клиентом: Claude Code, Codex CLI, Claude Desktop, Cursor и другими.
CircuitJS1 — это название HTML5/JavaScript-версии симулятора схем Пола Фальстада, который раньше был известен как Java-апплет «Circuit Simulator Applet», а сейчас работает в браузере на falstad.com/circuit. После прекращения поддержки Java-апплетов в браузерах Айан Шарп портировал его на JavaScript с помощью GWT; движок симуляции и текстовый формат схем общие с версией-апплетом (файлы схем времён апплета читаются как есть). JavaScript-интерфейс, который использует этот сервер, появился уже в CircuitJS1 — в версии-апплете его нет.
Сервер запускает скомпилированное веб-приложение CircuitJS1 (включено в webapp/, работает офлайн) в headless-режиме Chromium (Playwright) и предоставляет его JavaScript-интерфейс в виде MCP-инструментов. Состояние симулятора сохраняется между вызовами инструментов (можно интерактивно: загрузить схему → запустить → измерить → переписать схему).
Установка
Требования: Node.js 18 или новее.
cd circuitjs-mcp
npm install # postinstall で Playwright の Chromium も入ります
npm test # スモークテスト(RC回路の過渡応答が理論値と一致するか等を検証)Если playwright install chromium по каким-то причинам невозможен, можно использовать уже установленный Chrome/Chromium:
export CIRCUITJS_CHROMIUM="/usr/bin/google-chrome" # 例Related MCP server: circuit-sim-mcp
Регистрация в MCP-клиенте
Команда запуска одинакова для всех клиентов: node /абсолютный/путь/circuitjs-mcp/server.mjs
С переменной окружения CIRCUITJS_HEADFUL=1 окно браузера будет видимым, и человек сможет напрямую управлять тем же симулятором, что и агент (режим совместной работы). Во всех примерах ниже эта переменная указана; если она не нужна, уберите её.
Claude Code:
claude mcp add circuitjs -e CIRCUITJS_HEADFUL=1 -- node /絶対パス/circuitjs-mcp/server.mjsCodex CLI:
codex mcp add circuitjs --env CIRCUITJS_HEADFUL=1 -- node /絶対パス/circuitjs-mcp/server.mjsКлиенты с файлом конфигурации (claude_desktop_config.json для Claude Desktop, mcp.json для Cursor и т. п.):
{
"mcpServers": {
"circuitjs": {
"command": "node",
"args": ["/絶対パス/circuitjs-mcp/server.mjs"],
"env": { "CIRCUITJS_HEADFUL": "1" }
}
}
}Инструмент screenshot возвращает PNG как изображение MCP-контента. В клиентах, не поддерживающих отображение изображений, используйте аргумент save_path для сохранения в файл.
Список инструментов
Инструмент | Функция |
| Загружает схему в текстовом формате Falstad (с проверкой). Возвращает список элементов. |
| Получает время, разность напряжений/токи/напряжения на выводах всех элементов, напряжения на узлах с метками. |
| Запускает симуляцию на заданное время и возвращает временные ряды проб (напряжения узлов, токи/напряжения/мощности элементов). |
| run / stop / reset / status, настройка максимального шага по времени, задание значений внешних источников напряжения. |
| Экспортирует схему в текстовом формате Falstad или в SVG. |
| Генерирует URL ( |
| PNG-скриншот текущей схемы (возвращается как изображение, можно также сохранить в файл). |
| Запасной выход для операций, которых нет выше. Выполняет произвольный JS на объекте |
Примеры использования (образцы инструкций агенту)
«Собери RC-фильтр нижних частот на 1 кОм и 1 мкФ, подай меандр 1 кГц и сними форму выходного сигнала за 5 мс».
«Загрузи эту схему (вставка текста) и выведи список потребляемой мощности каждого резистора».
«Покажи скриншот схемы».
В местах, где нужно проводить измерения, размещайте узлы с метками (тип элемента 207, пример: 207 336 128 400 128 4 out) — тогда напряжение можно читать пробой {"node":"out"} или через nodes в circuit_state. Токи и напряжения отдельных элементов задаются через index, который возвращают circuit_load / circuit_state.
Прямое управление из скриптов
Если нужно вызывать инструменты из скрипта, минуя MCP-клиент, используйте drive.mjs. Он запускает сервер как дочерний процесс, последовательно выполняет JSON-файлы из каталога команд (cmd-1.json, cmd-2.json, ...) и записывает результаты в res-N.json:
node drive.mjs /tmp/cjs-commands
# 別プロセスから: echo '{"tool":"circuit_state","args":{}}' > /tmp/cjs-commands/cmd-1.jsonФайлы следует сначала записывать под временным именем, а затем переименовывать (чтобы избежать чтения наполовину записанного файла).
Переменные окружения
Переменная | Значение |
| Путь к исполняемому файлу Chrome/Chromium (по умолчанию: Chromium под управлением Playwright; при неудаче — системный Chrome). |
| URL CircuitJS1 для загрузки вместо встроенного webapp (например: |
|
|
Ограничения
Скорость симуляции в
run_transientзависит от настройки скорости симуляции в строке$схемы и от CPU. Если реальное время слишком велико, выполнение прерывается поwallTimeoutMsи возвращаются частичные данные (это можно определить по полюreason).«Редактирование» схемы в основном сводится к переписыванию текста Falstad и повторной загрузке через
circuit_load(при импорте время сбрасывается).Только переходные процессы (в самом CircuitJS1 нет, например, AC-анализа по малому сигналу). Частотную характеристику можно получить, перебирая частоты и повторяя
run_transient.
Лицензия
Весь репозиторий распространяется под лицензией GPL-2.0-or-later (COPYING.txt).
CircuitJS1 — это ПО Пола Фальстада / Айана Шарпа под лицензией GPLv2+.
webapp/— его скомпилированная сборка (без изменений); соответствующий исходный код доступен в pfalstad/circuitjs1 (оригинал) и в веткеpagesрепозитория code4fukui/circuitjs1 (источник этой сборки).Код сервера (
server.mjs,drive.mjs,test-client.mjs) © 2026 Suzu (涼鈴), GPL-2.0-or-later.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Create and manage Mermaid.js flowcharts and diagrams with AI agents via MCP.
MCP tools for AI agents: render URLs to image/PDF, check link health, convert HTML/CSV/JSON.
Build, validate, and manage API simulations in WireMock Cloud from MCP-compatible AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGenerates, simulates, and inspects LTspice circuits via MCP tools and resources, providing structured JSON interfaces for AI agents.MIT
- FlicenseNot gradedqualityFmaintenanceProvides circuit simulation capabilities via MCP, enabling creation, simulation (DC, AC, transient), and analysis of electronic circuits using PySpice.
- AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible agents to generate Qucs circuit schematics, run simulations, and parse results programmatically.MIT
- AlicenseAqualityBmaintenanceMCP server for Micro-Cap 12 SPICE simulator enabling LLM agents to run analog circuit simulations, including analyses, sweeps, and retrieval of curve data and plots.201MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Suzu-Gears/circuitjs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server