Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AI 에이전트용 MCP 서버

ics mcp(ics 명령줄 도구의 mcp 명령)는 Model Context Protocol(stdio)을 통해 IC Studio를 AI 에이전트에 제공합니다. 에이전트는 프로젝트를 만들고 열고, 넷리스트를 읽고, 시뮬레이션하고, 레이아웃을 편집하고, 회로도로부터 레이아웃을 생성하고 배선하며, DRC, 추출, LVS를 실행할 수 있습니다.

AI 에이전트가 ics mcp 도구를 호출해 프로젝트를 편집하고 검사한 뒤 결과를 다시 읽는 흐름

설정

릴리스 설치 프로그램은 claude가 PATH에 있으면 서버를 Claude Code에 등록합니다. 앱의 **File > Settings… > AI agents (MCP)**에는 같은 일을 하는 Add to Claude Code와, 다른 클라이언트용으로 아래 JSON을 복사하는 Copy MCP config가 있습니다.

직접 등록하려면 다음을 실행합니다.

claude mcp add --scope user ic-studio -- /path/to/ics mcp

다른 MCP 클라이언트에서는 명령이 ics 바이너리이고 인자가 mcp인 stdio 서버를 추가합니다.

{ "mcpServers": { "ic-studio": { "command": "/path/to/ics", "args": ["mcp"] } } }

소스에서는 cargo build --release -p ics-cli로 빌드하고 target/release/ics를 사용합니다.

그런 다음 예를 들어 이렇게 요청합니다. “create a demo project in ./demo and run LVS on cmos_inverter”(./demo에 데모 프로젝트를 만들고 cmos_inverter에 LVS를 실행해 줘).

에이전트 스킬

도구는 에이전트에게 무엇을 할 수 있는지 알려 주고, skills/ic-studio에 있는 ic-studio 스킬은 그 도구로 어떻게 설계하는지 알려 줍니다. 회로도 → 시뮬레이션 → 레이아웃 → DRC → LVS → 포스트 레이아웃 흐름, 단위, LVS / DRC 결과 읽는 법, schematic.json 형식, 대안으로서의 ics CLI를 다룹니다. 다음 명령으로 설치합니다.

npx skills add geniuskey/ic-studio

또는 skills/ic-studio를 ~/.claude/skills/에 복사합니다.

규칙

  • 좌표는 µm 단위이고, y는 위쪽이 양수이며, 테크놀로지 그리드에 스냅됩니다.
  • cell 인자는 셀 이름 또는 lib/cell입니다. 레이아웃 편집 도구는 셀(work 라이브러리)과 그 레이아웃 뷰가 없으면 새로 만듭니다.
  • 편집 내용은 save_project를 호출할 때까지 메모리에만 있습니다.

도구

서버에는 40개의 도구가 있습니다.

