circuitsnap
circuitsnap
찍고, 시뮬레이션하세요. 회로 그림 — 사진, 스케치, 아니면 그냥 설명 — 을 Falstad's CircuitJS1에서 실행되는 실시간 시뮬레이션으로 바꿔 줍니다.
MCP 서버(그래서 Claude와 같은 어시스턴트가 회로를 구축할 수 있음), CLI, 그리고 라이브러리로 제공됩니다.
$ circuitsnap build rc.json
https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgo...
$ 1 0.000005 10.20027730826997 50 5 50
v 128 64 192 64 0 0 40 5 0 0 0.5
r 384 64 448 64 0 10000
c 128 176 192 176 0 0.000001 0 0
...URL을 열면 회로가 실행됩니다.
왜
언어 모델에게 CircuitJS1의 파일 형식을 직접 작성하라고 요청하는 것은 작동하지 않습니다. 형식은 위치 기반이며 관대하지 않습니다 — v 128 64 192 64 0 0 40 5 0 0 0.5에는 여섯 개의 후행 매개변수가 있으며, 그 순서, 단위 및 플래그 비트는 시뮬레이터의 Java 소스를 읽어야만 알아낼 수 있습니다. 잘못된 추측은 반갑게 로드되면서 잘못 시뮬레이션되는 회로를 만들어 냅니다. 이는 최악의 실패입니다. 사용자는 그 차이를 알 수 없기 때문입니다.
circuitsnap은 그 작업을 테스트된 코드로 옮깁니다. 모델은 무엇이 무엇에 연결되는지를 설명하고, 이 라이브러리는 형식, 기하 구조, 이스케이프 및 인코딩을 처리합니다.
Related MCP server: KiCAD Schematic Manipulation MCP Server
설치
npm install -g circuitsnapMCP 서버로
{
"mcpServers": {
"circuitsnap": { "command": "npx", "args": ["-y", "circuitsnap-mcp"] }
}
}(circuitsnap는 CLI이고, circuitsnap-mcp는 stdio 서버입니다. 단일 바이너리를 선호한다면 circuitsnap mcp도 서버를 실행합니다.)
Claude Code를 사용한다면 skills/circuitsnap/을(를) .claude/skills/에 복사하여 /circuitsnap 워크플로를 얻으세요. 이 워크플로는 그림 읽기와 결과 검증을 다룹니다.
사용법
회로를 넷리스트로 설명하세요 — 구성 요소와 넷 이름, 좌표 없이:
{
"title": "RC lowpass",
"components": [
{ "id": "V1", "kind": "voltage", "nodes": ["gnd", "in"], "value": 5 },
{ "id": "R1", "kind": "resistor", "nodes": ["in", "out"], "value": "10k" },
{ "id": "C1", "kind": "capacitor", "nodes": ["out", "gnd"], "value": "1uF" }
]
}동일한 넷 이름을 공유하는 단자는 연결됩니다. 이것이 전체 모델입니다.
circuitsnap build rc.json # URL + circuit text
circuitsnap build rc.json --url # just the URL
circuitsnap elements # pin order and parameters for every kind
circuitsnap decode "<share-url>" # read someone else's circuit라이브러리로:
import { snap } from 'circuitsnap';
const { url, text, diagnostics } = snap({
components: [
{ id: 'V1', kind: 'voltage', nodes: ['gnd', 'in'], value: 5 },
{ id: 'R1', kind: 'resistor', nodes: ['in', 'gnd'], value: '1k' },
],
});
console.log(url.url);값
회로도에 사람이 쓰는 방식으로 작성된 공학 표기법:
입력 | 값 |
| 10 000 |
| 2.2e-6 |
| 4700 |
| 1e6 (메가, 밀리가 아님) |
| 1.2 |
M은 메가이고 m은 밀리입니다 — 회로도 규약입니다. SPICE에서 M이 밀리를 의미한다면, 손으로 라벨을 쓴 "10M 저항"이 10밀리옴이 되어 버릴 것입니다.
요소
wire, resistor, capacitor, inductor, voltage, rail, ground, switch, diode, led, current, labeledNode, transistor, opamp, output, probe, text.
circuitsnap elements를 실행하면 핀 순서, 매개변수, 단위 및 기본값을 알 수 있습니다. 핀 순서가 중요합니다: 트랜지스터는 [base, collector, emitter], 연산 증폭기는 [minus, plus, out]입니다.
접지
gnd(또는 ground, 0, vss)라는 넷 이름을 사용하세요. 그 단자들은 라벨이 아닌 실제 접지 기호를 얻습니다 — "gnd"라는 이름의 라벨링된 노드는 0 V 기준을 갖지 않으며 솔버를 기준점 없이 남겨 둡니다. circuitsnap은 회로에 접지가 전혀 없으면 경고합니다.
작동 방식
파이프라인은 넷리스트 -> 검증 -> 배치 -> 생성 -> URL이며, 모델이 필요한 단계는 그림 읽기뿐입니다. 알아 둘 만한 두 가지 결정 사항이 있습니다:
넷은 라우팅된 전선이 아니라 이름이 있는 라벨로 연결됩니다. 95% 정확한 자동 라우터는 보기에는 맞지만 시뮬레이션은 틀린 회로를 만들어 냅니다. 핀 옆에 있는 라벨은 검증할 수 있습니다. 출력은 계층적 회로도처럼 읽힙니다.
레거시 텍스트 형식을 생성하며 XML이 아닙니다. 현재 업스트림은 XML을 작성하지만 여전히 텍스트를 읽기 때문에, 텍스트는 구형 및 신형 빌드에서 모두 로드되는 유일한 인코딩입니다.
이유는 docs/ARCHITECTURE.md에서, 파일 형식 참조는 docs/FORMAT.md에서 확인하세요. 이 문서는 업스트림 소스에서 줄 인용과 함께 파생되었습니다.
정확성
형식은 리버스 엔지니어링되었으므로 정확성이 결정적입니다:
372개의 업스트림 회로는 파서를 거쳐도 바이트 단위로 동일하게 유지됩니다.
생성된 출력은 단자 일치, 이스케이프, 그리고 업스트림이 강제로 설정하는 플래그 비트를 기준으로 검사됩니다.
실시간 검증: 생성된 회로는 실제 시뮬레이터에 로드되고 노드 전압을 다시 읽습니다. 이것이 다중 핀 기하 구조가 검증된 방식입니다 — 연산 증폭기 팔로워는 실제로 추종해야 하고, 트랜지스터는 Ic/Ib = β인 순방향 활성을 보고해야 합니다.
npm run reference:fetch # clone upstream (not vendored; see docs/LICENSING.md)
npm test테스트 스위트는 네트워크 요청을 하지 않습니다.
라이선스
circuitsnap은 MIT입니다. CircuitJS1은 Paul Falstad와 Iain Sharp가 만든 GPL-2.0-or-later이며, 여기에 번들되거나 수정되지 않았습니다 — circuitsnap은 그 형식의 파일을 생성하고 그 URL을 엽니다. 전체 근거는 docs/LICENSING.md를 참조하세요. 여기에는 이 프로젝트가 falstad.com의 AI 크롤러 신호를 처리하는 방법도 포함됩니다(요약: 크롤링 없음, 스크래핑 없음, 테스트는 완전히 오프라인이며, --base-url을 사용하면 자체 호스팅 복사본을 가리킬 수 있습니다).
CircuitJS1 저자와 제휴하지 않았으며 그들의 보증을 받지 않습니다.
This server cannot be installed
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 Servers
- FlicenseCqualityCmaintenanceThis server enables LLMs to design, simulate, and debug electronic circuits using LTspice via natural language commands. It automates netlist generation, library component validation, and iterative error correction for SPICE simulations.21
- AlicenseNot gradedqualityDmaintenanceEnables AI tools to create, edit, and inspect KiCAD schematic files, including components, wires, labels, and sheets.MIT
- 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.
Related MCP Connectors
Build, version, review, and export websites, web apps, and games from a conversation.
Create and manage short links, track clicks, and automate URL management
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
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/gambhirsharma/circuitsnap'
If you have feedback or need assistance with the MCP directory API, please join our Discord server