스마트폰 앱이 카메라, 연락처, GPS 등 다양한 기능에 접근하려면 운영체제가 제공하는 표준 API를 통해야 합니다. MCP(Model Context Protocol)는 AI 모델이 외부 도구와 데이터에 접근할 때 사용하는 바로 그런 표준 프로토콜입니다.
비유로 이해하기: MCP 이전에는 각 AI 앱이 Slack과 연동하려면 Slack 전용 코드를, Google Drive 연동에는 Drive 전용 코드를 따로 작성해야 했습니다. MCP가 생기고 나서는 'MCP 서버 하나를 만들면 어떤 AI 클라이언트에서도 쓸 수 있는' 표준이 생겼습니다.
실제 MCP 활용 사례:
Claude Code에서 /mcp 명령어로 연결된 MCP 서버 목록을 확인할 수 있습니다.
MCP는 JSON-RPC 2.0 기반의 클라이언트-서버 프로토콜입니다:
[AI 호스트 애플리케이션] [MCP 서버들]
┌─────────────────┐ ┌──────────────┐
│ Claude / GPT │◄──────────►│ GitHub 서버 │
│ │ MCP 표준 ├──────────────┤
│ [MCP Client] │◄──────────►│ Slack 서버 │
└─────────────────┘ JSON-RPC ├──────────────┤
│ DB 서버 │
└──────────────┘
MCP가 제공하는 3가지 기본 기능:
// 1. Tools (함수 실행)
{ "method": "tools/call", "params": { "name": "create_github_pr", ... } }
// 2. Resources (데이터 읽기)
{ "method": "resources/read", "params": { "uri": "github://repos/owner/repo/issues/123" } }
// 3. Prompts (프롬프트 템플릿)
{ "method": "prompts/get", "params": { "name": "code_review_template" } }
MCP 서버 구현 예시 (TypeScript):
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server(
{ name: "my-database-server", version: "1.0.0" },
{ capabilities: { tools: {} } }
);
server.setRequestHandler("tools/list", async () => ({
tools: [{ name: "query_db", description: "Execute a read-only SQL query", ... }]
}));
const transport = new StdioServerTransport();
await server.connect(transport);
| 방식 | 개발 비용 | 재사용성 | 보안 | 유지보수 |
|---|---|---|---|---|
| 직접 API 통합 | 높음 | 낮음 | 개발자 책임 | 복잡 |
| MCP 서버 | 중간 | 높음 (모든 MCP 클라이언트) | 표준화 | 단순 |
| 플러그인 (ChatGPT) | 낮음 | OpenAI 종속 | 플랫폼 의존 | 플랫폼 의존 |
MCP 생태계 성장:
장점:
한계:
Claude Code에서 MCP 설정:
// ~/.claude/claude_desktop_config.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<token>" }
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": { "POSTGRES_CONNECTION_STRING": "postgresql://..." }
}
}
}
시작하기 좋은 MCP 서버:
@modelcontextprotocol/server-filesystem - 파일 시스템 접근@modelcontextprotocol/server-github - GitHub 연동@modelcontextprotocol/server-brave-search - 웹 검색