최근 유튜브나 커뮤니티에서 가장 핫한 주제는 MCP라고 생각한다. 과장 조금 보태면 AI로 모든 것을 할 수 있다는 내용이다. 그래서 궁금했다. 최근 바이브 코딩이라고 AI에게 모든 코딩을 맡기는 것도 떠오르는데 MCP까지 사용한다면 키보드로 코드를 입력하지 않고 복사/붙여넣기 조차 하지 않고도 개발을 할 수 있지 않을까 궁금했다.
MCP는 Model Context Protocol의 약어다. 사실 MCP를 하나의 도구나 프레임워크라고 생각했는데 그런 것은 아니고 하나의 프로토콜이었다. 외부 Tool, Prompt, Resource와 통신할 수 있도록 하는 컨텍스트 상호작용 프로토콜이다. LLM이 실행할 작업을 명시적으로 정의하고, 툴 선택과 실행 흐름을 통제하며, 자원 접근 구조를 포함한다는 의미인데 처음에는 읽어도 잘 모르겠었다.

Protocol이라고 해서 당연히 권위 높은 단체에서 만들었을 줄 알았는데 의외로 Claude를 서비스하고 있는 기업인 Anthropic 발표했다.
MCP에 대해서 설명하다가 뜬금없다고 생각할 수 있지만 현재 AI 역사를 이해하는 쪽이 MCP를 설명하는 가장 좋은 방법이라고 생각한다.

우리가 가장 쉽게 접할 수 있는 AI는 알다시피 ChatGPT, 제미나이와 같은 것들이 있다. 그런데 이 AI는 분명 똑똑하고 일도 잘하는 것 같은데, 막상 내 일을 대신 해주진 못한다.
예를 들어, 내가 어떤 폴더의 파일 리스트를 주고 이 파일들을 분류해달라고 하면 다음과 같은 대답을 줄것이다.
| 파일명 | 용도 추정 | 분류 기준 예시 |
|---|---|---|
resume_lee.pdf | 이력서 | documents/resumes |
invoice_2024_03.xlsx | 청구서 | documents/invoices |
cat_picture.jpg | 고양이 사진 | media/images |
project_plan_v2.docx | 문서 | documents/plans |
design_draft.sketch | 디자인 파일 | designs/ |
main.py | 소스코드 | code/python |
script.js | 자바스크립트 코드 | code/javascript |
logo_final.ai | 벡터 이미지 | designs/vectors |
user_data.json | 데이터 파일 | data/json |
backup_2023_12_01.zip | 백업 | archives/ |
meeting_notes.txt | 회의 기록 | documents/notes |
presentation_v1.pptx | 발표자료 | documents/presentations |
budget_2024.xlsx | 예산 | documents/finance |
error_log_20240701.log | 로그 파일 | logs/ |
README.md | 프로젝트 설명 | code/docs |
thumbnail.png | 썸네일 이미지 | media/images |
music_sample.mp3 | 음원 파일 | media/audio |
app.apk | 안드로이드 앱 | binaries/android |
certificate.pem | 인증서 | security/certs |
video_intro.mp4 | 영상 파일 | media/videos |
만약 내가 이 20개의 파일을 일일이 분류한다면 많은 시간을 사용할 것이고 분류하는 과정에서 비슷한 유형의 폴더를 만드는 등 많은 어려움을 겪을 것이다.
하지만 AI를 이용한다면 대화 한번, 5초면 해결할 수 있다.
그런데 이 파일들을 담을 폴더를 만들고 파일을 옮기는 일은 누가 할까? 라는 대답은 여지 없이 나(사용자)다
그렇다. AI는 결국 "이런 방식으로 일을 처리하면 됩니다"라는 대답을 해주는 하나의 ChatBot에 불과하다.
개발자들은 폴더 생성/파일 이동과 같은 행동들 또한 AI가 대신 해주길 바랬다. 그래서 AI에게 여러 도구(Tool)들을 사용할 수 있도록 하고 싶었다. 따라서 AI에게 Tool의 기능을 알려주고 Tool을 직접 실행해주는 중간 관리자 같은 역할의 프로그램이 필요했다. 바로 여기서 나온 것이 AutoGPT와 같은 프로젝트다.
개발자들은 AutoGPT와 같은 프로젝트를 발전시켜 AI Agent를 만들어냈다.

