최근에 Claude Code를 쓰면서 MCP 서버를 설정할 일이 생겼는데, 설정은 하겠는데 이게 정확히 뭔지 설명하라고 하면 말문이 막히더라. 그래서 한번 제대로 정리해봤다.

핵심만 말하면, MCP는 AI가 외부 도구랑 데이터를 쓸 수 있게 해주는 표준 규격이다. USB-C가 충전기 규격을 통일한 것처럼, MCP는 AI 도구 연결 방식을 통일한 거다. Anthropic이 2024년 말에 처음 만들었는데, 지금은 OpenAI, Google, Microsoft까지 전부 쓰고 있다.

사실 "MCP가 뭐예요?"라고 물어보면 대부분 "AI가 도구를 쓸 수 있게 해주는 거"라고만 답하는데, 그러면 기존 API 호출이랑 뭐가 다른 건지 감이 안 온다. 이 글에서 그 차이를 확실히 잡아보자.

MCP란 무엇인가: AI 에이전트를 위한 표준 연결 규격

MCP는 Model Context Protocol의 약자다. Anthropic이 2024년 11월에 처음 공개했고, 2025년 12월에는 Linux Foundation 산하 Agentic AI Foundation(AAIF)에 넘어갔다. 지금은 Anthropic, Block, OpenAI가 공동 운영하는 오픈소스 프로젝트다.

USB-C 비유가 가장 직관적이다. USB-C 나오기 전에는 기기마다 충전 단자가 다 달랐잖아. Micro USB, Lightning, Mini USB... USB-C 하나면 충전, 데이터 전송, 영상 출력이 전부 된다. MCP도 같은 맥락이다. AI가 데이터베이스, CRM, 파일 시스템 같은 외부 서비스에 접근할 때, 서비스마다 따로 코드를 짤 필요 없이 MCP 하나로 연결하는 거다.

2026년 2월 기준 MCP SDK가 월간 9,700만 건 넘게 다운로드되고 있고, 활성 서버도 10,000개를 넘겼다. 이 정도면 사실상 표준이라고 봐도 된다.

보통 이런 프로토콜이 "사실상 표준"이 되려면 몇 년은 걸리는데, MCP는 1년 만에 여기까지 왔다. Anthropic이 만들었는데 OpenAI까지 쓰고 있다는 게 좀 재밌는 상황이긴 하다.

MCP가 필요한 이유: AI 도구 연동이 왜 힘들었나

MCP 없던 시절의 문제를 알면 왜 이게 필요한지 바로 이해된다.

M x N 문제: AI 모델이 M개, 외부 서비스가 N개면 연동 코드가 M x N개 필요하다. 모델이나 서비스가 하나 추가될 때마다 연동 작업이 기하급수적으로 늘어나는 구조였거든.

표준 없음: 서비스마다 REST API, GraphQL, WebSocket 등 인터페이스가 다 다르니까, AI한테 연결하려면 서비스별로 어댑터를 따로 만들어야 했다. 솔직히 이거 해본 사람은 알겠지만, 어댑터 하나 만드는 것도 은근 손이 많이 간다.

AI가 API를 모름: 기존 API는 사람이 문서 보고 쓰는 걸 전제로 설계됐기 때문에, AI가 "이 API로 뭘 할 수 있는지" 스스로 파악하기 어려웠다. 개발자가 중간에서 통역해줘야 했다.

이게 핵심인데, 기존 API는 "사람이 읽고 이해하는 것"을 전제로 만들어졌다. AI한테는 Swagger 문서가 있어도 "이 엔드포인트로 뭘 해야 하는지"를 알려줄 수 있는 메타데이터가 부족했던 거다.

MCP는 이걸 해결한다. AI와 외부 서비스 사이에 표준 계층을 둬서, MCP 서버 한 번 만들면 MCP 지원하는 모든 AI에서 갖다 쓸 수 있게 된다. M x N이 M + N으로 바뀌는 거다. 이거 모르면 나중에 AI 에이전트 만들 때 고생한다.

MCP 동작 원리: 서버, 클라이언트, 호스트 구조

MCP는 3계층으로 구성되는데, 처음 보면 좀 헷갈릴 수 있다. 근데 한 번 정리하면 별거 아니다.

