(위 이미지를 클릭하여 이 수업의 비디오를 시청하세요)
AI 에이전트의 사용이 증가함에 따라 표준화, 보안 확보, 그리고 열린 혁신 지원을 보장하는 프로토콜의 필요성도 커지고 있습니다. 이번 수업에서는 이러한 필요를 충족하기 위해 설계된 3가지 프로토콜 - 모델 컨텍스트 프로토콜(MCP), 에이전트 간 통신(A2A), 그리고 자연어 웹(NLWeb)에 대해 다룹니다.
이번 수업에서 다룰 내용은 다음과 같습니다:
• MCP가 AI 에이전트가 외부 도구와 데이터를 사용하여 사용자 작업을 완료하도록 어떻게 허용하는지.
• A2A가 서로 다른 AI 에이전트 간의 통신과 협업을 어떻게 가능하게 하는지.
• NLWeb이 자연어 인터페이스를 모든 웹사이트에 어떻게 제공하여 AI 에이전트가 콘텐츠를 찾고 상호작용할 수 있도록 하는지.
• AI 에이전트 맥락에서 MCP, A2A, NLWeb의 핵심 목적과 장점을 식별합니다.
• 각 프로토콜이 LLM, 도구, 다른 에이전트 간의 통신과 상호작용을 어떻게 지원하는지 설명합니다.
• 복잡한 에이전틱 시스템을 구축하는 데 각 프로토콜이 맡는 독특한 역할을 인지합니다.
모델 컨텍스트 프로토콜(MCP)은 애플리케이션이 LLM에 표준화된 방식으로 컨텍스트와 도구를 제공하도록 하는 오픈 표준입니다. 이를 통해 AI 에이전트가 일관된 방식으로 다양한 데이터 소스와 도구에 연결할 수 있는 “범용 어댑터” 역할을 합니다.
MCP의 구성요소, 직접 API 사용 대비 장점, 그리고 AI 에이전트가 MCP 서버를 어떻게 활용할 수 있는지 예제를 살펴보겠습니다.
MCP는 클라이언트-서버 아키텍처로 작동하며 핵심 구성요소는 다음과 같습니다:
• 호스트(Hosts): MCP 서버와의 연결을 시작하는 LLM 애플리케이션(예: VSCode 같은 코드 편집기)입니다.
• 클라이언트(Clients): 호스트 애플리케이션 내에서 서버와 1:1 연결을 유지하는 구성요소입니다.
• 서버(Servers): 특정 기능을 노출하는 경량 프로그램입니다.
프로토콜에는 MCP 서버가 제공하는 세 가지 핵심 프리미티브가 포함되어 있습니다:
• 도구(Tools): AI 에이전트가 호출하여 작업을 수행할 수 있는 개별 동작이나 기능입니다. 예를 들어, 날씨 서비스는 “날씨 조회” 도구를 제공하거나, 전자 상거래 서버는 “상품 구매” 도구를 제공합니다. MCP 서버는 각 도구의 이름, 설명 및 입력/출력 스키마를 기능 목록에 광고합니다.
• 자원(Resources): MCP 서버가 제공할 수 있는 읽기 전용 데이터 항목 또는 문서로, 클라이언트가 필요할 때 검색할 수 있습니다. 예로는 파일 내용, 데이터베이스 레코드, 로그 파일 등이 있으며, 텍스트(예: 코드 또는 JSON) 또는 바이너리(예: 이미지 또는 PDF) 형식일 수 있습니다.
• 프롬프트(Prompts): 복잡한 워크플로우를 가능하게 하는 사전 정의된 템플릿으로, 제안된 프롬프트를 제공합니다.
MCP는 AI 에이전트에 여러 가지 중요한 이점을 제공합니다:
• 동적 도구 검색: 에이전트는 서버에서 사용 가능한 도구 목록과 그 기능 설명을 동적으로 받을 수 있습니다. 전통적인 API는 통합을 위해 정적 코딩이 필요하며, API 변경 시 코드 수정이 반드시 요구됩니다. MCP는 한 번의 통합으로 여러 변화를 수용할 수 있어 적응성이 뛰어납니다.
• LLM 간 상호운용성: MCP는 다양한 LLM에서 작동하여, 더 나은 성능 평가를 위한 핵심 모델 전환에 유연성을 제공합니다.
• 표준화된 보안: MCP에는 표준 인증 방법이 포함되어 추가 MCP 서버 접근 시 확장성이 향상됩니다. 이는 다양한 전통적 API의 키와 인증 유형을 관리하는 것보다 간단합니다.

