Model Context Protocol (MCP)

saewoohan·2025년 3월 26일
2

AI

목록 보기
1/3
post-thumbnail

배경

AI 어시스턴트들이 점점 더 똑똑해지고 있지만, 정작 외부 데이터와 제대로 연결되지 못한다면 완벽한 능력을 발휘할 수 없다. ChatGPT, Claude, Cursor 등은 강력한 추론 능력을 갖고 있지만, 각각의 데이터 소스나 도구에 수작업으로 통합하지 않으면 문맥을 제대로 이해할 수 없다.

그렇기 때문에 효율적으로 외부 데이터와 연동되는 것이 점점 더 중요해지고 있다. 실제로 Chat GPT같은 경우에는 자체적으로 외부 어플리케이션과 연동할 수 있는 다양한 기능을 제공하고 있는 모습을 볼 수 있다.

또한, 기존 AI 프레임워크(LangChain, LangGraph)는 각자의 생태계 내에서만 작동하는 제한된 도구들을 제공했었다. 이 때문에 통합 과정도 복잡했고, 확장도 제한적이였으며, 도구 개발이 특정 프레임워크에 종속되어 있었다.


MCP의 등장

Model Context Protocol(MCP)은 2024년 말에 AI 기술 혁신의 핵심 트렌드로 떠오른 새로운 표준 프로토콜이다. 엔트로픽은 MCP를 USB-C 포트에 비유했는데, 이는 다양한 기기와 연결할 수 있는 통일된 인터페이스처럼, AI가 다양한 도구와 데이터를 연결하는 관문이 될 수 있다는 의미이다.

하지만, 등장 초기에는 큰 주목을 받지는 못했는데 아래 Google Trends - Model Context Protocol 를 살펴보면 실제 MCP가 등장한 시점에 잠깐 치솟을 뿐이었고 최근에야 엄청난 인기를 얻고 있는 것을 볼 수 있다.

MCP는 말 그대로 단순한 통신 Protocol이기 때문에, 사실 그 자체로는 많은걸 할 수는 없다. 실제 이전에도 LangChain같은 툴을 사용할 수 있는 개발자들은 알아서 잘 통합해서 사용하고 있었기 때문에 필요성이 크게 없었다.

실제 MCP가 처음 등장했을때의 Hacker News 반응에서도 “기술적으로 흥미롭지만 혁신은 아니다", "생태계가 뒷받침돼야 한다" 등 회의적인 의견들이 존재함을 볼 수 있다.

하지만, 최근 커서와 같은 큼지막한 AI Agent들이 MCP를 지원하기 시작하면서 다시 크게 주목받게 되었다. 단순히 프로토콜에 불과하기에 실제로 이를 호환시켜주지 않는다면 그 자체로는 크게 능력이 없기 때문이었다.

또한, MCP는 사용이 정말 간편하다. 기존에는 개발자가 직접 API를 설정해야 했는데, MCP는 쉽게 MCP 서버를 설치하고 연결할 수 있도록 지원하여 개발관련 지식이 없어도 쉽게 AI Agent를 확장할 수 있도록 지원한다.


MCP의 주요 특징

오픈 소스

MCP는 오픈 소스 프로토콜로서 누구나 자유롭게 사용하고 개선할 수 있다. 엔트로픽에서 만들었지만 Claude와 같은 특정 모델에만 국한되지 않고 어떠한 AI 시스템에서도 사용 가능하다.

양방향 연결

기존의 API 호출 방식과는 다르게, AI 모델과 지속적으로 연결된 상태에서 서로 정보를 주고 받는다.

범용성 및 표준화

MCP는 다양한 데이터 소스와 도구를 하나의 표준 프로토콜로서 연결을한다. 즉, 별도의 커넥터를 개발자가 만들 필요 없이 단일 프로토콜로 연결이 가능하다.

보안 중심 설계

MCP는 AI 모델과 도구 간의 안전하고 신뢰할 수 있는 연결을 제공하며, 사용자의 동의와 제어를 최우선으로 고려하여 데이터 프라이버시를 보호한다.

JSON-RPC 기반 통신

표준 JSON-RPC 2.0 메시지 포맷을 사용하고, 상태 기반 연결 관리를 제공한다.

유연한 확장성

다양한 리소스 타입을 지원하고, 커스텀 도구 및 프롬프트 정의를 가능하게 하며, 표준화된 방식으로 기능 확장을 지원한다.


MCP의 구조

MCP의 구조는 위 그림과 같이 크게 MCP Server, MCP hosts, MCP clients로 이루어져 있다.

MCP hosts

Claude Desktop, GPT Desktop, Cursor와 같은 LLM 어플리케이션으로, 여러 MCP 서버와 동시에 연결할 수 있다.

MCP Clients

호스트 어플리케이션 내에 존재하는 프로토콜 구현체로, 서버와 1:1 연결을 유지하는 시스템이다.

이를 통해 메시지 직렬화/역직렬화를 수행하며 쉽게 MCP 서버와 연결되어서 데이터를 주고받는 역할을 한다고 보면 된다.

MCP Servers

특정 기능이나 리소스, 컨텍스트 등을 제공하는 서비스이며 하나의 특정 서비스나 데이터 소스를 감싸서 모델이 이해할 수 있는 형태로 Context를 제공하는 역할을 한다.