AI Agent는 사용자의 목표(여기서는 파일 분류)와 같은 목표를 이루기 위해 어떤 Tool을 사용해야하는지(파일 이동, 폴더 생성)과 같이 판단/계획하고, 어떤 Tool을 썼는지 이유와 결과를 기억해 다음 행동에 반영하도록 상태를 기억하는 등 지휘자에 가까운 역할을 한다.
AI Agent의 루프 : 목표 → 계획 수립 → 도구 실행 → 결과 해석 → 반복
물론 이것 외에도 다양한 많은 일들을 한다. 내부적으로 LLM과의 소통하는 과정에서 오류가 발생하면 오류 발생을 인지하고 다시 LLM에게 프롬프트를 보내는 거나 시스템 프롬프트와 사용자 프롬프트를 결합하는 등 보이지 않는 프로세스들을 실행한다.
나는 처음에 이해가 가지 않았다. ChatGPT가 나의 질문을 받아 '이렇게 하세요'가 아닌 실제 실행까지 해주는 역할을 AI Agent가 가능하게 만들어줬다면 AI Agent가 주목 더 유명해야지, MCP가 더 주목을 받는 것인지 이해가 가지 않았다.
일단 조금 더 역사를 되짚어보자.
AI Agent가 Tool을 사용하는 방식은 Agent와 Tool을 같은 프로그램에 작성하여 직접 함수를 호출하는 방식을 사용했다. 대부분 프로그래밍에서는 이런 강결합은 문제들이 없을 리가 없다.
예를 들어 웹 검색 도구나 파일 시스템 제어와 같은 도구들은 다양한 Agent에서 사용될 것이다. Agent 만들 때마다 같은 Tool 코드를 똑같이 복사해서 집어 넣는 작업을 한다? Agent를 만들 때마다 중복되는 코드가 넘쳐날 것이고 굉장히 복잡한 구조를 가지는 건 물론 수정을 할 일이 생긴다? 모든 에이전트마다 중복된 코드를 고쳐야 할 것이다.

따라서 사람들은 Tool을 하나의 서비스로 떼어내어 운영하고 Agent들이 하나의 Tool 서비스에 요청을 보내 Tool을 실행하는 방식으로 전환하게 되었다.
내가 새로운 Tool 서비스를 만들었다고 생각해보자. 그런데 AI Agent는 다양한 곳에서 개발하고 있고 각 Agent들이 Tool 서비스에 연결하는 방식과 규칙은 통일되지 않았다. 왜? AI 개발하는 회사들이 각자 자신들의 방식으로 Agent들을 개발해왔고 Tool도 연결해서 사용해왔으니까. 결국 개발자들은 LangChain, AutoGen 등 많은 Agent에 연결할 때마다 추가적인 작업을 해야만 했다.

결국 Tool 서비스를 만드는 개발자나 회사는 서비스를 만들기 위해서는 Tool에대한 공부뿐만 아니라 각 Agent마다 Tool을 연결하는 방법을 공부하거나 어댑터를 만드는 데 많은 노력과 시간을 써야만 했다. 그래서 이런 Tool 서비스들은 큰 회사에서 많이 만들고 일반 개발자나 작은 회사들에게는 주목받기 어려웠다.
여기서 등장한 것이 Model Context Protocol이다. 큰 의미에서는 AI 모델이 외부 데이터 소스나 도구에 안전하게 연결할 수 있도록 하는 표준화된 프로토콜이다. Agent와 Tool 서비스 간에 어떤 방식으로 통신하면 좋을 지 정한 것도 MCP에 포함된다. MCP는 통신 규칙 말고도 MCP Host, MCP Client, MCP Server와 같은 여러가지 개념도 가지고 있다. 그래서 사람들이 MCP라는 단어를 여러가지 의미를 담아 쓰고 약간 혼용해서 쓰기도 한다.
지금 사람들이 가장 많이 말하는 MCP는 MCP server에 가깝고 MCP Server는 Tool 서비스라고 생각하면 여기서는 편할 것이다. 물론 여기서 설명을 편하게 하고자 이렇게 설명한 것이고 MCP Server가 하는 일은 굉장히 많다.

하지만 처음 MCP는 지금의 인기에 비해 인기가 없었다. 당연하다. 규칙이나 규약은 다른 사람들이 모두 지켜야 의미가 있는 것이지. 막말로 내가 '앞으로 개발자들은 Git commit message 마지막에 냥을 붙인다'라고 규칙을 정하더라도 지키는 사람이 없다면 아무런 의미가 없는 규칙이나 다름없다.

여기서 등장한게 바로 Cursor다. 사용자가 굉장히 많은 AI Code Editor에서 MCP를 차용하겠다고 한 것이다. 그렇게 Cursor Editor 프로그램에서 MCP Server를 쉽게 연결할 수 있어졌다.
AI Code Editor는 현재 당연히 개발자들 사이에서 가장 많이 사용되는 Editor로 MCP Server를 추가할 수 있게 되자 자연스럽게 많은 개발자들이 관심을 가지게 되었다. 관심은 곧 여러 MCP Server들로 변해갔다. 개발자들이 점점 더 많은 MCP Server를 만들어내자 다양한 회사들(Notion, Slack 등)도 자신들의 서비스를 붙인 MCP Server들을 만들어 제공하게 되었다.
많은 회사들이 MCP Server를 제공하자 자연스럽게 AI 회사들도 자신들의 AI Agent에 MCP Server를 연결할 수 있도록 변해갔다. 그렇게 MCP Server를 만드는 개발자/회사들과 MCP Server를 사용할 수 있는 다양한 AI들이 생겨나자 MCP 생태계가 만들어졌고 급속도로 주목받게 되었다.

이제 우리 개발자들이 MCP를 지키는 Tool 서비스, MCP Server를 만들면 대부분의 AI 서비스와 연결할 수 있기에 별도의 연결 방법을 공부하거나 어댑터를 만들 필요가 없어진 것이다.
지금도 많은 개발자들이 MCP Server를 만들고 있다. 다른 개발자, 회사들이 만든 MCP Server에 대해서 궁금하다면 https://smithery.ai/ 여기서 확인해볼 수 있다.