MCP와 A2A는 무엇이 다를까? AI 에이전트 연결 방식 쉽게 이해하기

AI 에이전트 기술을 보다 보면 MCP와 A2A라는 용어를 자주 접합니다. 둘 다 AI 에이전트가 다른 시스템과 연결되는 방식을 다루지만, 해결하려는 문제는 다릅니다.

간단히 말하면 MCP는 한 AI 애플리케이션이 도구와 데이터에 연결되는 규칙이고, A2A는 독립된 에이전트들이 서로를 찾아 작업을 주고받는 규칙입니다. 두 프로토콜은 경쟁 관계라기보다 서로 다른 연결을 돕습니다.

이 글은 2026년 10월 24일 확인한 공식 사양을 기준으로 합니다. 아래 구매 사례는 이해를 위한 가상 예시이며 실제 구현하거나 테스트한 내용은 아닙니다.

최종 수정일: 2026년 11월 4일

1. MCP는 무엇을 연결할까?

MCP는 Model Context Protocol의 약자로, AI 애플리케이션과 외부 데이터·기능을 표준화된 방식으로 연결하는 공개 프로토콜입니다.

MCP 구조에는 보통 세 역할이 있습니다. Host는 사용자가 AI를 사용하는 애플리케이션, Client는 Host 안에서 MCP 연결을 관리하는 구성 요소, Server는 도구·데이터·프롬프트를 제공하는 서비스입니다.

MCP Server가 제공할 수 있는 대표 기능은 다음과 같습니다.

  • Tools: 검색·계산·데이터 변경처럼 실행할 수 있는 기능
  • Resources: AI나 사용자에게 제공할 데이터와 문맥
  • Prompts: 재사용 가능한 프롬프트 템플릿과 작업 흐름

예를 들어 AI 애플리케이션이 MCP Server를 통해 허용된 문서를 찾거나 사내 재고를 조회하고, 일정 등록 도구를 호출할 수 있습니다. MCP 자체가 에이전트의 판단이나 권한을 대신 결정하지는 않습니다. Host와 연결된 Server가 무엇을 제공하고 사용자가 무엇을 허용했는지가 중요합니다.

2. A2A는 무엇을 연결할까?

A2A는 Agent2Agent Protocol의 약자로, 독립된 AI 에이전트가 서로의 기능을 발견하고 작업을 위임하거나 결과를 주고받도록 설계됐습니다. A2A를 쓰는 에이전트는 다른 에이전트의 내부 추론이나 도구를 직접 볼 필요 없이, 공개된 기능 설명과 메시지·작업 결과를 통해 협업할 수 있습니다.

Agent Card(에이전트 카드)는 원격 에이전트의 이름, 접속 주소, 기술, 지원 기능과 인증 요건을 적은 디지털 명함입니다. Agent Card를 보고 상대의 제공 기능과 연결 방법을 파악할 수 있습니다. 일반적으로 /.well-known/agent-card.json에서 발견할 수 있지만, 직접 설정이나 별도 디렉터리를 쓰는 방식도 가능합니다.

A2A의 주요 구성 요소는 Message(대화 내용), Task(상태를 추적하는 작업), Part와 Artifact(메시지나 작업 결과에 들어가는 텍스트·파일 참조·구조화 데이터 등)입니다.

실제 구현·테스트가 아닌 가상 흐름도입니다. 본문의 예시는 공급업체에 재고·견적을 문의하는 단계까지이며, 실제 발주는 담당자가 승인한 뒤에만 실행합니다.

3. MCP만, A2A만, 또는 둘 다 필요한 경우

MCP만 필요한 경우

한 애플리케이션이 사내 문서 검색, 데이터베이스 조회, 일정 확인처럼 연결된 도구를 사용하고 다른 독립 에이전트에 작업을 맡길 필요가 없다면 MCP만으로 충분할 수 있습니다.

A2A가 필요한 경우

서로 다른 팀이나 회사가 운영하는 전문 에이전트에 업무를 위임하고 진행 상태·추가 질문·결과물을 주고받아야 한다면 A2A가 더 적합할 수 있습니다. 단순한 외부 API 호출이나 정해진 함수 실행만 필요하다면 A2A를 도입할 필요는 없습니다.

둘을 함께 쓰는 경우

중앙 에이전트가 자기 조직의 도구·데이터를 MCP로 사용하면서 외부 전문 에이전트와 A2A로 협력해야 할 때 두 프로토콜을 함께 고려할 수 있습니다.

4. MCP와 A2A 비교표

