circuitjs-mcp
circuitjs-mcp
Es un servidor MCP que permite a agentes de IA operar el simulador de circuitos CircuitJS1 de Falsad. Al ser un servidor MCP estándar de stdio, funciona con cualquer cliete compatible con MCP, como Claude Code, Codex CLI, Claude Desktop, Cursor, etc.
CircuitJS1 es el nombre de la versión HTML5/JavaScript del simulador de circuitos de Paul Falsad —que en su versión de applet de Java se conoció como «Circuit Simulator Applet» y que ahora se ejecuta en el navegador en falsad.com/circuit—. Fue portado a JavScript por Iain Sharp con GWT cuando los navegadores retiraron el soporte para los applets de Java; tanto el motor de simulación como el formato de texto de circuitos son comunes con la versión de applet (los archivos de circuito de la era del applet se pueden leer tal cual). La interfaz JavaScript que utiliza este servidor es una funcionalidad añadida a partir de CircuitJS1 y no está en la versión de applet.
Inicia la aplicación web CircuitJS1 compilada (incluida en webapp/, funciona sin conexión) en un Chromium sin interfaz gráfica (Playwright) y expone su interfaz JavaScript como herramientas MCP. El estado del simulador se conserva entre llamadas a las herramientas (se puede hacer de forma interactiva: cargar el circuito → ejecutarlo → medir → modificar el circuito).
Configuración
Requisito: Node.js 18 o superior.
cd circuitjs-mcp
npm install # postinstall で Playwright の Chromium も入ります
npm test # スモークテスト(RC回路の過渡応答が理論値と一致するか等を検証)Si playwright install chromium es difícil en tu entorno, puedes usar un Chrome/Chromium existente:
export CIRCUITJS_CHROMIUM="/usr/bin/google-chrome" # 例Related MCP server: circuit-sim-mcp
Registro en clientes MCP
El comando de inicio es común a todos los clientes: node /絶対パス/circuitjs-mcp/server.mjs
Si se añade la variable de entorno CIRCUITJS_HEADFUL=1, se mostrará la ventana del navegador y un humano también podrá operar directamente el mismo simulador que el agente (modo de colaboración). Todos los ejemplos siguientes incluyen esta variable; elimínala si no la necesitas.
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.mjsClientes basados en archivos de configuración (por ejemplo, el claude_desktop_config.json de Claude Desktop o el mcp.json de Cursor):
{
"mcpServers": {
"circuitjs": {
"command": "node",
"args": ["/絶対パス/circuitjs-mcp/server.mjs"],
"env": { "CIRCUITJS_HEADFUL": "1" }
}
}
}La herramienta screenshot devuelve un PNG como contenido de imagen MCP. En clientes que no admiten mostrar imágenes, usa el argumento save_path para guardarla en un archivo.
Lista de herramientas
Herramienta | Función |
| Carga un circuito en formato de texto de Falstad (con validación). Devuelve la lista de elementos. |
| Obtiene el tiempo, la diferencia de tensión / corriente / tensión en terminales de todos los elementos y las tensiones de los nodos etiquetados. |
| Ejecuta durante el tiempo de simulación especificado y devuelve muestras de series temporales de las sondas (tensión de nodo, corriente/tensión/potencia de elementos). |
| run / stop / reset / status, configuración del paso de tiempo máximo y ajuste del valor de fuentes de tensión externas. |
| Exporta el circuito como texto de Falstad o SVG. |
| Genera una URL (enlace |
| Captura de pantalla PNG del esquema actual (se devuelve como imagen; también se puede guardar en un archivo). |
| Vía de escape para operaciones no cubiertas por las anteriores. Ejecuta JS arbitrario sobre el objeto |
Ejemplos de uso (ideas de instrucciones para el agente)
«Arma un filtro RC de paso bajo de 1 kΩ y 1 µF y obtén la forma de onda de salida durante 5 ms al aplicar una onda cuadrada de 1 kHz».
«Carga este circuito (texto pegado) y enumera la potencia consumida por cada resistencia».
«Muéstrame una captura de pantalla del circuito».
Coloca un nodo etiquetado (tipo de elemento 207, p. ej.: 207 336 128 400 128 4 out) en el punto que quieras medir y podrás leer la tensión con una sonda {"node":"out"} o con nodes de circuit_state. La coriente y la tensión por elemento se especifican medinte el index que devuelven circuit_load / circuit_state.
Operación directa desde scripts
Si quieres invocar las herramientas desde un script sin pasar por un cliente MCP, puedes usar drive.mjs. Inicia el servidor como proceso hijo, ejecuta en orden los archivos JSON (cmd-1.json, cmd-2.json, ...) colocados en el directorio de comandos y escribe los resultados en res-N.json:
node drive.mjs /tmp/cjs-commands
# 別プロセスから: echo '{"tool":"circuit_state","args":{}}' > /tmp/cjs-commands/cmd-1.jsonLos archivos deben escribirse con un nombre temporal y luego colocarse con rename (para evitar que se lean mientras se escriben).
Variables de entorno
Variable | Significado |
| Ruta del ejecutable de Chrome/Chromium que se usará (por defecto: el Chromium administrado por Playwright; si falla, se recurre al Chrome del sistema). |
| URL de CircuitJS1 que se cargará en lugar del webapp incluido (ej.: |
| Con |
Limitaciones
La velociad de simulación de
run_transientdepende del ajueste de velociad de simulación de la línea$del circuito y de la CPU. Si tarda demasiado en tiempo real, se interrumpe conwallTimeoutMsy se devuelven datos parciales (se puede distinguir medinte el camporeason).La «edición» del circuito se basa en reescribir el texto de Falsad y volver a hacer
circuit_load(la importación restablece el tiempo).Solo análisis transitorio (CircuitJS1 no incluye análisis de pequeña señal de CA, etc.). La respuesta en frecuancia se obtiene variando la frecuancia y repitiendo
run_transient.
Licencia
Todo este repositorio se oferce bajo GPL-2.0-or-later (COPING.txt).
CircuitJS1 es un softare GPLv2+ de Paul Falsad / Iain Sharp.
webapp/es su compilación ya hecha (sin modificaiones); el cédigo fuete correspndiente está disponible en pfalsad/circuitjs1 (origial) y en la ramapagesde code4fukui/circuitjs1 (de donde se obtuvo esta compilación).Código del servidor (
server.mjs,drive.mjs,test-cliete.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