사용자가 MCP를 기반으로 작동하는 AI 어시스턴트를 통해 비행기를 예약한다고 상상해봅시다.
연결: AI 어시스턴트(즉, MCP 클라이언트)는 항공사가 제공하는 MCP 서버에 연결합니다.
도구 검색: 클라이언트는 항공사의 MCP 서버에 “어떤 도구를 제공하나요?”라고 묻습니다. 서버는 “항공편 검색”과 “항공편 예약” 같은 도구를 응답합니다.
도구 호출: 사용자가 AI 어시스턴트에 “포틀랜드에서 호놀룰루로 가는 항공편을 검색해 주세요”라고 요청하면, AI 어시스턴트는 자신의 LLM을 활용해 “항공편 검색” 도구를 호출하고 관련 파라미터(출발지, 목적지)를 MCP 서버에 전달합니다.
실행 및 응답: MCP 서버는 래퍼 역할을 하며, 항공사의 내부 예약 API를 실제 호출합니다. 항공편 정보를 받아 (예: JSON 데이터) AI 어시스턴트에게 다시 전달합니다.
추가 상호작용: AI 어시스턴트가 항공편 옵션을 제시합니다. 사용자가 항공편을 선택하면, 어시스턴트는 같은 MCP 서버에서 “항공편 예약” 도구를 호출하여 예약을 완료할 수 있습니다.
MCP가 LLM과 도구 연결에 초점을 맞춘 반면, 에이전트 간 프로토콜(A2A)는 서로 다른 AI 에이전트 간 통신과 협력을 가능하게 하여 한 단계 더 나아갑니다. A2A는 서로 다른 조직, 환경, 기술 스택에 있는 AI 에이전트들을 연결해 공동의 작업을 수행하게 합니다.
A2A의 구성요소와 이점, 그리고 여행 애플리케이션에 적용되는 예제를 살펴보겠습니다.
A2A는 에이전트 간 통신 및 사용자 업무의 하위 작업을 공동으로 완수하도록 하는 것에 집중합니다. 프로토콜의 각 구성요소는 이에 기여합니다:
MCP 서버가 도구 목록을 공유하는 방식과 유사하게, 에이전트 카드는 다음을 포함합니다:
에이전트 실행기는 사용자 대화의 컨텍스트를 원격 에이전트에 전달하는 역할을 합니다. 원격 에이전트는 작업을 이해하기 위해 이를 필요로 합니다. A2A 서버에서 에이전트는 자신의 LLM을 사용해 요청을 해석하고 내부 도구로 작업을 수행합니다.
원격 에이전트가 요청된 작업을 완료하면 결과물인 아티팩트가 생성됩니다. 아티팩트는 에이전트 작업 결과, 완료 항목에 대한 설명, 그리고 프로토콜을 통해 전달된 텍스트 컨텍스트를 포함합니다. 아티팩트 전송 후 원격 에이전트와의 연결은 다음 필요 시까지 종료됩니다.
이 구성요소는 업데이트 처리와 메시지 전달에 사용됩니다. 작동 시간이 긴 작업을 포함하는 에이전틱 시스템에서 작업 완료 전 에이전트 간 연결이 끊어지지 않도록 하기 위한, 특히 운영 환경에서 중요한 역할을 합니다.
• 향상된 협업: 서로 다른 공급업체 및 플랫폼의 에이전트가 상호작용하고, 컨텍스트를 공유하며, 함께 작업할 수 있게 하여 전통적으로 분리된 시스템 간 원활한 자동화를 지원합니다.
• 모델 선택 유연성: 각 A2A 에이전트는 자체적으로 요청을 처리할 LLM을 선택할 수 있으므로, MCP의 단일 LLM 연결과 달리 최적화하거나 미세조정된 모델을 사용할 수 있습니다.
• 내장 인증: 인증이 A2A 프로토콜에 직접 통합되어, 에이전트 상호작용에 강력한 보안 프레임워크를 제공합니다.