비교 항목MCPA2A
주요 목적한 AI 애플리케이션을 도구·데이터와 연결독립된 에이전트 사이의 작업 위임과 협업
참여자Host / Client / ServerA2A Client / 원격 A2A Server(에이전트)
기능 발견server/discover로 지원 버전·기능 확인(신규 사양)Agent Card로 에이전트의 기능·주소·인증 요건 확인
주요 구성 요소Tools, Resources, PromptsAgent Card, Message, Task, Part, Artifact
대표 상호작용tools/list, tools/call, 리소스·프롬프트 조회메시지 전송, Task 상태 조회·취소, 스트리밍·알림
상태 처리2026-07-28 코어는 프로토콜 세션 ID를 사용하지 않음. Tasks는 별도 확장Task가 작업 상태와 결과물을 추적하는 기본 단위
전송 방식JSON-RPC 2.0, stdio, Streamable HTTPJSON-RPC, gRPC, HTTP+JSON/REST 바인딩
주요 사용 상황같은 애플리케이션이 DB·검색·업무 도구를 사용다른 팀·서비스의 에이전트와 작업을 주고받음

전송 방식과 요청 이름은 구현 버전과 바인딩에 따라 차이가 있을 수 있습니다. 예를 들어 A2A의 추상 작업을 JSON-RPC나 HTTP 바인딩에서 표현하는 구체적인 이름·경로는 서로 같다고 가정하지 말고, 상대 Agent Card와 해당 바인딩 문서를 확인하세요.

5. 실제 업무에 적용하는 가상 구매 사례

다음은 사내 구매 요청을 처리하는 가상 사례입니다. 실제 서비스에서 구현하거나 테스트한 예시는 아닙니다.

  • 직원이 구매 에이전트에 “프린터 용지 10상자를 주문해야 하는지 확인해 달라”고 요청합니다.
  • 구매 에이전트는 MCP로 사내 재고와 구매 규정을 조회합니다.
  • 재고가 부족하면 구매 에이전트가 A2A로 공급업체 에이전트에 재고와 견적을 문의합니다.
  • 공급업체 에이전트는 A2A Task로 문의 진행 상태와 견적 결과를 전달합니다.
  • 구매 에이전트가 견적을 정리해 담당자에게 보여주고, 실제 주문은 사람이 승인한 뒤 실행합니다.

이 예에서 MCP는 구매 에이전트가 사내 자료와 도구를 사용하는 연결이고, A2A는 별도 업체의 에이전트와 업무를 주고받는 연결입니다. A2A를 사용해도 공급업체의 내부 시스템이나 추론 과정이 자동 공개되는 것은 아닙니다.

6. 구현 전 확인: 2026년 공식 사양과 버전 호환성

MCP 2026-07-28 사양

MCP 최신 개정판은 2026-07-28이며, 이전 개정판은 2025-11-25입니다. 새 사양의 stateless(무상태)는 각 요청에 필요한 버전·기능 정보를 담고, 프로토콜이 연결을 유지하는 세션 ID에 의존하지 않는다는 뜻입니다. 이는 서버 애플리케이션이 어떤 상태도 저장할 수 없다는 뜻은 아닙니다. 서버가 여러 요청에 걸친 상태가 필요하면 사양이 설명하는 명시적 핸들 같은 방법을 사용할 수 있습니다.

2026-07-28 사양의 server/discover는 MCP Server에 “어떤 프로토콜 버전과 기능을 지원하나요?”라고 묻는 표준 요청입니다. 이 요청을 통해 지원 정보를 알아볼 수 있지만, 이전 사양만 지원하는 서버는 이 메서드를 제공하지 않을 수 있습니다.

이 개정판은 공식 발표됐지만 모든 SDK, Client, Server가 같은 시점에 바로 지원한다고 볼 수는 없습니다. 실제 도입 전에는 사용 중인 SDK와 양쪽 서버가 어떤 사양 버전·기능·전송 방식을 지원하는지 각각 확인하고, 테스트 환경에서 호환성을 검증하세요. server/discover가 지원되는 상대라면 활용하고, 이전 버전 상대와는 해당 구현의 지원 버전과 호환 절차를 확인해야 합니다.

이전 MCP 버전에서 사용하던 initialize 핸드셰이크나 프로토콜 세션은 그 버전을 구현한 연결에서 유효한 동작입니다. 현행 2026-07-28 사양의 동작과 다르다고 해서 이전 구현이 자동으로 잘못된 것은 아닙니다. 두 상대의 사양 버전이 다를 때는 어느 쪽 기능을 사용할 수 있는지 확인해 맞는 절차를 선택해야 합니다.

2026-07-28 변경에는 Mcp-Session-Id와 초기화 핸드셰이크 제거, server/discover와 요청별 기능 정보 추가, Streamable HTTP 동작 변경이 포함됩니다. Tasks는 코어 프로토콜이 아니라 공식 확장으로 이동했습니다.

A2A v1.0.1 사양

