TechFeedTechFeed
AI/LLM

MCP(Model Context Protocol) 완벽 가이드

한 줄 요약: MCP(Model Context Protocol)는 AI 모델이 외부 도구·데이터 소스와 표준화된 방식으로 연결되는 개방형 프로토콜로, AI 에이전트 생태계의 USB-C에 해당한다. Anthropic이 주도하고 OpenAI, Google, Microsoft가 지원을 선언한 MCP는 AI 코딩 도구가 데이터베이스, API, 파일 시스템, Git 저장소 등에 안전하게 접근하는 표준이다.

by

한 줄 요약: MCP(Model Context Protocol)는 AI 모델이 외부 도구·데이터 소스와 표준화된 방식으로 연결되는 개방형 프로토콜로, AI 에이전트 생태계의 USB-C에 해당한다.


Anthropic이 주도하고 OpenAI, Google, Microsoft가 지원을 선언한 MCP는 AI 코딩 도구가 데이터베이스, API, 파일 시스템, Git 저장소 등에 안전하게 접근하는 표준이다. 이 가이드는 MCP의 구조, 서버 구축법, 실전 활용 패턴을 정리한다.


MCP란 무엇인가

Model Context Protocol(MCP)은 AI 모델이 외부 도구와 데이터 소스에 연결되는 표준 프로토콜입니다. Anthropic이 오픈 표준으로 공개했으며, AI 에이전트가 Google Drive, Slack, Jira, 데이터베이스 등과 소통하는 방법을 정의합니다.


MCP란 무엇인가 — 모델 성능 벤치마크 비교 차트
MCP(Model Context Protocol) 완벽 가이드 — 모델 성능 벤치마크 비교 차트 (출처: 공식 문서 및 벤치마크 데이터 기반)

MCP 이전에는 각 AI 도구가 자체적인 플러그인/확장 시스템을 사용했다. Cursor는 Cursor 전용 확장을, Copilot은 VS Code 확장을, Claude Code는 자체 도구 시스템을 갖고 있었다. MCP는 이를 하나의 표준으로 통합한다. 하나의 MCP 서버를 만들면 Claude Code, Cursor, Windsurf, Zed 등 모든 MCP 지원 클라이언트에서 사용할 수 있다.


MCP의 구조는 클라이언트-서버 모델이다. AI 도구(클라이언트)가 MCP 서버에 연결하면, 서버는 자신이 제공하는 도구 목록(Tool), 리소스(Resource), 프롬프트 템플릿을 클라이언트에 알린다. AI 모델이 특정 도구가 필요하다고 판단하면 서버에 요청을 보내고, 서버가 실행 결과를 반환한다.


Claude Code에서 MCP 서버 연결
# claude_desktop_config.json 또는 .claude/settings.json { "mcpServers": { "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres", "postgresql://user:pass@localhost/mydb"] }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_xxxx" } } } }

MCP 서버 구조

MCP 서버는 3가지 요소로 구성됩니다:


  • Resources: AI가 읽을 수 있는 데이터 (파일, DB 레코드 등)
  • Tools: AI가 실행할 수 있는 기능 (검색, 생성, 수정 등)
  • Prompts: 미리 정의된 프롬프트 템플릿

MCP 서버 구조 — 시스템 아키텍처 다이어그램
MCP(Model Context Protocol) 완벽 가이드 — 시스템 아키텍처 다이어그램 (출처: 공식 문서 및 벤치마크 데이터 기반)

실전: 나만의 MCP 서버 만들기

TypeScript로 간단한 MCP 서버를 만들 수 있습니다. @modelcontextprotocol/sdk 패키지를 설치하고, 도구와 리소스를 정의하면 됩니다. Claude Code나 Claude Desktop에서 바로 연결 가능합니다.


실전: 나만의 MCP 서버 만들기 — 비용 대비 성능 분석 도표
MCP(Model Context Protocol) 완벽 가이드 — 비용 대비 성능 분석 도표 (출처: 공식 문서 및 벤치마크 데이터 기반)

주요 MCP 서버 목록

이미 사용 가능한 MCP 서버들: Google Drive, Slack, GitHub, PostgreSQL, Puppeteer(웹 브라우징), Filesystem(파일 접근) 등. mcp.so에서 전체 목록 확인 가능.


나만의 MCP 서버 만들기

MCP 서버는 TypeScript 또는 Python으로 구축할 수 있다. @modelcontextprotocol/sdk(TS) 또는 mcp(Python) 패키지가 공식 SDK다. 서버는 도구(Tool)를 정의하고, 각 도구의 입력 스키마와 실행 로직을 구현한다.


TypeScript MCP 서버 기본 구조
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; const server = new McpServer({ name: "my-server" }); server.tool("query_db", { sql: { type: "string", description: "SQL query" } }, async ({ sql }) => { const result = await db.query(sql); return { content: [{ type: "text", text: JSON.stringify(result) }] }; } ); server.run();

