Konnect: KiCad 10용 AI PCB 설계 MCP 플러그인 (Rust 단일 바이너리)
AI-assisted PCB design for KiCad 10
TL;DR Highlight
KiCad를 MCP 도구 200여 개로 열어 Claude가 회로·배선·제조 파일까지 직접 다룬다
Who Should Read
MCP 서버에 도구가 많아 컨텍스트 토큰이 부담이고, 하드웨어 설계를 LLM 에이전트로 자동화해 보려는 개발자
Core Mechanics
- 도구 수백 개를 전부 노출하면 23K 토큰
- 원문은 228개 도구를 매번 전부 나열하면 컨텍스트 약 23K 토큰이 든다고 쓴다.
- Konnect의 라우터는 시작용 키트(약 2K 토큰)만 먼저 싣는다.
- 모델이 필요할 때 toolset(도구 묶음)을 골라 불러온다.
- 호출 경로를 함수 호출 하나로 줄였다
- 기존 KiCAD-MCP-Server는 TypeScript, 파이썬 서브프로세스, JSON stdin/stdout, SWIG C++ 프록시를 거쳤다.
- Konnect는 한 프로세스·한 언어에서 도구 호출이 곧 함수 호출이다.
- 실행 파일은 단일 정적 바이너리로 20~25MB, 다운로드는 약 9MB다.
- PCB는 IPC API, 회로도는 직접 파일 편집
- PCB 편집은 KiCad 10의 IPC API(NNG 위 protobuf)를 쓰고 KiCad의 undo/redo와 연동된다.
- 회로도(.kicad_sch)는 자체 S-expression 엔진으로 직접 고친다.
- 쓰기는 write, fsync, rename 순서의 atomic write라 파일이 깨지지 않게 했다.
- AI가 자기 도구 실패를 진단하게 했다
- get_recent_calls, server_stats, JSONL 호출 로그 같은 관측 기능이 들어 있다.
- 모델이 도구 실패 원인을 스스로 살펴볼 수 있다.
Community Reactions
- 배선은 약하다는 경험이 많았다
- computer-use로 시도하면 결과가 별로였고, 이 repo와 섞어 쓰니 스택업·부품 설정은 잘하는데 배선이 형편없다는 경험이 있었다.
- SMD 핀 사이로 가는 선을 꼬불꼬불 끌고, 장애물 앞에서 45도 두 번 대신 작은 꺾임을 10~30번 만든다고 한다.
- KiCadRoutingTools는 더 합리적인 배선을 만든다는 언급이 있었다.
- 직접 배선 후 넘기면 쓸 만하다는 경험
- Fable 5.1은 핵심 선 몇 개를 고정하고 나머지를 freerouting에 맡기는 방식을 쓴다는 경험이 있었다.
- '신중하게 설계하라'고 세게 요구하면 코드를 짜서 더 나은 배선을 낸다고 한다.
- 그래도 결과를 보고 약점을 짚거나 몇 개를 손으로 배선해 되돌려주어야 한다는 의견이다.
- 고도 기구 트래커 보드가 잘 나왔다는 경험
- Fable로 4층 보드를 만들었고, 배선을 '토너먼트' 방식으로 돌려 좋은 경로를 잠그는 요령을 썼다고 한다.
- JLCPCB 부품 검색과 사양 확인, 제조 출력까지 됐고 Opus는 좋은 보드에 못 미쳤다고 한다.
- 도메인 지식이 있어야 한다는 단서가 붙었다.
- 특이 부품에선 실수가 크다는 반론
- EPC GaN FET으로 GaN BLDC ESC를 시도했더니 부품 패키지·풋프린트 선택에서 큰 실수가 났다는 경험이 있었다.
- 흔한 부품은 학습 데이터에 예제가 많아 잘 될 거라는 의견이다.
How to Apply
- MCP 서버 도구를 묶음으로 나누기
- 오늘 자기 MCP 서버의 도구 목록을 토큰 수로 재 보자.
- 토큰이 큰 도구를 용도별 묶음으로 나누고 시작 시엔 핵심 몇 개만 노출하자.
- 나머지는 load_toolset 같은 도구 하나로 필요할 때 불러오게 하자.
- 도구 호출 로그를 JSONL로 남기기
- 모든 도구 호출의 이름·인자·에러를 JSONL 한 줄로 기록하자.
- 최근 호출을 조회하는 get_recent_calls 같은 도구를 모델에게 열어 주자.
- 실패 시 모델이 스스로 원인을 확인하게 하자.
- 파일 편집 도구는 atomic write로 바꾸기
- LLM이 파일을 수정하는 도구라면 임시 파일에 쓰고 fsync 후 rename하게 바꾸자.
- 편집 전후 round-trip 테스트를 붙여 파일 손상을 잡자.
- 배선처럼 결과가 약한 단계는 사람이 검토하는 단계를 남기자.
Try It
# Claude Code나 Claude Desktop에 붙여넣기: Konnect 방식의 toolset 분할 설계 간이 버전
나는 MCP 서버를 만들고 있다. 아래 도구 목록은 지금 전부 노출되어 컨텍스트를 많이 쓴다.
{{도구 이름과 설명 목록}}
다음 방식으로 재설계해 줘.
1. 도구를 용도별 toolset 5~8개로 묶어 이름을 붙인다.
2. 시작 시 노출할 최소 키트(10개 이하)를 고른다.
3. toolset을 불러오는 load_toolset(name)과 list_toolsets() 도구 스펙을 JSON 스키마로 작성한다.
4. 실패 진단용 get_recent_calls 도구의 입출력 스키마도 작성한다.
이어서 해 볼 것: 재설계 전후의 도구 목록 토큰 수를 비교해 보자.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