이 글은 A2A v1.0.1 사양 페이지와 공식 릴리스 기록을 기준으로 합니다. v1.0.1 릴리스 노트에는 HTTP 바인딩의 application/a2a+json 선호, 전송 변환 오류, TaskStatus 값에 대한 수정이 기록돼 있습니다. v1.0.0에서는 이전 0.3 계열과 비교해 데이터 모델·Agent Card·OAuth 흐름 등이 정비됐습니다.

공식 사이트의 일반 latest 사양 페이지에는 v1.0.0이 최신으로 표시되는 문서가 있지만, 버전이 고정된 v1.0.1 사양 페이지와 저장소 v1.0.1 릴리스가 확인됩니다. 이 글은 패치 차이를 놓치지 않도록 버전 고정 문서와 릴리스 기록을 함께 제시합니다.

도입 전에는 ‘공식 문서를 확인한 날짜 / 참조한 사양 버전과 고정 URL / 실제 Client·Server·SDK 버전’을 따로 기록하세요. 문서 확인일이나 latest 표기만으로 내 연결의 지원 버전을 판단하지 마세요.

7. 권한·인증·보안에서 주의할 점

프로토콜을 연결했다고 권한과 보안이 자동으로 해결되는 것은 아닙니다.

MCP를 사용할 때

  • 사용자 데이터를 Server에 제공하거나 도구를 실행하기 전, Host가 전달 정보와 작업 내용을 설명하고 동의를 받아야 합니다.
  • HTTP 인증을 구현한다면 현재 MCP OAuth 절차를 따라야 합니다. 토큰이 해당 MCP Server를 대상으로 발급됐는지 확인하고, MCP Client가 받은 토큰을 다른 상위 API에 그대로 전달하지 않습니다.
  • 2026-07-28 사양은 OAuth Client ID Metadata Documents를 권고하고, Dynamic Client Registration은 하위 호환을 위해 남겨두되 deprecated로 분류합니다.
  • Streamable HTTP Server는 Origin을 검증해 DNS rebinding 위험을 줄여야 합니다. 도구 설명과 결과는 외부 입력으로 취급하고, 삭제·구매처럼 영향이 큰 작업에는 별도 확인 절차를 둡니다.

A2A를 사용할 때

  • Agent Card는 기능과 인증 요건을 알리는 설명서이지, 그 자체가 상대 에이전트의 신원을 보증하는 자격 증명은 아닙니다.
  • 실제 요청에는 HTTPS/TLS 등 안전한 전송과 서버의 인증·권한 확인을 사용합니다. 신뢰가 필요한 경우 사양이 지원하는 Agent Card 서명과 공개키 출처를 검증합니다.
  • 민감한 Agent Card는 인증된 접근으로 제한하고, 카드에 정적 비밀키나 액세스 토큰을 넣지 않습니다. 인증 정보는 안전한 별도 절차로 교환합니다.
  • 원격 에이전트가 접근할 수 있는 데이터와 실행 가능한 작업을 제한합니다. 결제·주문·삭제처럼 영향이 큰 작업은 별도 정책과 사람의 승인을 둡니다.

AI 에이전트 도구 사용 원리에서 도구 호출 흐름을, 최소 권한 원칙과 가드레일 글에서 상세한 권한 설계를 확인할 수 있습니다.

마무리

MCP는 AI 애플리케이션이 데이터와 도구를 연결해 사용하도록 돕고, A2A는 독립된 에이전트가 서로 작업을 주고받도록 돕습니다.

한 애플리케이션 안에서 도구와 데이터를 쓰면 MCP, 외부 에이전트에 작업을 위임하고 협업하면 A2A, 두 상황이 모두 있으면 둘을 함께 검토할 수 있습니다. 도입 전에는 상대 구현의 지원 버전과 연결 호환성을 확인하고, 실제 권한·사용자 동의·승인 절차도 별도로 설계하세요.

2026년 10월 1일 소개된 A2A CLI는 Agent Card 조회·메시지 전송·작업 추적을 돕는 공식 명령줄 클라이언트입니다. 이는 에코시스템 도구 업데이트이며 A2A 프로토콜 사양 버전 변경과는 구분해야 합니다.

공식 참고 자료

MCP 2026-07-28 핵심 사양 · MCP 변경 이력

MCP 인증 보안 고려사항 · Streamable HTTP 보안·전송

A2A v1.0.1 사양 · A2A v1.0.1 릴리스 기록 · Agent Card 발견·보안

A2A 공식 MCP 비교 · A2A CLI 소개

Google Developers: AI Agent Protocols Guide · Google Developers: A2A 협업 에이전트

MCP TypeScript SDK v2 · A2A v1.0.0 문서(이전 버전)

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