도구용도
open_project, new_project, save_project, project_info프로젝트 관리. project_info는 테크놀로지 레이어, 비아, 모든 셀을 나열
get_netlist셀의 SPICE 덱
write_schematicSPICE 넷리스트로 셀의 회로도를 만들거나 교체. 해석 줄은 시뮬레이션 설정이 됨
set_simulation셀의 해석(op, dc, ac, tran, noise), 백엔드, 온도, 추가 줄, 기생 성분, 코너 변경
simulate셀에 저장된 해석 실행(선택: backend는 builtin, ngspice, auto; parasitics). 내장 엔진이 근사하는 부분에 대한 경고와 함께 간결한 요약을 반환
run_spice원시 SPICE 덱 시뮬레이션
layout_summary경계 상자, 레이어별 도형, 라벨, 인스턴스
add_rect, add_path, add_label도형 그리기. 배선 레이어의 라벨은 그 아래 넷의 이름이 됨
place_instance, place_pcell셀 또는 PCell 배치(nmos, pmos(선택적으로 PDK device), poly_res, mom_cap, ntap, ptap)
delete_itemsid로 도형 / 인스턴스 삭제
generate_layout매칭을 고려한 회로도 기반 배치(배선 없음)
flylines배선되지 않은 연결 목록
route메탈 레이어에서 플라이라인 배선
run_drc테크놀로지 덱으로 DRC
fix_drc더 고칠 것이 없을 때까지 셀의 최상위 지오메트리에 검증된 빠른 수정 적용
compact최상위 항목을 각 방향으로 룰에 막힐 때까지 밀기. 제약 조건 유지
optimize스펙을 만족하도록 소자 파라미터 사이징(선택적으로 레이아웃 이후). apply는 최적 값을 씀
place_like예제 기반 레이아웃: 같은 회로 토폴로지를 가진 완성된 셀처럼 배치, 선택적으로 배선
diff_layout셀의 레이아웃을 레이어별로 git 리비전(기본 HEAD) 또는 저장된 파일과 XOR
extract추출된 넷과 소자, 그리고 SPICE
run_lvs레이아웃과 회로도 비교
run_signoff테크놀로지의 외부 KLayout / Calibre / netgen 런셋 실행
post_layout_parasitics추출된 기생 성분과 가장 큰 넷 커패시턴스 및 커플링 커패시턴스
emir넷의 IR 드롭과 일렉트로마이그레이션: 최악 드롭과 위치, 부하, 가장 높은 전류 밀도, EM 위반
opc레이어의 광근접 보정: 보정 전후 EPE 통계, 마스크 면적, 최악 조각. apply는 마스크를 <layer>_opc에 쓰고 이전 마스크를 교체(그린 레이어는 바뀌지 않음)
load_pdk테크놀로지를 PDK 파일로 교체
export_gds, import_gdsGDSII / OASIS 내보내기와 가져오기(가져올 때 테크놀로지에 없는 레이어는 건너뜀). 둘 다 테크놀로지의 스트림 레이어 맵을 적용
export_lef, import_lef셀의 LEF 추상 쓰기(obs: detailed, block, none; class), 또는 LEF 매크로를 새 라이브러리의 레이아웃 셀로 가져오기(LEF와 DEF 참고)
export_def, import_def최상위 셀을 DEF로 쓰기(배치된 셀의 추상용 선택 인자 lef_path), 또는 DEF를 새 최상위 셀로 가져오기
run_skillCadence SKILL 코드(code) 또는 .il 파일(file) 실행. output, value, modified 셀을 반환
gui_status데스크톱 앱 연결 여부와 그 프로젝트

run_skill

run_skill은 code(SKILL 소스) 또는 file(.il 경로. 상대 경로 load()의 기준이기도 함) 중 하나를 받아 다음을 반환합니다. 선택 인자 cell은 geGetEditCellView()가 반환할 셀을 지정합니다.

{ "output": "what the script printed", "value": "value of the last form", "modified": ["work/pads"] }

SKILL 오류가 나면 도구는 SKILL error: <file or line>: <message>로 실패하며, 이미 수정된 셀(편집 내용은 유지됨)과 그때까지 출력된 내용이 뒤따릅니다. 라이브 모드에서는 앱이 변경된 모든 레이아웃의 되돌리기 기록을 남기고, 열린 셀이 없으면 첫 번째 셀을 엽니다.

라이브 모드

데스크톱 앱이 실행 중이면 MCP 서버(ics mcp)는 모든 도구 호출을 앱으로 전달하고, 에이전트는 창에 열린 프로젝트를 대상으로 작업합니다.

  • 편집 내용이 즉시 나타나고, 레이아웃 편집은 Ctrl+Z로 되돌릴 수 있습니다.
  • 창은 해당 셀을 맞는 워크스페이스에서 엽니다. simulate는 파형을 보여 주고, DRC / 추출 / LVS 결과는 마커와 함께 레이아웃 패널에 나타납니다.
  • 상태 표시줄에 MCP live가 표시되고, 각 호출은 콘솔에 MCP · <tool> <cell> -> <summary>로 기록됩니다.

앱은 세션별 토큰으로 127.0.0.1에서 수신하며, 검색용 파일 live.json을 %LOCALAPPDATA%\ic-studio (Windows) 또는 $XDG_RUNTIME_DIR/ic-studio에 쓰고, 없으면 ~/.local/state/ic-studio(Linux, macOS)에 씁니다. ics mcp는 호출할 때마다 실행 중인 앱을 확인하므로 언제든 앱을 시작하거나 닫을 수 있습니다.

앱이 실행 중이 아니거나 ICS_MCP_STANDALONE=1이면 서버는 자체 메모리 내 프로젝트로 동작합니다. open_project 또는 new_project로 시작합니다. ICS_LIVE_DIR은 검색용 파일의 폴더를 바꿉니다.