Agent Client Protocol(ACP) 완전 정리 — AI 코딩 에이전트의 LSP가 온다
Claude Code를 Zed에서, Gemini CLI를 IntelliJ에서 쓰고 싶은데 매번 전용 확장을 깔아야 한다면? ACP가 이 문제를 풀려고 합니다.
ACP(Agent Client Protocol)는 AI 코딩 에이전트와 코드 에디터 사이의 통신을 표준화하는 오픈 프로토콜입니다. LSP가 언어 서버 통합을 해결한 것처럼, ACP는 에이전트-에디터 통합의 N×M 문제를 풀려고 합니다. 이 글에서는 MCP·A2A와 어떻게 다른지도 정리했습니다.
ACP가 해결하는 문제
ACP 이전에는 에디터마다 에이전트별로 커스텀 통합을 개별 구현해야 했습니다.
- Claude Code를 Zed에서 쓰려면 → Zed 전용 어댑터 필요
- Gemini CLI를 JetBrains에서 쓰려면 → JetBrains 전용 통합 필요
- 새 에이전트가 나올 때마다 → 에디터별 플러그인을 각각 만들어야 함
에디터 3개 × 에이전트 5개 = 15개의 개별 통합. 에이전트가 늘어날수록 조합이 폭발합니다.
ACP는 이 문제를 단일 프로토콜로 표준화합니다:
에디터 (Client) ←─ ACP (JSON-RPC) ─→ 에이전트 (Server)
에디터는 ACP 클라이언트만 구현하면 되고, 에이전트는 ACP 서버만 구현하면 어떤 에디터에서든 동작합니다.
핵심 아키텍처
ACP는 5개 계층으로 구성됩니다:
| 계층 | 역할 |
|---|---|
| Transport | stdio 위에서 JSON 전송, 에디터가 에이전트를 서브프로세스로 실행 |
| Protocol | JSON-RPC 2.0 메시지 처리 |
| Connection | 클라이언트-에이전트 초기화 및 인증 |
| Session | 상태 유지 대화(stateful conversation) 관리 |
| Application | 에이전트/에디터별 커스텀 로직 |
핵심 메서드
| 메서드 | 역할 |
|---|---|
session/initialize |
에이전트가 지원 기능 전달 |
session/new |
새 대화 세션 시작 |
session/prompt |
사용자 프롬프트를 에이전트에 전달 |
session/update |
에이전트 → 에디터 응답 (스트리밍) |
session/cancel |
처리 중단 |
에이전트는 에디터의 서브프로세스로 동작합니다. 에디터가 권한 게이트키퍼 역할을 하므로 보안이 유지됩니다.
지원 에디터와 에이전트
에디터 (ACP Client)
| 에디터 | 상태 |
|---|---|
| Zed | 공식 (창시자) |
| JetBrains (IntelliJ, PyCharm, WebStorm 등) | 공식, Agent Registry 통합 |
| Neovim | Code Companion 플러그인 |
| Marimo | 지원 |
| VS Code | 미지원 (이슈 트래킹 중) |
에이전트 (ACP Server)
| 에이전트 | 비고 |
|---|---|
| Gemini CLI | 레퍼런스 구현체 |
| Claude Code | claude-agent-acp 브릿지 |
| Codex CLI (OpenAI) | Zed adapter 통해 |
| GitHub Copilot | Zed에서 ACP 연동 지원 (제한적) |
| goose (Block) | 공식 |
| Kimi CLI | 공식 |
| OpenClaw | 지원 |
| Augment Code, Cline, Kiro CLI 등 | 커뮤니티 |
VS Code 미지원이 현재 가장 큰 채택 병목입니다. 이슈는 열려 있지만 공식 일정은 미확정.
MCP·A2A와 뭐가 다른가
AI 에이전트 생태계에는 비슷한 이름의 프로토콜이 여럿 있어서 혼동하기 쉽습니다.
| 비교 | ACP | MCP | A2A |
|---|---|---|---|
| 정식 명칭 | Agent Client Protocol | Model Context Protocol | Agent-to-Agent |
| 주도 | Zed + JetBrains | Anthropic | |
| 연결 대상 | 에디터 ↔︎ 에이전트 | 에이전트 ↔︎ 도구/데이터 | 에이전트 ↔︎ 에이전트 |
| 한 줄 요약 | 에이전트가 어디서 동작하나 | 에이전트가 무엇을 쓸 수 있나 | 에이전트끼리 어떻게 협업하나 |
| 통신 | JSON-RPC over stdio/HTTP | JSON-RPC | JSON-RPC over HTTP |
관계도
사용자 → [에디터] ──ACP──→ [AI 에이전트] ──MCP──→ [도구/DB/API]
│
└──A2A──→ [다른 에이전트]
세 프로토콜은 경쟁이 아니라 상호 보완입니다. 하나의 에이전트가 ACP로 에디터와 통신하면서, MCP로 도구에 접근하고, A2A로 다른 에이전트와 협업할 수 있습니다.
주의: IBM ACP와 혼동하지 마세요
IBM이 만든 Agent Communication Protocol도 “ACP”로 불리지만 완전히 다른 프로토콜입니다. IBM ACP는 에이전트 간 통신용이었으나, 2025년 9월 Google A2A에 합류하면서 사실상 통합됐습니다. 이 글에서 다루는 ACP는 Zed의 Agent Client Protocol입니다.
SDK 현황 (2026년 3월 기준)
| SDK | 설치 | GitHub Stars |
|---|---|---|
| Python | pip install agent-client-protocol |
★202 |
| TypeScript | typescript-sdk | — |
| Kotlin | kotlin-sdk | ★67 |
| Claude Agent ACP | claude-agent-acp | ★1,419 |
메인 저장소
| 저장소 | Stars |
|---|---|
| agent-client-protocol (스펙) | ★2,607 |
| registry (에이전트 목록) | ★147 |
실제 설정: Zed에서 Claude Code를 ACP로 연결하기
1단계: Claude Code 설치
curl -fsSL https://claude.ai/install.sh | bash
2단계: Zed 설정에 에이전트 추가
Zed의 Settings에서 ACP 에이전트를 등록합니다. Zed는 내장 Agent Registry에서 Claude Code, Gemini CLI 등을 바로 선택할 수 있습니다.
3단계: 에이전트 패널에서 실행
Zed 우측 패널에서 에이전트를 선택하면, ACP 프로토콜을 통해 에이전트가 서브프로세스로 실행됩니다. 에디터 컨텍스트(열린 파일, 선택 영역 등)가 자동으로 에이전트에 전달됩니다.
JetBrains에서 사용하기
JetBrains IDE에서는 AI Assistant 설정에서 ACP 에이전트를 추가할 수 있습니다. 2026년 1월부터 Agent Registry를 통해 등록된 에이전트를 바로 설치할 수 있습니다.
ACP의 장단점
장점
- 벤더 락인 없음 — 에이전트를 바꿔도 에디터를 바꿀 필요 없음
- 단순한 구현 — 표준 JSON-RPC 2.0, curl로도 디버깅 가능
- 보안 — 에디터가 권한 게이트키퍼, 에이전트는 샌드박스 내 실행
- 오픈 표준 — Apache License, 커뮤니티 주도 확장
한계
- VS Code 미지원 — 가장 많이 쓰이는 에디터가 빠져 있음
- 초기 생태계 — 2025년 8월 공개, 아직 성장 초기
- 명칭 혼동 — IBM ACP와 동일 약어, 검색 시 혼란
누가 주목해야 하나
- Zed, JetBrains 사용자 — 지금 바로 쓸 수 있음. 에이전트 전환이 자유로워짐
- 에이전트 개발자 — ACP 서버 하나 구현하면 여러 에디터에서 동작
- VS Code 사용자 — 아직은 관망. 다만 공식 지원 이슈가 열려 있으므로 진행 상황 추적 권장
- MCP에 관심 있는 사람 — ACP는 MCP의 경쟁자가 아니라 보완재. 함께 이해하면 에이전트 생태계 전체가 보임
다음 글(추천)
- Claude Code 완전 가이드 (2026) — ACP로 연결하는 에이전트의 대표주자
- Claude Code 신규 기능 정리 (2026년 3월) — /loop, worktree 등 최신 기능
참고 링크
- ACP 공식 사이트
- GitHub – agent-client-protocol
- Zed – Agent Client Protocol
- JetBrains ACP 문서
- ACP Python SDK

