🔌
MCP(Model Context Protocol) 완전 정복
MCPClaude프로토콜
MCP(Model Context Protocol)는 AI 모델이 외부 도구와 데이터에 접근하기 위한 표준 프로토콜이다. Anthropic이 2024년 말에 공개했으며, 빠르게 업계 표준으로 자리잡고 있다.
MCP란 무엇인가
MCP는 LLM이 외부 세계와 상호작용하기 위한 범용 인터페이스다. 기존에는 각 서비스마다 별도의 통합 코드를 작성해야 했지만, MCP를 사용하면 하나의 프로토콜로 다양한 도구를 연결할 수 있다.
| 구성요소 | 역할 | 예시 |
|---|---|---|
| Host | MCP 클라이언트를 실행하는 애플리케이션 | Claude Desktop, IDE |
| Client | 서버와 1:1 연결을 유지하는 커넥터 | MCP Client SDK |
| Server | 도구, 리소스, 프롬프트를 제공 | GitHub MCP, Slack MCP |
핵심 기능
MCP 서버가 제공하는 세 가지 핵심 기능이 있다.
- ✓ Tools — 모델이 호출할 수 있는 함수 (API 호출, DB 쿼리 등)
- ✓ Resources — 모델이 읽을 수 있는 데이터 (파일, DB 레코드 등)
- ✓ Prompts — 재사용 가능한 프롬프트 템플릿
- Sampling — 서버에서 모델에게 요청 (아직 초기 단계)
서버 구현 예시
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new McpServer({
name: "my-mcp-server",
version: "1.0.0",
});
// 도구 등록
server.tool("get_weather", { city: z.string() }, async ({ city }) => {
const data = await fetchWeather(city);
return { content: [{ type: "text", text: JSON.stringify(data) }] };
});
// 서버 시작
const transport = new StdioServerTransport();
await server.connect(transport);팁
MCP 서버는 stdio 또는 SSE 트랜스포트를 지원한다. 로컬 개발에서는 stdio가 편하고, 원격 배포 시에는 SSE를 사용하면 된다.
실전 활용 패턴
1. 도구 체이닝
여러 MCP 서버를 연결해서 복잡한 워크플로우를 구성할 수 있다.
2. 컨텍스트 증강
RAG처럼 외부 데이터를 모델 컨텍스트에 주입할 수 있다.
3. 에이전트 오케스트레이션
여러 에이전트가 MCP를 통해 같은 도구를 공유할 수 있다.
결론 MCP는 AI 에이전트 생태계의 USB-C 같은 존재다. 한 번 배워두면 다양한 환경에서 재사용할 수 있다.