호스트(Host): 사용자가 직접 쓰는 프로그램. Claude Desktop, ChatGPT, VS Code 같은 게 호스트다.

클라이언트(Client): 호스트 안에 들어있는 모듈로, MCP 서버랑 통신하는 역할을 한다. 클라이언트 하나가 서버 하나와 1:1로 연결되고, 호스트는 여러 클라이언트를 동시에 관리할 수 있다.

서버(Server): 실제 도구와 데이터를 제공하는 프로그램이다. 세 가지를 제공하는데:

  • 도구(Tools): AI가 호출하는 함수. 데이터베이스 조회, 파일 생성, API 호출 등
  • 리소스(Resources): AI가 참조하는 데이터. 파일, DB 레코드 등. 도구가 "행동"이면 리소스는 "지식"
  • 프롬프트(Prompts): 미리 정의된 메시지 템플릿

처음에 "클라이언트랑 호스트가 뭐가 다른 거지?" 싶었는데, 쉽게 말하면 호스트는 앱 전체이고, 클라이언트는 그 앱 안에서 MCP 서버 하나와 통신하는 모듈이다. Claude Desktop이라는 호스트 안에 "파일시스템 클라이언트", "GitHub 클라이언트" 이런 식으로 여러 개가 돌아가는 구조.

통신 방식은 로컬용 표준 입출력(stdio)과 원격용 Streamable HTTP 두 가지다. 2025년 11월에 기존 SSE 방식이 Streamable HTTP로 바뀌면서 AWS Lambda 같은 서버리스에서도 MCP 서버를 돌릴 수 있게 됐다.

MCP 지원 서비스 및 도구 현황

2026년 기준 주요 플랫폼 지원 상황을 정리하면:

  • Anthropic: Claude Desktop, Claude Code에서 기본 지원
  • OpenAI: 2025년 3월 공식 채택, ChatGPT 데스크톱 포함 전 제품에 통합
  • Google: Gemini에 MCP 지원 추가, Maps/BigQuery/GKE MCP 서버 공개
  • Microsoft: VS Code에서 MCP 지원, Azure MCP 게이트웨이 제공

GitHub, Slack, Google Drive, PostgreSQL, Filesystem, Brave Search 등 주요 서비스의 MCP 서버가 이미 나와있고, PulseMCP 같은 디렉토리에서 500개 넘는 서버 목록을 확인할 수 있다.

솔직히 이 속도가 좀 무섭다. 1년 전만 해도 "이거 Anthropic만 쓰는 거 아니야?"라는 반응이었는데, 지금은 안 쓰는 쪽이 오히려 이상한 분위기가 됐다.

기존 연동 방식과 비교하면 차이가 확실하다:

항목 기존 REST API 플러그인 MCP
설계 대상 개발자(사람) 특정 플랫폼 사용자 AI 모델(기계)
연결 방식 URL 엔드포인트 호출 플랫폼 내부 인터페이스 JSON 기반 함수 호출
동적 탐색 불가 (문서 필요) 플랫폼이 관리 가능 (서버에 질의)
범용성 높음 낮음 (플랫폼 종속) 높음 (MCP 클라이언트 공통)
컨텍스트 제공 없음 제한적 도구 설명, 힌트, 에러 메시지 포함
인증 서비스별 상이 플랫폼 위임 OAuth 2.1 표준
AI 호환성 직접 호출 불가 특정 모델 전용 MCP 지원 모델 공통

중요한 점 하나만 짚으면, MCP가 기존 API를 대체하는 게 아니다. API 위에 AI가 이해할 수 있는 계층을 얹는 거다. 기존 REST API는 그대로 두고, 그 위에 MCP라는 표준 인터페이스를 한 겹 씌운다고 보면 된다.

MCP 실전 활용: 서버 직접 만들어보기

MCP 서버 만드는 건 생각보다 간단하다. Python이랑 TypeScript SDK가 공식으로 제공된다.

1단계: 환경 설정

uv init my-mcp-server
cd my-mcp-server
uv add "mcp[cli]"

2단계: 서버 코드 작성

FastMCP 프레임워크를 쓰면 데코레이터 하나로 도구를 정의할 수 있다.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("my-server")

