요즘 SNS에서 MCP 관련 콘텐츠가 부쩍 늘었다. “MCP를 모르면 손해다” 같은 자극적인 이야기부터, “MCP를 활용해서 업무 효율을 높였다”는 생산성 관련 경험담까지 다양했다. 심지어는 MCP 서버를 직접 만드는 방법까지 올라와 있었다.
나는 평소에 ChatGPT, Claude, Perplexity 같은 LLM 서비스를 활용해 코딩 공부에 도움을 받는 정도였고, AI에 대해 깊이 알지는 못하는 프론트엔드 개발자 취준생이다. 그러던 중, V0에서 채팅으로 컴포넌트를 생성해주는 모습을 보고 ‘앞으로는 AI를 더 적극적으로 활용할 줄 알아야 하는 거 아닌가?’ 하는 생각이 들었다.
V0 UI
그래서 MCP 관련 콘텐츠를 보니 궁금해졌다. 왜 주목을 받는지 적어도 이유는 알아야 하지 않을까 싶었다.
MCP는 2024년 11월 ‘앤트로픽’이 발표한 AI가 더 똑똑하게 일할 수 있도록 도와주는 오픈 소스 프로토콜이다. 프로토콜 즉 규약, 좀 더 쉽게 말하면 개발자들간에 AI와 통신할 때 사용하는 표준 약속이라고 할 수 있다.
“AI가 우리 회사나 프로젝트 안에 있는 데이터(예: 구글 드라이브, 깃허브, 슬랙, 데이터베이스 등)를 더 잘 보고 이해할 수 있게 해주는 다리 같은 것”이라고 말할 수 있다.
지금까지 AI는 아무리 똑똑해도, 외부 데이터에는 접근할 수 없었다.
예를 들어, Chat GPT에게 “우리 회사 DB에 있는 고객 리스트 보여줘”라고 묻는 다면, 그 DB에 연결되어 있지 않기 때문에 아무것도 할 수 없다.
그래서 기존에는 AI에 데이터를 연결하려면 API를 따로 만들고, 직접 연결 방식도 개발해야 했다. 각 데이터마다 일일이 다르게 붙여야 해서 복잡하고 확장하기도 어려웠다.
Anthropic이 만든 MCP는 이 문제(AI에 외부 데이터를 일일이 API를 따로 만들어 복잡하고 확장하기 어려운 형태의 개발?)를 해결하기 위한 통합 표준 프로토콜이다.
비유하자면, “AI 세계의 USB-C 포트”처럼 모든 데이터를 AI와 연결하는 통일된 방식을 제공한다. 예전엔 마우스마다, 프린터마다 케이블이 달랐다면, 지금은 USB-C 하나면 거의 다 연결할 수 있듯이, AI도 MCP 하나면 다양한 도구(깃허브, 슬랙 등)과 데이터(PostregSQL 등)을 연결할 수 있게 되는 것이다.
MCP는 “AI가 실전에서 진짜 데이터를 다룰 수 있도록 해주는 연결 규칙이자, 다양한 데이터를 하나의 통일된 방식으로 연결할 수 있는 AI 전용 USB-C 포트”라고 이해하면 된다.
MCP(Model Context Protocol)는 클라이언트-서버 아키텍처를 따르며, 다양한 프로그램이 서로의 데이터를 자연어 명령을 통해 주고받을 수 있도록 해주는 표준이다. MCP는 크게 다음과 같은 구성 요소로 이루어져 있다:
MCP를 사용하는 프로그램이다. Claude Desktop, Cursor IDE, AI 도구 등 다양한 호스트가 될 수 있다. 사용자는 이 호스트를 통해 여러 MCP 서버에 자연어 명령을 보낼 수 있다.
Host 내부에서 동작하며, 특정 MCP 서버와 1:1 연결을 유지하면서 통신을 담당하는 모듈이다. 호스트에서 사용자가 입력한 자연어 명령을 서버로 전달하고 서버에서 응답한 결과를 다시 호스트에 반환한다.
각 서버는 특정 기능을 담당하는 경량 프로그램이다. 예를 들어 GitHub, Notion, Google Drive, PostgreSQL 등을 다루는 전용 MCP 서버가 존재한다.
서버는 다음 두 가지 종류의 데이터를 활용할 수 있다:
MCP(Model Context Protocol)를 이해할 때, 우리가 일상에서 겪는 상황에 빗대어보면 훨씬 쉽게 와닿을 수 있다.
예를 들어, 여름철에 집에 있는 에어컨이 고장 나서 점검을 받고 싶다고 생각해보자.
이때 ‘나’는 문제 상황을 겪고 있는 사람이다. 에어컨이 고장 났지만, 어떤 부품이 문제인지, 누가 와서 고쳐야 하는지에 대한 기술적인 정보는 잘 모른다. 그저 “에어컨 점검 좀 해주세요”라고 말하면 된다. 이처럼 ‘나’는 MCP 구조에서 호스트(Host)
에 해당한다. Claude, Cursor 같은 호스트는 사용자의 명령을 받는 주체이다.
그 다음, 나는 상담원에게 전화를 걸어 점검을 요청한다. 이 상담원은 내 말을 이해하고, 어떤 도움이 필요한지 파악한 뒤, 나의 상황에 맞는 전문가를 연결해 준다. 이 역할이 바로 MCP 클라이언트(Client)
이다. 사용자의 자연어 명령을 받아서 분석하고, 적절한 MCP 서버에 요청을 전달하는 중간다리 역할을 한다.
마지막으로, 상담원이 연결해준 에어컨 정비사가 실제로 집에 방문해서 에어컨을 점검하고 고쳐준다. 이 정비사가 바로 MCP 서버(Server)
에 해당한다. 특정 능력을 갖춘 서버는 실제 작업을 수행하거나, 데이터를 조회하거나, 문서를 업데이트하는 등 실질적인 처리를 담당한다.
이처럼 MCP는 우리가 흔히 겪는 고객 지원 과정처럼,
실제 작업이 수행되는 구조이다.
개발자든 비개발자든, 자신이 사용하는 MCP 클라이언트에 다양한 MCP 서버를 연결하면, 자연어 명령만으로 복잡한 작업을 손쉽게 처리할 수 있다.
개발자가 Cursor 에디터에 GitHub MCP 서버를 연결하면, 복잡한 명령어를 직접 입력하지 않고도 자연어로 다양한 작업을 수행할 수 있다. 예를 들어, “이 브랜치에서 최근 커밋 메시지를 보여줘”라고 입력하면 MCP 서버가 GitHub API를 호출하여 해당 정보를 제공하고, “이 리포지토리에서 지난주에 가장 많이 수정된 파일이 뭐야?”와 같은 요청으로 저장소에 대한 요약 정보를 얻을 수 있다. 심지어 “README.md를 업데이트해줘. 저장소 아키텍처에 대해서 좀 더 자세히 작성해줘”와 같은 요청도 처리할 수 있어, 개발자가 코드 외의 작업도 효율적으로 처리할 수 있다.
또한 Claude Desktop과 같은 MCP 클라이언트를 사용하여 Notion MCP 서버를 연결하면, “내가 오늘 회의를 수기로 작성한 걸 노션에 정리해줘”처럼 자연어로 명령하여 노션에 새로운 페이지를 생성하거나 기존 페이지를 수정할 수도 있습니다. 이처럼 비개발자도 복잡한 기술 지식 없이 AI의 도움을 받아 업무를 효율적으로 처리할 수 있습니다.
HTTP가 브라우저와 서버의 소통 방식을 통일한 것처럼, MCP(Model Context Protocol)는 AI와 데이터 간의 소통을 하나의 약속으로 표준화해 누구나 쉽게 연결하고 확장할 수 있도록 도와준다.