본문 바로가기
AI2026년 4월 16일4분 읽기

MCP(Model Context Protocol) 완전 가이드 — AI 에이전트와 외부 도구 연결하는 표준

YS
김영삼
조회 459

핵심 요약

MCP(Model Context Protocol)는 Anthropic이 제안하고 업계에서 확산 중인 표준이다. LLM ↔ 도구·데이터 연결을 벤더 독립적으로 만든다.

  • Server: 도구·리소스를 제공
  • Client: LLM 앱 (Claude Desktop, Cursor, Claude Code 등)
  • 3대 프리미티브: Resources / Tools / Prompts
  • 전송: stdio 또는 WebSocket(SSE)

왜 필요한가

LLM이 파일 시스템·DB·API에 접근하려면 벤더마다 다른 방식을 구현해야 했다. MCP는 이를 한 번 구현하면 모든 MCP 호환 클라이언트에서 재사용되게 만든다.

3대 프리미티브

Resources — 읽기 전용 데이터

파일 내용, DB 레코드, API 응답처럼 LLM에 "보여주는" 것.

Tools — LLM이 호출하는 함수

검색, 쓰기, 실행. 부작용이 있을 수 있는 동작.

Prompts — 사용자가 선택하는 템플릿

"코드 리뷰", "요약" 같은 재사용 프롬프트.

서버 구현 (TypeScript SDK)

import { McpServer } from '@modelcontextprotocol/sdk';
import { z } from 'zod';

const server = new McpServer({ name: 'my-tools', version: '1.0.0' });

server.tool(
  'search_docs',
  {
    description: '회사 내부 문서 검색',
    inputSchema: z.object({ query: z.string() }),
  },
  async ({ query }) => {
    const hits = await searchApi(query);
    return { content: [{ type: 'text', text: JSON.stringify(hits) }] };
  },
);

server.resource(
  'changelog',
  'file://CHANGELOG.md',
  async () => ({
    contents: [{ uri: 'file://CHANGELOG.md', mimeType: 'text/markdown', text: readFile() }],
  }),
);

server.connect(new StdioServerTransport());

클라이언트에 등록 (예: Claude Desktop)

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "my-tools": {
      "command": "node",
      "args": ["/path/to/server.js"]
    }
  }
}

실전 활용 예

  • 사내 위키 검색 서버 → 모든 개발자의 Claude Desktop에서 공용
  • DB 스키마 조회 서버 → 읽기 전용으로 안전 공개
  • 티켓 시스템 서버 → Jira/Linear CRUD
  • git 서버 → commit/PR 조회

보안 설계

  • 입력 검증: Zod 등으로 스키마 강제
  • 최소 권한: 서버는 필요한 API 토큰만
  • 감사 로그: 모든 tool 호출 기록
  • 프롬프트 인젝션: 외부 문서 내용이 지시로 해석되지 않도록 샌드박스 처리

자주 묻는 질문

OpenAI 함수 호출과 차이?

함수 호출은 벤더 내 기능. MCP는 벤더 중립 프로토콜로 서버를 한 번 만들면 Claude, Cursor, Copilot(지원 추가 중) 등에서 재사용.

MCP 서버 생태계?

공식 레퍼런스 + 커뮤니티 서버 수천 개가 GitHub에 공개돼 있다. filesystem, git, sqlite, slack 등 주요 인프라 대부분 커버.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록