@mcp.tool()
def get_weather(city: str) -> str:
    """지정한 도시의 현재 날씨를 조회합니다."""
    return f"{city}의 현재 기온은 15도입니다."

if __name__ == "__main__":
    mcp.run()

진짜 이게 끝이다. @mcp.tool() 데코레이터 붙이면 함수가 바로 AI 도구가 된다. 처음에 "이게 되나?" 싶었는데, 해보니까 된다.

3단계: Claude Desktop에 연결

Claude Desktop 설정 파일에 서버 경로만 추가하면, Claude가 알아서 도구를 인식하고 쓸 수 있다.

Tip: 처음 MCP 서버를 만들 때는 도구 하나짜리 간단한 서버부터 시작하자. 복잡한 건 나중에 하나씩 붙이면 된다. 백 번 양보해서, 처음부터 거대한 서버를 만들겠다고 해도, 결국 디버깅 지옥에 빠질 가능성이 높거든.

자주 묻는 질문 (FAQ)

MCP와 API의 차이점은 무엇인가요?

API는 개발자가 문서 읽고 코드 짜서 호출하는 거고, MCP는 AI가 직접 이해하고 호출할 수 있게 만든 프로토콜이다. MCP 서버는 "내가 뭘 할 수 있는지"를 기계가 읽을 수 있는 형태로 알려주거든. 대부분의 MCP 서버가 내부적으로는 기존 API를 쓰기 때문에, 대체가 아니라 그 위에 한 겹 추가하는 개념이다.

MCP를 사용하려면 개발 지식이 필요한가요?

이미 만들어진 MCP 서버를 갖다 쓰는 건 설정 파일 수정만 하면 돼서 개발 지식이 거의 필요 없다. 직접 MCP 서버를 만들려면 Python이나 TypeScript 정도는 알아야 한다.

근데 솔직히, 설정 파일 수정도 처음 하는 사람한테는 은근 장벽이다. JSON 형식이라 콤마 하나 빠뜨려도 안 돌아가거든. 공식 문서 보면서 차근차근 따라하는 걸 추천한다.

어떤 AI 모델이 MCP를 지원하나요?

2026년 2월 기준 Claude, ChatGPT, Gemini가 지원한다. VS Code, Goose 같은 개발 도구에도 MCP 클라이언트가 내장돼 있다. Linux Foundation으로 넘어간 뒤로 지원 범위가 계속 넓어지고 있다.

MCP는 보안상 안전한가요?

인증에 OAuth 2.1을 쓰고, PKCE도 필수다. 액세스 토큰 범위도 특정 서버로 제한할 수 있다. 다만 MCP 서버가 내부적으로 접근하는 외부 서비스에 대한 인증 처리는 아직 완전히 정의되지 않은 부분이 있어서, 실제 운영에서는 추가 보안 검토가 필요하다.

이 부분은 좀 아쉽다. 프로토콜 자체의 인증은 잘 되어 있는데, MCP 서버가 뒤에서 접근하는 서비스의 인증까지는 표준에서 다루지 않는다. 결국 그 부분은 서버 개발자 재량인데, 여기서 보안 구멍이 생기기 쉽다.

MCP 서버를 직접 만들 수 있나요?

네, 오픈소스고 Python/TypeScript SDK가 있다. FastMCP 쓰면 수십 줄이면 기본 서버가 돌아간다. 공식 문서(modelcontextprotocol.io)에 단계별 가이드가 있고, Docker 배포 방법도 나와있다.

MCP, AI 도구 연동의 기본이 되다

MCP는 AI가 바깥 세상과 소통하는 방식의 표준이다. 2024년 말 Anthropic 내부 실험에서 시작해서, 지금은 주요 AI 기업이 공동 관리하는 산업 표준이 됐다.

개발자라면 공식 SDK로 서버 하나 만들어보는 걸 추천한다. 한 번 감 잡으면 AI 에이전트 활용의 폭이 확 넓어지거든. 나중에 필요해지면 조금 더 깊은 내용도 정리해볼 생각이다.

굳이 MCP까지 알아야 하나? 싶을 수 있는데, AI 에이전트가 점점 보편화되는 추세를 보면 이건 알아두는 게 맞다. 지금 안 쓰더라도, 곧 쓰게 될 거다.