Claude Code + MCP로 SPICE 시뮬레이터와 오실로스코프를 연결해 하드웨어 설계 자동화하기
Show HN: SPICE simulation → oscilloscope → verification with Claude Code
TL;DR Highlight
Claude Code가 MCP 서버로 SPICE 시뮬레이터와 오실로스코프를 연결하여 AI가 시뮬레이션 결과와 실측 파형을 동시에 분석·검증하는 자동 피드백 루프를 구축한다.
Who Should Read
하드웨어 설계나 임베디드 개발에 LLM을 활용하고 싶은 펌웨어/하드웨어 엔지니어, 또는 MCP 서버를 실제 물리 장비와 연동하는 사례가 궁금한 개발자.
Core Mechanics
- 단순히 '자연어로 회로 설계를 설명하고 Claude에게 회로를 만들게 하는' 방식은 간단한 회로에는 통하지만 복잡한 설계에서는 금방 한계에 부딪혔다. AI가 원하는 것을 정확히 이해하지 못하는 경우가 많았기 때문이다.
- 대신 Claude Code에 즉각적인 피드백 수단(오실로스코프, SPICE 시뮬레이터)을 도구로 연결해주는 방식을 택했더니 훨씬 효과적이었다. Claude는 피드백이 바로 오는 환경에서 진가를 발휘한다.
- 이 워크플로우에서 가장 큰 이득을 본 부분은 데이터 분석이었다. 시간 축 정규화, 데이터 정렬처럼 기존에 눈대중으로 처리하던 지루한 작업들을 Claude가 자동으로 처리해준다.
- MCP 서버를 두 개 만들었다: LeCroy 오실로스코프 제어용 `lecroy-mcp`와 SPICE 시뮬레이터 라이브러리를 래핑한 `spicelib-mcp`. 이를 통해 Claude가 실제 측정 장비와 시뮬레이터를 도구로 호출할 수 있다.
- 오실로스코프 연동 시 중요한 원칙: Claude는 물리적 연결 상태를 볼 수 없으므로 무엇이 어디에 연결됐는지 절대 추측하게 하지 말 것. 오래된 측정 데이터가 컨텍스트에 남아있지 않도록 관리해야 한다.
- 원시 측정 데이터를 Claude의 컨텍스트에 직접 붙여넣지 말고 파일로 저장한 뒤 Claude가 간접적으로 파일을 읽어 처리하게 해야 한다. 컨텍스트 오염을 막기 위한 실용적인 팁이다.
- 마이크로컨트롤러 작업 시에는 핀아웃/핀먹스 맵을 명시적으로 제공하고, build/flash/ping/erase 같은 기능을 노출하는 Makefile을 미리 준비해서 Claude가 명령어를 즉흥으로 만들지 않게 해야 한다.
- 이 데모는 RC 필터처럼 의도적으로 단순한 회로로 구성됐지만, 저자는 이 접근법이 훨씬 복잡한 회로와 실제 임베디드 프로젝트에도 잘 확장된다고 설명한다.
Evidence
- Claude Opus로 보드 설계와 SPICE 시뮬레이션을 시도했는데 보드 기능을 완전히 hallucination했고, '비밀 10억 달러짜리 프로젝트를 발견했다'는 식의 황당한 주장을 했다는 경험담이 있었다. 결국 보드는 하나도 동작하지 않았고, 스스로 칭찬하느라 바빠서 자신이 gibberish를 만들었다는 걸 인식하지 못했다는 지적이다.
- 비슷하게 회로 설계/시뮬레이션/최적화 자동화를 시도해봤는데, 파일을 읽고 내용을 설명하는 건 꽤 잘 하지만 가장 단순한 회로 외에는 설계 변경을 제대로 못 한다는 의견이 있었다. 회로 뒤의 물리 개념을 이해하지 못하기 때문이며, 결국 시뮬레이터에 넘길 config 파일 범위(스텝 사이즈, 최적화 알고리즘, min/max 등)를 스크립트로 먼저 정의해야 에이전트가 제대로 활용됐다는 경험이다.
- KiCad 회로도 리뷰 자동화를 만들다가 같은 벽에 부딪혔다는 사례가 공유됐다. 처음에 Claude가 `.kicad_sch` 파일을 직접 grep/read하게 했더니 존재하지 않는 핀 번호를 만들어냈고, Python 분석기로 JSON을 생성해 Claude가 JSON만 읽게 바꿨더니 문제가 대부분 해결됐다고 한다. 또한 `spicelib-mcp`가 기본 라이브러리에 없는 모델을 어떻게 처리하는지(`.lib` 경로를 tool arg로 넘기는지, 서버가 레지스트리를 직접 관리하는지)에 대한 기술적 질문도 나왔다.
- Mermaid 다이어그램을 활용하면 LLM에게 회로를 설명하고 수정하는 작업이 훨씬 덜 번거롭다는 실용적인 팁이 댓글로 공유됐다.
- Claude 같은 상용 서비스 대신 로컬 LLM을 활용해야 한다는 의견도 있었다. 상용 서비스의 잦은 정책 변경(rug-pull)과 가격 인상, 사용자 불친화적 방향을 지적하며 로컬 LLM이 느리더라도 미래 방향이라는 주장이었다.
How to Apply
- SPICE 시뮬레이션과 실제 오실로스코프 측정 결과를 수작업으로 비교하는 작업이 많다면, `lecroy-mcp`와 `spicelib-mcp`를 Claude Code에 연결해 파형 데이터 분석과 정렬을 자동화할 수 있다. 특히 시간 축 정규화처럼 반복적으로 귀찮은 전처리 작업의 부담을 크게 줄일 수 있다.
- Claude Code로 임베디드 펌웨어 개발을 자동화하려면, build/flash/ping/erase 액션을 담은 Makefile을 먼저 준비하고 핀아웃 맵을 명시적으로 제공해야 Claude가 즉흥으로 명령어를 만들어 오작동하는 것을 방지할 수 있다.
- 측정 장비에서 나오는 원시 데이터를 Claude 컨텍스트에 직접 붙여넣으면 토큰이 낭비되고 컨텍스트가 오염된다. 대신 데이터를 파일로 저장하고 Claude가 파일 경로를 통해 간접적으로 접근하도록 구성하면 더 안정적인 분석 워크플로우를 만들 수 있다.
- 물리 장비를 MCP로 연결할 때는 Claude에게 물리적 연결 상태를 추측하게 하지 말고, 세션 시작 시 어떤 채널에 무엇이 연결됐는지 명시적으로 알려줘야 한다. 또한 이전 측정 데이터가 컨텍스트에 남아있지 않도록 세션 상태를 주기적으로 리셋해야 신뢰성 있는 결과를 얻을 수 있다.
Terminology
관련 논문
프로덕션 AI 에이전트를 GPT-5.6으로 마이그레이션: 2.2배 빠르고 27% 저렴
마케팅 웹사이트를 자동 생성하는 프로덕션 AI 에이전트를 Claude Opus 4.8에서 GPT-5.6 Sol로 전환한 실전 경험담으로, 단순 모델 교체가 아니라 eval 하네스, 툴 스키마, 캐싱, 추론 리플레이까지 손봐야 했던 과정을 구체적인 수치와 함께 정리했다.
xAI Grok Build CLI가 xAI 서버로 전송하는 데이터: 네트워크 레벨 분석
xAI의 공식 코딩 CLI 도구 Grok Build가 사용자 동의 없이 전체 Git 저장소와 .env 시크릿 파일을 xAI 서버로 업로드한다는 사실이 네트워크 트래픽 분석으로 밝혀졌다.
중요할 때 기억하라: Long-Horizon 에이전트를 위한 Proactive Memory Agent
LLM 에이전트가 긴 작업 중 중요한 정보를 잊어버리는 문제를 별도의 메모리 에이전트가 '적절한 타이밍에' 끼어들어 해결하는 방법
WebSwarm: 깊고 넓은 웹 검색을 위한 재귀적 Multi-Agent Orchestration
복잡한 웹 검색을 재귀적으로 분해하고 각 노드에 적합한 검색 모드를 동적으로 할당하는 멀티에이전트 프레임워크
웹 앱을 리버스 엔지니어링해서 AI Agent 도구로 자동 변환하기
로그인된 웹 앱의 API 호출을 브라우저에서 감시해 자동으로 MCP 도구로 변환하는 에이전트를 만들었다. 소스 코드나 공식 API 문서 없이도 Jira, Spotify 같은 서비스에 AI 어시스턴트를 붙일 수 있다.
FableCut – AI 에이전트가 조작할 수 있는 브라우저 기반 비디오 에디터 (zero deps)
타임라인 전체를 JSON 파일 하나로 표현하고 MCP/REST로 AI 에이전트가 직접 편집할 수 있는 브라우저 비디오 에디터로, Claude 같은 AI가 프롬프트 하나로 영상을 자동 컷편집하고 결과를 실시간으로 UI에 반영해준다.