Agent Client Protocol(ACP) 완전 정리 — AI 코딩 에이전트의 LSP가 온다

Agent Client Protocol(ACP) 완전 정리 — AI 코딩 에이전트의 LSP가 온다 Claude Code를 Zed에서, Gemini CLI를 IntelliJ에서 쓰고 싶은데 매번 전용 확장을 깔아야 한다면? ACP가 이 문제를 풀려고 합니다. ACP(Agent Client Protocol)는 AI 코딩 에이전트와 코드 에디터 사이의 통신을 표준화하는…

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 Google
연결 대상 에디터 ↔︎ 에이전트 에이전트 ↔︎ 도구/데이터 에이전트 ↔︎ 에이전트
한 줄 요약 에이전트가 어디서 동작하나 에이전트가 무엇을 쓸 수 있나 에이전트끼리 어떻게 협업하나
통신 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의 경쟁자가 아니라 보완재. 함께 이해하면 에이전트 생태계 전체가 보임

다음 글(추천)

참고 링크

관련 글

@welltip

정리를 위해 작성하는 개인노트