ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 딥리서치로 찾아본, 모델 컨텍스트 프로토콜 (MCP) 심층 분석
    AI 2025. 4. 14. 09:00

    1. MCP의 정의 및 목적

    모델 컨텍스트 프로토콜(Model Context Protocol, MCP)는 대형 언어모델(LLM)을 외부 데이터 소스나 도구와 연결하기 위한 개방형 표준 인터페이스입니다 (Introducing the Model Context Protocol \ Anthropic) (Model context protocol (MCP) - OpenAI Agents SDK). 2024년 Anthropic사가 처음 제안하여 오픈 소스로 공개했으며, 쉽게 말해 “AI를 위한 USB-C 포트”에 비유됩니다 (Model context protocol (MCP) - OpenAI Agents SDK). 이는 다양한 주변기기를 하나의 규격으로 연결하듯, MCP를 통해 AI 모델이 다양한 데이터베이스, 파일 시스템, 웹 서비스 등의 외부 정보에 표준화된 방식으로 접근할 수 있다는 의미입니다 (Introduction - Model Context Protocol) (What is Model Context Protocol (MCP): Explained in detail - DEV Community).

    MCP가 등장한 배경에는 LLM의 고립 문제가 있습니다. 최신 GPT나 Claude 같은 모델들도 본래 자신의 사전 학습 데이터와 사용자 프롬프트에만 의존하며, 실시간 데이터나 사내 비공개 정보에 직접 접근하지 못했습니다 (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium) (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium). 기존에는 이 한계를 극복하기 위해 각 데이터 소스마다 일회용 맞춤 통합 코드(스크립트나 API 호출)를 작성해야 했는데, 이는 비용도 많이 들고 확장성도 떨어졌습니다 (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium). 예를 들어 LLM이 사내 DB에서 정보를 가져오려면 별도의 플러그인이나 API 연동을 개발해야 했고, 다른 시스템(예: Slack, GitHub 등)을 붙일 때마다 매번 새로운 코드를 작성해야 했습니다.

    MCP의 목적은 이러한 중복 노력을 줄이고 한번의 통합으로 여러 곳에 활용할 수 있는 범용 커넥터를 만드는 것입니다. Anthropic 공식 설명에 따르면 MCP는 AI 시스템과 데이터 소스를 연결하는 보편적 표준을 제공하여, 과거의 파편화된 통합들을 하나의 프로토콜로 대체한다고 합니다 (Introducing the Model Context Protocol \ Anthropic). 즉 한 가지 MCP 규칙만 따르면 어떤 LLM 애플리케이션이든 어떤 데이터 소스든 상호 연동이 가능해집니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 이는 마치 IDE에서 언어 지원을 표준화한 LSP(Language Server Protocol)와 같으며 (What is Model Context Protocol (MCP): Explained in detail - DEV Community), MCP를 통해 AI 에이전트 개발 생태계에 일관성상호운용성을 부여하는 것이 MCP의 핵심 목표입니다. 또한 MCP는 모델과 데이터 사이의 연결을 조율하고 보호하는 역할도 의도하고 있어, 사용자 데이터가 외부로 무분별하게 공개되지 않으면서도 모델이 필요한 정보에 안전하게 접근하도록 돕습니다 (Introduction - Model Context Protocol).

    2. MCP의 작동 방식

    MCP는 클라이언트-서버 아키텍처로 동작하며, LLM 호스트 애플리케이션MCP 서버MCP 프로토콜을 통해 정보를 주고받는 형태를 취합니다 (Introduction - Model Context Protocol). 쉽게 말해, 챗봇이나 AI 비서와 같은 호스트 프로그램이 MCP 클라이언트의 역할을 하여 외부의 MCP 서버(데이터 제공자 역할)에 연결하고, 거기서 필요한 맥락(context)을 가져와 모델에게 전달하는 구조입니다 (Introduction - Model Context Protocol). MCP 프로토콜 자체는 JSON 기반의 메시지 교환 규칙으로 정의되어 있으며, 요청-응답(request/result)알림(notification) 형태의 표준화된 메시지 형식을 사용합니다 (Core architecture - Model Context Protocol) (Core architecture - Model Context Protocol). 또한 통신 경로로 표준 입출력(stdio) 또는 HTTP (Server-Sent Events 기반) 전송을 지원하여, 로컬 프로세스로 실행되든 원격 웹 서버로 배포되든 동일한 방식으로 동작할 수 있습니다 (Model context protocol (MCP) - OpenAI Agents SDK). 초기 연결 시에는 버전 및 기능 협의를 위한 initialize 교환이 이뤄지고 나면, 이후로는 양측이 자유롭게 요청과 응답을 주고받는 식으로 프로토콜이 진행됩니다 (Core architecture - Model Context Protocol) (Core architecture - Model Context Protocol).

    (image) 그림: MCP 아키텍처 개념도. MCP는 클라이언트-서버 분리된 구조로, 예를 들어 개발자용 에디터인 Cursor와 같은 호스트 애플리케이션(MCP 클라이언트)이 MCP 서버를 통해 GitHub나 Slack, 로컬 파일시스템 등의 외부 시스템 API에 접근하는 모습이다. LLM 애플리케이션(호스트)은 MCP 프로토콜로 이러한 서버에 질의하고 필요한 정보를 JSON 형태로 받아와 답변 생성에 활용한다. 각 MCP 서버는 자신이 연결된 서비스의 고유 API를 내부적으로 호출하지만, 외부에는 표준화된 MCP 인터페이스로 동작하므로 호스트 입장에서는 항상 동일한 방식으로 도구를 이용할 수 있다.

    MCP의 동작 절차를 간략히 살펴보면 다음과 같습니다. 먼저 LLM을 구동하는 호스트 애플리케이션(예: Claude Desktop, IDE 플러그인 등)은 필요한 MCP 서버에 연결을 확립합니다. 이때 MCP 클라이언트 모듈이 서버와 통신 채널(stdio 파이프나 HTTP SSE)을 열고, 프로토콜 버전 협의 등 초기화를 수행합니다 ( Understanding Model Context Protocol: A Deep Dive into Multi-Server LangChain Integration | by Plaban Nayak | The AI Forum | Mar, 2025 | Medium). 연결되면 호스트 쪽에서는 해당 서버가 제공하는 기능 목록을 list_tools 등의 메소드를 통해 조회할 수 있습니다 (Model context protocol (MCP) - OpenAI Agents SDK). 예컨대 Google Drive MCP 서버라면 “파일 검색”, “파일 내용 읽기”와 같은 도구(툴) 목록을 반환할 것입니다. 이렇게 해서 MCP 호스트는 서버의 도구들을 인식하게 되고, 이후 사용자의 질의 내용에 따라 LLM이 특정 도구를 쓰기로 결정하면 호스트가 해당 MCP 서버에 call_tool 요청을 보내 실제 작업을 수행합니다 (Model context protocol (MCP) - OpenAI Agents SDK). 서버는 요청을 받아 내부에서 지정된 작업(API 호출이나 데이터베이스 질의 등)을 실행하고, 그 결과를 JSON 형태로 응답합니다 (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium) (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium). 호스트 애플리케이션은 이 응답 데이터를 받아 LLM에게 추가 컨텍스트로 제공하거나, 사용자에게 바로 결과를 보여줄 수도 있습니다. 결국 LLM은 기존에 알지 못했던 새로운 외부 정보를 컨텍스트로 얻게 되므로 더 정확하고 최신 상태에 맞는 답변을 생성할 수 있게 됩니다.

    예를 들어, 사용자가 “내 드라이브에 있는 최신 보고서의 요점을 알려줘”라고 묻는 경우를 생각해봅시다. MCP를 지원하는 AI 비서라면, 우선 Google Drive MCP 서버에 연결하여 search_file 같은 도구로 “최신 보고서”에 해당하는 파일을 찾고, read_file 도구를 호출해 그 파일 내용을 가져옵니다. 그런 다음 그 내용을 요약하도록 LLM에게 프롬프트를 구성하여 답변을 생성합니다. 이 모든 과정이 통일된 MCP 절차로 이루어지기 때문에, 비서는 Google Drive에 대해 미리 특수하게 짜여진 코드가 없어도 MCP 표준만으로 필요한 데이터를 얻어 활용할 수 있습니다.

    한편, MCP 프로토콜은 양방향 통신을 지원하기 때문에, 필요에 따라 MCP 서버가 호스트에게 알림(notification)을 보내는 것도 가능합니다 (Core architecture - Model Context Protocol). 예를 들어 진행률 업데이트나 실시간 이벤트 통지를 서버->클라이언트로 전달할 수 있으며, 스트리밍이 필요한 경우 SSE 채널을 통해 부분적인 응답 전송도 할 수 있습니다. 이러한 세밀한 프로토콜 설계 덕분에 MCP는 단순한 질문-응답 이상의 풍부한 상호작용을 지원합니다 (JSON-RPC 2.0 표준 기반) (Core architecture - Model Context Protocol) (Core architecture - Model Context Protocol).

    # MCP 클라이언트를 통해 MCP 서버를 사용하는 간단한 예 (개념적 코드)
    mcp_client = MCPClient.connect("http://localhost:8000/my_mcp_server")  # MCP 서버 연결
    tools = mcp_client.list_tools()
    print("사용 가능한 도구 목록:", tools)  
    # 예시 출력: ["search_files", "read_file", "write_note"]
    
    # MCP 서버의 'read_file' 도구를 호출하여 파일 내용 가져오기
    result = mcp_client.call_tool("read_file", {"path": "/reports/2025_summary.txt"})
    print(result.get("content", ""))  
    # 예시 출력: "2025년 요약 보고서 내용 ..." (서버가 반환한 파일 내용)

    위 예시는 MCP 클라이언트를 통해 파일 시스템 MCP 서버에 연결하고 파일을 읽는 과정을 나타낸 가상 코드입니다. 실제 구현에서는 비동기로 동작하며, OpenAI 에이전트 SDK 등에서는 list_tools()를 호출해 도구 목록을 받아오고 LLM이 선택한 함수를 call_tool()로 실행하는 식으로 처리됩니다 (Model context protocol (MCP) - OpenAI Agents SDK).

    3. MCP의 기술 구성요소

    MCP 생태계를 구성하는 핵심 요소로는 컨텍스트 관리, 컨텍스트 윈도우 조절, 멀티 에이전트 오케스트레이션 등을 들 수 있습니다. MCP는 이러한 기능들을 염두에 두고 설계되어 LLM 기반 시스템의 지능적인 동작상태 유지를 도와줍니다.

    이 밖에도 MCP의 기술 요소로는 도구와 리소스의 명세화(MCP 서버는 자신이 제공하는 API 기능들을 tools로, 읽기 전용 데이터 자산들을 resources로 구분하여 기술) (What is Model Context Protocol (MCP): Explained in detail - DEV Community), 그리고 프롬프트 템플릿/샘플링 설정 공유(MCP 서버가 LLM에게 제안할 프롬프트 양식이나 권장 토큰 샘플링 파라미터 등을 제공 가능) 등이 있습니다. 이러한 요소들은 MCP 규격 스키마에 정의되어 있으며, 클라이언트는 표준 메소드를 통해 서버의 지원 기능과 제약을 발견하고 활용할 수 있습니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 정리하면, MCP는 단순한 데이터 통신 규약을 넘어 LLM 생태계의 작동방식 전체를 표준화하려는 시도로서, 맥락 유지, 도구 사용, 멀티에이전트 협업에 대한 모범구조를 제시하고 있습니다.

    4. MCP 도입 사례

    MCP는 출시 이후 다양한 오픈소스 프로젝트와 기업들에서 관심을 보이며 도입되고 있습니다. Anthropic은 MCP 개념의 창시자로서 자사의 최신 모델인 Claude 3.5를 MCP 활용에 최적화했고, 특히 Claude Desktop 애플리케이션에 MCP를 지원하여 손쉽게 외부 MCP 서버들을 연결해 쓸 수 있는 환경을 제공했습니다 (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium). 현재 Claude Desktop은 간단한 설정만으로도 로컬/원격 MCP 서버들을 붙여 쓸 수 있어 MCP 통합의 대표적 사례로 꼽히며, 이와 유사한 클라이언트로 Cursor IDE, Windsurf, Cline 등이 등장하고 있습니다 (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium) (Understanding Model Context Protocol (MCP) | by Ashraff Hathibelagal | Predict | Mar, 2025 | Medium).

    한편, OpenAI도 2024년 말 발표한 OpenAI Agents SDK에 MCP 지원을 포함시켰습니다. 이를 통해 OpenAI의 에이전트 프레임워크 안에서도 MCP 서버로 구현된 다양한 도구들을 곧바로 붙여 활용할 수 있게 되었습니다 (Model context protocol (MCP) - OpenAI Agents SDK). OpenAI 측 문서에서는 MCP를 “LLM에 도구와 컨텍스트를 제공하는 방식”으로 설명하며, 표준에 맞는 MCP 서버라면 누구나 에이전트의 tool로 등록해 사용할 수 있다고 안내하고 있습니다 (Model context protocol (MCP) - OpenAI Agents SDK) (Model context protocol (MCP) - OpenAI Agents SDK). 실제 Agents SDK에서는 위에서 소개한 list_tools()call_tool() 같은 인터페이스로 MCP 서버와 통신하여, ChatGPT 같은 모델이 MCP 도구들을 인지하고 호출하게 합니다 (Model context protocol (MCP) - OpenAI Agents SDK).

    AI 응용 개발 프레임워크 쪽에서도 MCP를 채택하려는 움직임이 있습니다. 대표적으로 LangChain과 같은 에이전트 오케스트레이션 프레임워크는 기존에 자체 플러그인 체계를 사용해 왔지만, MCP 등장 이후 MCP 표준을 수용하여 호환성을 높이는 방향을 모색하고 있습니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). MCP는 특정 벤더에 종속되지 않기 때문에, LangChain처럼 다양한 LLM과 도구를 아우르는 프레임워크에서도 공통 분모로 삼기 좋다는 평가입니다. 실제로 LangChain 커뮤니티에서도 MCP 서버들을 LangChain 에이전트의 Tool로 등록하는 실험들이 이루어지고 있어, 향후 MCP가 에이전트 개발의 기본 인프라로 자리잡을 가능성을 보여줍니다.

    또한 여러 기업들이 자사 서비스에 MCP를 적용하기 시작했습니다. Block(前 Square)Apollo는 초기 MCP 도입 사례로 언급되며, 내부 시스템에 MCP를 통합해 운영 효율을 높이고 있습니다 (Introducing the Model Context Protocol \ Anthropic). 개발자 도구 분야의 Replit, Zed 편집기, Sourcegraph, Codeium 등도 MCP를 활용한 기능 향상을 연구 중인데, 예를 들어 코드 자동완성 AI가 MCP를 통해 저장소를 더 잘 검색하거나 관련 문서를 읽어와서 코드 컨텍스트를 더 풍부하게 이해하도록 시도하고 있습니다 (Introducing the Model Context Protocol \ Anthropic).

    오픈소스 커뮤니티에서도 MCP 생태계를 확장하는 노력이 활발합니다. Anthropic이 공개한 예시 MCP 서버 모음 저장소에는 Google Drive, Slack, GitHub, Git 저장소, Postgres DB 등 인기 시스템과 연동되는 MCP 서버 구현체들이 이미 다수 공개되어 있습니다 (Introducing the Model Context Protocol \ Anthropic). 개발자는 이들을 그대로 활용하거나 커스터마이징하여 쓸 수 있고, 혹은 새로운 MCP 서버를 직접 작성하여 공개할 수도 있습니다. SDK도 Python, TypeScript, Java, C# 등으로 제공되어 개발 편의성을 높였습니다 (Introduction - Model Context Protocol). 이러한 MCP 서버 마켓플레이스가 형성됨에 따라, 과거라면 하나하나 만들었어야 할 통합 도구들을 이제는 필요한 것을 골라 플러그인처럼 추가하는 시대가 열리고 있습니다 ( Understanding Model Context Protocol: A Deep Dive into Multi-Server LangChain Integration | by Plaban Nayak | The AI Forum | Mar, 2025 | Medium) ( Understanding Model Context Protocol: A Deep Dive into Multi-Server LangChain Integration | by Plaban Nayak | The AI Forum | Mar, 2025 | Medium). 다양한 서비스 제공업체들도 공식 MCP 서버를 내놓는 추세가 이어진다면, AI 어시스턴트 사용자들은 손쉽게 원하는 기능을 추가하고 제거할 수 있는 모듈식 생태계의 이점을 누릴 것으로 전망됩니다.

    5. MCP의 장점과 한계

    MCP가 주목받는 이유는 기존 방식에 비해 많은 장점을 제공하기 때문입니다. 동시에 해결해야 할 한계나 과제도 아직 존재합니다. 아래는 MCP의 주요 강점과 현재 고려되고 있는 한계점들입니다.

    ◎ 주요 장점:

    ◎ 주요 한계:

    • 인증 및 권한 관리 부재: 현재 MCP 스펙에는 표준화된 인증(authentication) 방법이 정의되어 있지 않습니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 다시 말해, MCP 서버에 접근할 때의 사용자 인증이나 권한 부여는 프로토콜 레벨에서 다루지 않고 구현자가 각자 해결해야 합니다. 이로 인해 서버마다 인증 방식이 제각기 될 수 있고, 잘못하면 보안상 허점이 생길 우려도 있습니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 예를 들어 어떤 MCP 서버는 API 키로 인증하고 다른 하나는 OAuth로 한다면 클라이언트 입장에서 일관성이 떨어집니다. 향후 MCP 표준에 이 부분이 추가되거나, 공통 인증 플러그인 등이 필요할 것으로 보입니다. 현재는 일부 업체들이 MCP 서버에 자체 인증 계층을 덧붙여 제공하기도 하지만(예: Composio MCP의 OAuth 지원 (What is Model Context Protocol (MCP): Explained in detail - DEV Community)), 공식적인 해결책은 아닌 상태입니다.
    • 생태계 성숙도: MCP는 아직 등장한 지 얼마 안 된 신생 표준이므로, 활용 가능한 MCP 서버들의 종류나 안정성이 한정적입니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 인기 서비스 몇 가지(Google, Slack 등)를 제외하면 공식 MCP 서버가 없는 경우도 많고, 커뮤니티가 자발적으로 만든 서버도 성능이나 유지보수 면에서 검증이 더 필요합니다. 예컨대 기업에서 자주 쓰는 ERP 시스템이나 특수한 도구의 MCP 서버는 아직 없을 수 있습니다. 시간이 지나 표준이 안정되고 수요가 늘면 개선되겠지만, 2025년 초 현재로서는 “초기 단계”라는 점을 인지해야 합니다.
    • 추가 복잡도 및 오버헤드: MCP를 도입하면 시스템 아키텍처에 추가 컴포넌트(외부 프로세스)가 생기므로, 단순히 한 프로세스에서 모든 것을 처리하는 것보다 구조가 복잡해집니다. 즉 LLM 외에 MCP 서버 프로세스를 관리해야 하고, 네트워크 통신도 오간다는 뜻입니다. 잘 설계하면 문제없지만, 잘못하면 레イ턴시(지연)가 커지거나 오류 추적이 어려워질 수 있습니다. 다만 이러한 오버헤드는 대부분의 에이전트 도구 호출 시스템에도 공통으로 존재하며, MCP는 오히려 통일된 관리로 중복을 줄여주는 면이 있으므로 장점이 단점을 상쇄한다고 볼 수 있습니다.
    • 완벽한 솔루션은 아님: MCP는 기존에 없던 기능 자체를 새로 만든다기보다는 흩어져 있던 기법들을 표준으로 묶은 것에 가깝습니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 따라서 MCP 없이는 불가능했던 것이 가능해졌다기보다, 없던 때에도 가능은 했지만 더 어렵고 비효율적이던 것을 효율적으로 만들었다고 보는 편이 맞습니다. 실제로 MCP 도입 전에도 OpenAI의 함수 호출, LangChain의 도구 체인 등 유사한 개념의 도구 사용은 존재했습니다. MCP는 그것들을 아우르는 공용 언어를 정의한 것이므로 혁신적이라기보다 실용적인 표준화에 가깝습니다 (What is Model Context Protocol (MCP): Explained in detail - DEV Community). 그러므로 현재 시스템이 단일 목적에 특화되어 잘 돌아가고 있다면 굳이 MCP로 바꿔야 할 필요는 없을 수도 있습니다. 다만 MCP 생태계가 성장함에 따라 향후에는 표준을 따르지 않은 시스템이 오히려 통합에서 소외될 가능성이 있으므로, 장기적인 호환성을 위해 추후 도입을 검토하는 것이 권장됩니다.

    마지막으로, MCP가 해결하려는 도전 과제 중에는 LLM의 긴 맥락 한계 문제자율 에이전트의 안전성 등이 있습니다. MCP는 맥락을 외부 저장하고 압축하는 등으로 모델의 한계를 보완하지만, 근본적으로 아주 장기간의 대화나 대용량 지식을 완벽히 기억하게 하는 연구는 지속되고 있습니다. 또한 MCP를 통해 모델의 행동력이 높아질수록, 잘못된 도구 사용이나 의도치 않은 정보 노출을 막는 윤리적 가드레일도 중요해집니다 ( Understanding Model Context Protocol: A Deep Dive into Multi-Server LangChain Integration | by Plaban Nayak | The AI Forum | Mar, 2025 | Medium). 다행히 MCP의 맥락 기록 투명성은 이후 감사(audit)를 가능케 해 책임 소재를 파악하기 쉽고, 민감한 데이터는 맥락 중에 격리하여 필요할 때만 제공하는 식으로 프라이버시를 지킬 수 있다고 합니다 ( Understanding Model Context Protocol: A Deep Dive into Multi-Server LangChain Integration | by Plaban Nayak | The AI Forum | Mar, 2025 | Medium). 결국 MCP는 LLM 활용의 범위를 넓혀주면서도, 동시에 이에 따르는 새로운 문제들을 관리하기 위한 체계까지 고민하는 총체적 접근이라 할 수 있습니다.

    以上の内容을 종합하면, Model Context Protocol은 LLM 시대의 맥락 연결성 문제를 풀기 위한 중요한 진화 단계입니다. MCP 덕분에 AI는 더 풍부한 정보를 바탕으로 작업하고, 개발자는 더 빠르게 다양한 통합을 이룰 수 있게 되었습니다. 향후 표준의 성숙과 함께 MCP가 AI 에이전트의 기본 인프라로 자리잡으면, 지금보다 훨씬 유연하고 강력한 AI 시스템을 구축할 수 있을 것으로 기대됩니다. (Introducing the Model Context Protocol \ Anthropic) (What is Model Context Protocol (MCP): Explained in detail - DEV Community)

    댓글

Designed by Tistory.