MCP란 무엇인가? Anthropic이 제안한 AI 통신 프로토콜 정리
1. MCP란?
Model Context Protocol
2024년 11월 ‘앤트로픽(Anthropic)’이 발표한 오픈 소스 프로토콜
LLM이 외부 애플리케이션, 데이터 소스, 도구들과 안전하고 일관된 방식으로 상호작용할 수 있도록 설계된, AI 세계의 ‘HTTP와 같은’ 개방형 통신 프로토콜
LLM 기반 시스템이 “무엇을 해야하는가”를 명확하게 이해할 수 있도록, 사람, APP, 도구가 모델에 전달하는 모든 맥락(Context)들을 구조화하여 기술하는 명세
왜 Anthropic는 MCP를 만들었는가
앤트로픽은 클로드(Claude)를 개발한 인공지능 스타트업으로, OpenAI에서 퇴사한 인물들이 설립한 회사
클로드는 ChatGPT같은 인공지능 대화형 AI 비서 서비스이며, 상대적으로 빠르다는 장점이 있음
앤트로픽은 MCP를 USB-C 타입에 빗대어 표현하고 있음
USB-C가 다양한 주변기기와 액세서리에 기기를 연결하는 표준화된 방법을 제공하는 것처럼, MCP는 AI 모델을 다양한 데이터 소스와 도구에 연결하는 표준화된 방법을 제공합니다.
지능형 에이전트가 다양한 데이터 소스와 도구에 연결되는 방식을 표준화하여,
임시방편적인 커스텀 코딩이나 플러그인에 대한 의존의 필요성을 줄인다는 것이 MCP 도입의 의의라고 함
기존의 성공한 프로토콜인 LSP를 레퍼런스로 구축했다는점, SDK, 서버 등을 함께 제공한다는 점 등
개방형 표준으로서 여러가지 강점이 있어 업계 표준으로 자리 잡아가고 있다고 함
특히 오픈소스로 공개되어, 누구나 이 프로토콜을 활용해 개발할 수 있으며, 상당수 기업들이 MCP를 표준으로 채택한 상태라고 한다
마이크로스프트는 자사 브라우저 자동화 기술 래퍼인 Playwright-MCP를 채택했으며,
25년 3월 경쟁사인 OpenAI또한 MCP를 공식적으로 지원하기로 했다고 함
2. MCP 핵심 구성요소
클라이언트-서버 아키텍처를 기반으로 하며, AI 모델과 외부 데이터 소스간의 통신을 돕는 구조로 설계됨
크게 세가지 핵심 구성 요소로 이루어짐
- 호스트
- AI 애플리케이션의 컨테이너이자 조정자 역할
- 여러 클라이언트의 인스턴스 관리. 연결 권한 및 생명주기 제어
- 클라이언트간 컨텍스트 집계 관리
- MCP를 통해 데이터에 액세스하려는 Claude Desktop, IDE 또는 AI 도구와 같은 프로그램들
- MCP 클라이언트
- 서버와 1:1 연결을 유지하는 프로토콜 클라이언트
- 양방향으로 프로토콜 메시지를 라우팅
- MCP 서버
- 표준화된 모델 컨텍스트 프로토콜을 통해 각각 특정 기능을 노출하는 경량 프로그램
- 특화된 컨텍스트와 기능을 제공
- 로컬 데이터 소스 : MCP 서버가 안전하게 액세스 할 수 있는 컴퓨터의 파일, DB, 서비스 등
- 원격 서비스 : MCP 서버가 연결할 수 있는 인터넷을 통해 사용 가능한 외부 시스템
1
2
3
4
5
6
7
8
9
10
1. 호스트 애플리케이션이 MCP 클라이언트를 생성함
2. 클라이언트는 MCP 서버와 연결을 설정함. 프로토콜 버전, 기능, 권한등을 설정
3. 이후 클라이언트와 서버가 연결되어 컨텍스트 교환 수행
4. AI 모델이 특정 작업을 수행하기 위해 도구 호출
- 클라이언트는 서버에 도구 호출 요청을 전송
- 서버는 요청된 작업을 수행하고 결과를 클라이언트에 반환함
5. 결과 처리
- 클라이언트는 서버로부터 받은 결과를 호스트 프로세스에 전달
- 호스트 프로세스는 이 결과를 AI 모델에게 제공
- AI 모델은 이 정보를 바탕으로 응답을 생성
3. MCP의 주요 특징
1. 구조화된 문맥 전달
기존 LLM 방식은 사용자가 모델에게 텍스트 기반의 프롬프트를 전달하는 방식이였다
AI에게 긴 텍스트 프롬프트를 하나로 전달해야 했기 때문에,
- 사용자의 감에 크게 의존하여 비일관적이고,
- 반복이 불가능하여 유지보수가 불가능하며,
- 중요한 정보와 부수적인 정보를 구분하기 어렵다는 문제가 있었다
MCP는 구조화된 JSON 형식을 전달하는 방식이므로, 위 문제들을 해결할 수 있다
- 명시적이고, 기계가 이해 가능한 구조로 모델에 전달하기 때문에
- 확장성, 유지보수성, 자동화 가능성이 향상됨
2. 모델 및 툴 독립성
기존 모델도 AI가 계산기, 검색, API 호출등은 가능했지만, 이를 사용하려면
LangChain, LangGraph와 같은 별도의 프레임워크와 복잡한 설정이 필요했는데
MCP는 복잡한 코딩 없이도 기능을 확장하고, 다양한 모델을 이용할 수 있음
3. 확장성과 재사용성이 좋음
다양한 MCP 서버들이 계속해서 추가되고 있어서 사용자들은 새로운 기능을 쉽게 통합하고 활용할 수 있음
또한, MCP 기반으로 개발된 코드는 다양한 AI 모델과 서비스에서 재사용할 수 있어,
여러 프로젝트간에 코드를 효율적으로 공유하고 활용할 수 있다
4. MCP의 한계
1. 프로토콜 보안 문제
- 초기에는 인증이 아예 없었고, 현재도 OAuth 방식도 복잡하고 일관성이 부족함
- STDIO 방식을 이용하여 MCP 서버가 악성 코드 실행 통로가 될 수 있음
- 사용자 입력을 그대로 실행하는 구현 사례 존재(RCE 가능성)
2. 비용 문제
- 별도의 MCP 서버를 요구하므로 아키텍처가 복잡해지고, 단순한 AI 사용 사례에선 오히려 과도한 API 오버헤드가 발생할 수 있음
- 도구 호출이 늘어나면서 토큰 소비와 서버 자원 비용이 증가하고, 응답 시간도 길어질 수 있습음
3. 사용 신뢰성 및 통제 한계
- LLM이 도구의 위험도를 제대로 인식하지 못해, 파일 삭제같은 민감한 작업을 무분별하게 실행할 수 있음
- 최신 LLM 조차 복잡한 툴 사용 성공률이 낮고, 모델과 도구 간의 호환성 이슈로 실패할 확률도 높음
5. MCP 응용 사례
- 업무 자동화 : Google Calendar, Google Meet, Slack, Notion, Jira, DB 등과 연결하여 회의 요약, 이슈 등록, 보고서 생성
- 코딩 보조 도구 : MCP와 IntelliJ, VSCode, Cursor IDE 등 다양한 IDE에서 MCP 지원
지원 도구의 확장에 따라 다양한 응용 사례들이 계속해서 나오고 있음
다음 포스팅에서는 Claude와 Obsidian을 연결해서 사용하는 재밌어보이는 방법이 있길래 이걸 시도해보고 정리할 예정
참고자료
https://docs.anthropic.com/ko/docs/agents-and-tools/mcp
https://modelcontextprotocol.io/introduction
https://portkey.ai/blog/model-context-protocol-for-llm-appls
https://dytis.tistory.com/112
https://www.magicaiprompts.com/docs/claude/how-to-use-mcp/
https://digitalbourgeois.tistory.com/1071