여행 예약 시나리오를 다시 확장해 보겠습니다. 이번에는 A2A를 사용합니다.
사용자의 다중 에이전트 요청: 사용자는 “이번 주 다음 주 호놀룰루로의 전체 여행, 항공편, 호텔, 렌터카를 예약해 주세요”라고 “여행 에이전트” A2A 클라이언트/에이전트와 상호작용합니다.
여행 에이전트의 조율: 여행 에이전트가 복잡한 요청을 받고 LLM을 활용해 작업을 분석한 후 전문화된 다른 에이전트들과 상호작용해야 함을 판단합니다.
에이전트 간 통신: 여행 에이전트는 A2A 프로토콜을 사용해 서로 다른 회사에서 생성된 “항공사 에이전트”, “호텔 에이전트”, “렌터카 에이전트”와 연결합니다.
위임된 작업 실행: 여행 에이전트는 “호놀룰루행 항공편 찾기”, “호텔 예약”, “렌터카 대여” 등 구체적 작업을 전문 에이전트에게 전달합니다. 각 전문 에이전트는 자체 LLM과 도구(자체 MCP 서버일 수도 있음)를 활용해 각자의 작업을 수행합니다.
통합 응답: 모든 하위 에이전트가 작업을 완료하면, 여행 에이전트는 결과(항공편 정보, 호텔 확인서, 렌터카 예약)를 모아 채팅 형식의 종합 응답을 사용자에게 반환합니다.
웹사이트는 오랫동안 사용자가 인터넷상의 정보와 데이터를 접하는 주요 수단이었습니다.
NLWeb의 다양한 구성요소, 장점, 그리고 여행 애플리케이션 사례를 통해 NLWeb이 어떻게 작동하는지 살펴보겠습니다.
NLWeb 애플리케이션 (핵심 서비스 코드): 자연어 질문을 처리하는 시스템입니다. 플랫폼의 각 요소를 연결해 응답을 생성합니다. 웹사이트의 자연어 기능을 구동하는 엔진이라 할 수 있습니다.
NLWeb 프로토콜: 웹사이트와의 자연어 상호작용을 위한 기본 규칙 집합입니다. JSON 형식(종종 Schema.org 사용)으로 응답을 반환합니다. HTML이 문서 공유를 가능하게 했듯, “AI 웹”의 단순한 기반을 만들기 위한 목적입니다.
MCP 서버 (모델 컨텍스트 프로토콜 엔드포인트): 각 NLWeb 구성은 MCP 서버 역할도 합니다. 즉, 다른 AI 시스템과 도구(예: “ask” 메서드)와 데이터를 공유할 수 있습니다. 이는 웹사이트의 콘텐츠와 기능을 AI 에이전트가 사용할 수 있게 하여, 사이트가 더 넓은 “에이전트 생태계”의 일부가 되도록 합니다.
임베딩 모델: 웹사이트 콘텐츠를 벡터(임베딩)라고 하는 수치 표현으로 변환하는 데 사용됩니다. 이 벡터는 컴퓨터가 의미를 비교하고 탐색할 수 있도록 의미를 담고 있습니다. 이 벡터는 특수 데이터베이스에 저장되며, 사용자는 원하는 임베딩 모델을 선택할 수 있습니다.
벡터 데이터베이스 (검색 메커니즘): 웹사이트 콘텐츠의 임베딩을 저장하는 데이터베이스입니다. 누군가 질문하면 NLWeb은 벡터 데이터베이스를 조회해 가장 관련 있는 정보를 빠르게 찾아냅니다. 유사도를 기준으로 순위가 매겨진 가능한 답변 목록을 제공합니다. NLWeb은 Qdrant, Snowflake, Milvus, Azure AI Search, Elasticsearch 등 다양한 벡터 저장 시스템과 함께 작동합니다.

다시 여행 예약 웹사이트를 생각해보겠습니다. 이번에는 NLWeb으로 구동됩니다.
데이터 수집: 기존 여행 웹사이트의 상품 카탈로그(예: 항공편 목록, 호텔 설명, 여행 패키지)가 Schema.org 형식이나 RSS 피드를 통해 로드됩니다. NLWeb의 도구들이 이 구조화된 데이터를 수집하고 임베딩을 생성하여 로컬 또는 원격 벡터 데이터베이스에 저장합니다.
자연어 쿼리 (사람): 사용자가 메뉴를 탐색하는 대신 채팅 인터페이스에 “다음 주 호놀룰루에서 수영장이 있는 가족 친화적인 호텔 찾아줘”라고 입력합니다.
NLWeb 처리: NLWeb 애플리케이션이 이 쿼리를 받아 LLM에 전달해 이해하고 동시에 벡터 데이터베이스에서 관련 호텔 목록을 검색합니다.
정확한 결과: LLM은 데이터베이스 검색 결과를 해석해 “가족 친화적”, “수영장”, “호놀룰루” 기준에 가장 적합한 호텔을 식별하고, 자연어 응답으로 포맷합니다. 중요한 점은 응답이 웹사이트 카탈로그의 실제 호텔을 참조하며, 임의 정보가 아님을 보장합니다.
AI 에이전트 상호작용: NLWeb이 MCP 서버 역할을 하므로, 외부 AI 여행 에이전트도 이 웹사이트의 NLWeb 인스턴스에 연결할 수 있습니다. AI 에이전트는 ask MCP 메서드를 사용해 직접 웹사이트에 질의할 수 있습니다: ask("호텔에서 추천하는 호놀룰루 지역의 비건 친화적 레스토랑이 있나요?"). NLWeb 인스턴스는 이를 처리하고(관련된 레스토랑 데이터가 로드된 경우) 구조화된 JSON 응답을 반환합니다.
Microsoft Foundry Discord에 참여하여 다른 학습자들과 만나고, 오피스 아워에 참석하며, AI 에이전트 관련 질문을 해결하세요.
면책 조항: 이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 기하기 위해 노력하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 유의하시기 바랍니다. 원본 문서의 원어본이 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문가의 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다.