예를 들어 파일 시스템 MCP Server는 파일을 읽고 쓰는 기능을, Git MCP Server는 레포지토리를 읽고 깃 히스토리를 분석하는 등의 기능을 하며 MCP 클라이언트 요청에 알맞게 응답하는 것이다.


통신 흐름

연결 설정

작업 실행


Filesystem MCP 연결 예시

이번 포스팅에서는 Claude Desktop을 통해서 MCP를 연결해서 사용해 보았으며, MCP는 단순 프로토콜이기 때문에 커서와 같은 다른 MCP Client에서도 비슷하게 MCP를 사용할 수 있다.

1. 애플리케이션 설치

Claude Desktop에서 데스크톱 어플리케이션을 다운로드 받는다. 웹에서는 MCP 사용이 불가하다.

Web에서 불가한 이유

Web에서 사용 불가능한 이유가 궁금해서 당사자인 Claude에게 물어봤다. 8가지 정도의 이유를 알려줬는데, 그 중 내가 납득가는 부분만 소개하자면 아래와 같다.

  1. 로컬 시스템 리소스에 직접 접근하기에

MCP 서버의 핵심 기능 중 하나는 파일 시스템이나, 로컬 Git같은 데이터를 AI에게 제공하는 것이다. 웹 사이트에서는 이게 자유롭지 않다.

  1. 백그라운드 동작과 지속 연결

MCP는 일반 REST API가 아니라 JSON-RPC를 사용하여 지속적으로 양방향 연결을 유지한다. Web에서는 세션/탭이 종료되면 연결도 끊기기 쉽다.

  1. 프라이버시와 규제 준수를 위한 구조

MCP는 종종 민감한 정보(회사 내부 문서, 개인 노트, 로컬 DB 등)를 다루게 되는데, 데스크톱 MCP는 로컬에서 실행되고, 데이터가 외부로 전송되지 않는다.

2. MCP 서버 구성

MCP 서버를 설정하기 위해서는 claude_desktop_config.json 파일을 수정해야한다.
설정 → 개발자 → 설정 편집 경로를 통해 설정 파일의 위치를 찾을 수 있다.

이후 이 설정 파일을 열어 아래와 같이 수정해준다.

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
      ]
    }
  }
}

이번 예제에서는 간단한 filesystem MCP Server를 사용했는데 해당 서버의 코드와 사용법은 아래 레포지토리에서 확인할 수 있다.

MCP filesystem server

3. 실행

이후 Claude Desktop을 한번 재시작한 후 GitHub 아이콘 좌측에 위치하는 플러그 아이콘을 클릭하면 이제 MCP 서버가 통합되었음을 아래와 같이 확인할 수 있다.

이제 실행된 프롬포트가 FileSystem에 접근해야하는 프롬포트라면 Claude가 알아서 접근해서 명령을 실행해준다.

아래 사진을 처럼 “나의 이름은 saewoohan이야. 이걸 파일로 저장해놔” 라는 채팅을 보내니, Claude에서 내가 claude_desktop_config.json 에 지정해준 디렉토리에 파일을 생성해 주었다.

이제 파일시스템에서 해당 파일을 읽어서 알려달라고 하면 해당 위치에 자동으로 접근해서 알려준다.


결론

이번에 사용한 파일 시스템 MCP는 극히 일부 예시다. 실제로는 GitHub, Sentry, PostgreSQL, Redis, Gmail, YouTube, Figma 등 다양한 도구에 대한 MCP 서버가 이미 구현되어 있으며, 모두 오픈소스로 공개되어 있다.

MCP Servers

또한, 사실 새로운 서버를 만드는 것도 TypeScript, Python, Java, Kotlin 으로 만들어진 SDK를 제공하고 있어 어렵지 않다. 그래서 특정 Open API를 내 AI에 연결하고 싶거나 데이터를 연결하고 싶은 상황에서도 기초 지식만 있다면 어렵지 않게 MCP Server를 만들어 연결할 수 있다.

아직은 초기 단계이지만, MCP 생태계는 놀라운 속도로 성장 중이며 오픈소스를 기반으로 다양한 커뮤니티 기여를 통해 발전하고 있다. 또한, 이미 여러 마켓플레이스가 있으며 새로운 MCP Server가 만들어지는 속도가 심상치 않다. (cline, mcp)

물론 MCP는 아직 초기 단계이기 때문에, 이 기술이 AI 에이전트 생태계의 중심으로 확실히 자리 잡을 것이라고 단언하긴 어렵겠지만 이미 실질적인 사례들이 빠르게 등장하고 있으며, 활발한 오픈소스 기여를 통해 다양한 개발자들이 이 생태계에 참여하고 있다는 점에서 그 가능성은 열려있다고 생각한다.

나는 AI 엔지니어나 연구자는 아니지만, 개발자로서 MCP가 AI Agent를 실질적인 ‘작업 파트너’로 진화시키는 중요한 연결 고리가 될 수 있다고 느꼈다. 앞으로 이 기술이 어디까지 확장될지는 모르지만, 앞으로의 AI 발전 방향의 어느정도의 마일스톤 역할을 할 것으로 보여 가볍게 다루어보게 되었다.

실제 MCP Server를 제작해보고 배포한 경험을 아래 포스팅에서 공유합니다.
mcp-graphql-tools


참조

https://github.com/modelcontextprotocol
https://wikidocs.net/268795
https://www.youtube.com/watch?v=VKIl0TIDKQg&t=1094s
https://modelcontextprotocol.io/introduction

0개의 댓글