@modelcontextprotocol/server-postgres: PostgreSQL 데이터베이스를 AI에 연결. 스키마 조회, 쿼리 실행, 테이블 구조 분석이 가능하다. server-github: GitHub API를 통해 이슈 관리, PR 생성, 코드 검색을 수행한다. server-filesystem: 로컬 파일 시스템 접근을 제공하되, 허용된 디렉토리만 접근 가능하도록 샌드박스를 설정할 수 있다.


보안 주의: MCP 서버는 AI 모델에 실제 시스템 접근 권한을 부여한다. 프로덕션 DB 연결 시 읽기 전용 사용자를 사용하고, 파일 시스템 서버는 특정 디렉토리만 허용해야 한다. 민감한 환경 변수는 .env 파일이 아닌 시스템 키체인이나 시크릿 매니저를 통해 주입하라.

자주 묻는 질문

다른 대안과 비교했을 때 어떤 상황에 적합한가요?

MCP는 같은 도구를 여러 AI 클라이언트에서 재사용해야 할 때 진가를 발휘합니다. 한 번 MCP 서버를 만들면 Claude Code, 커서, Windsurf, Zed가 모두 같은 방식으로 붙기 때문입니다. 그래서 DB 조회·GitHub 이슈 관리·파일 접근처럼 여러 프로젝트에서 반복되는 연동이라면 server-postgres·server-github·server-filesystem 같은 공식 서버가 잘 맞습니다. 반대로 한 도구에서 한 번 쓰고 말 일회성 호출이면 클라이언트 자체 확장 기능으로 충분하고, 굳이 MCP 서버를 세울 필요는 없습니다. 다만 어느 쪽이든 운영 DB는 읽기 전용 계정으로, 파일 시스템은 허용 디렉토리를 좁혀 연결해야 합니다.


더 깊게 공부하려면 어떤 자료를 보면 좋을까요?

가장 먼저 볼 곳은 modelcontextprotocol.io 공식 문서입니다. 이 글에서 다룬 Resources·Tools·Prompts 세 요소의 정확한 스펙과 클라이언트-서버 핸드셰이크 방식을 정의해두고 있습니다. 직접 서버를 만들려면 @modelcontextprotocol/sdk(TypeScript)나 mcp(Python) 패키지의 quickstart를 따라가시고, 이미 나와 있는 서버를 찾을 때는 mcp.so나 공식 servers GitHub 저장소에서 server-postgres·server-github 등의 구현 코드를 직접 읽어보는 것이 구조 이해에 가장 빠릅니다.


MCP 완벽 가이드, 한 줄로 정리하면 어떻게 되나요?

MCP는 AI 모델이 데이터베이스·API·파일 시스템 같은 외부 도구에 연결되는 표준 프로토콜로, 도구 생태계의 USB-C에 해당합니다. 클라이언트-서버 모델로 동작하며 서버가 Resources·Tools·Prompts를 노출하면 Claude Code·커서 등 지원 클라이언트가 동일하게 붙습니다. claude_desktop_config.json의 mcpServers에 공식 서버를 등록하면 바로 쓸 수 있고, 직접 만들 땐 읽기 전용 계정과 디렉토리 제한 같은 보안 설정이 전제입니다.


실무에서 처음 도입할 때 가장 먼저 확인할 것은 무엇인가요?

처음 한 번에 여러 서버를 붙이지 마시고, 이미 만들어진 공식 서버 하나로 동작을 확인하는 것이 먼저입니다. server-filesystem이나 server-github처럼 본문에서 소개한 서버를 claude_desktop_config.json의 mcpServers에 등록하고, Claude Code나 Claude Desktop이 도구 목록을 제대로 인식하는지부터 검증하세요. 가장 먼저 점검할 항목은 권한 범위입니다. PostgreSQL 서버는 읽기 전용 DB 사용자로 연결하고, filesystem 서버는 접근 허용 디렉토리를 명시적으로 좁혀야 합니다. GITHUB_TOKEN 같은 시크릿을 env에 평문으로 넣었다면 시스템 키체인이나 시크릿 매니저로 옮긴 뒤에 실제 작업에 투입하시길 권합니다.


가장 자주 발생하는 실수나 함정은 무엇인가요?

가장 자주 터지는 사고는 보안 쪽입니다. MCP 서버는 AI 모델에 실제 시스템 접근 권한을 그대로 넘기기 때문에, 운영 DB를 쓰기 권한 계정으로 연결해두면 모델이 잘못 생성한 쿼리가 그대로 실행될 수 있습니다. 반드시 읽기 전용 사용자로 연결하세요. 설정 파일에서도 실수가 잦은데, claude_desktop_config.json의 mcpServers JSON 문법이 한 글자만 틀려도 서버가 통째로 로드되지 않고 조용히 무시됩니다. 또 npx로 서버를 띄우는 구조라 첫 실행 시 패키지 다운로드 지연으로 타임아웃이 나는 경우가 있으니, 연결이 안 되면 해당 패키지를 먼저 수동 설치해보는 것이 빠른 진단법입니다.


MCPmodel-context-protocolanthropic통합서버

관련 도구

관련 포스트