MCP란 무엇인가

MCP(Model Context Protocol)는 Anthropic이 2024년 말 공개한 오픈 프로토콜로, AI 모델이 외부 도구, 데이터베이스, API 등과 표준화된 방식으로 통신할 수 있게 해주는 규격이다. 2026년 4월 현재, OpenAI, Microsoft, Google, Amazon 등 주요 벤더가 모두 이 표준을 채택했으며, 1,600개 이상의 MCP 서버가 운영되고 있다.

MCP의 핵심 아키텍처

MCP는 클라이언트-서버 모델을 따른다. AI 에이전트(클라이언트)가 MCP 서버에 요청을 보내면, 서버가 외부 시스템과의 상호작용을 처리하고 결과를 반환한다.

주요 구성 요소

  • MCP Host: Claude Desktop, IDE 플러그인 등 AI가 실행되는 환경
  • MCP Client: 호스트 내에서 서버와 1:1 연결을 유지하는 프로토콜 클라이언트
  • MCP Server: 특정 기능을 노출하는 경량 프로그램(도구, 리소스, 프롬프트 제공)

MCP 서버 만들기 - TypeScript 예제

MCP SDK를 사용하면 몇 줄의 코드로 서버를 구축할 수 있다.

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({
  name: "weather-server",
  version: "1.0.0"
});

// 도구 정의
server.tool(
  "get-weather",
  "지정한 도시의 현재 날씨를 조회합니다",
  { city: z.string().describe("도시 이름") },
  async ({ city }) => {
    const response = await fetch(
      `https://api.weatherapi.com/v1/current.json?q=${city}`
    );
    const data = await response.json();
    return {
      content: [{
        type: "text",
        text: `${city}: ${data.current.temp_c}도, ${data.current.condition.text}`
      }]
    };
  }
);

// 리소스 정의
server.resource(
  "config",
  "config://app",
  async (uri) => ({
    contents: [{
      uri: uri.href,
      mimeType: "application/json",
      text: JSON.stringify({ version: "1.0", region: "kr" })
    }]
  })
);

// 서버 시작
const transport = new StdioServerTransport();
await server.connect(transport);

MCP 서버 설정 (claude_desktop_config.json)

만든 서버를 Claude Desktop에 등록하려면 설정 파일에 추가한다.

{
  "mcpServers": {
    "weather": {
      "command": "node",
      "args": ["./weather-server/index.js"],
      "env": {
        "WEATHER_API_KEY": "your-api-key"
      }
    },
    "database": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres",
               "postgresql://localhost/mydb"]
    }
  }
}

2026년 MCP 로드맵 핵심 변화

1. 전송 계층 확장

기존 stdio 방식 외에 Streamable HTTP 전송이 표준으로 추가되었다. 이를 통해 원격 서버 배포와 클라우드 환경에서의 MCP 서버 운영이 가능해졌다.

2. 인증 및 보안 강화

OAuth 2.1 기반 인증 프레임워크가 도입되었다. SSO 통합, 감사 로그, 게이트웨이 동작 정의 등 엔터프라이즈 요구사항을 충족하는 보안 기능이 추가되었다.

// OAuth 2.1 인증이 적용된 MCP 서버 예제
const server = new McpServer({
  name: "secure-server",
  version: "1.0.0",
  auth: {
    type: "oauth2",
    authorizationUrl: "https://auth.example.com/authorize",
    tokenUrl: "https://auth.example.com/token",
    scopes: ["read", "write"]
  }
});

3. 에이전트 간 통신

A2A(Agent-to-Agent) 통신 프로토콜이 로드맵에 포함되어, 여러 AI 에이전트가 MCP를 통해 협력하는 워크플로우를 구성할 수 있게 된다.

실무 활용 시나리오

데이터베이스 자연어 쿼리

PostgreSQL MCP 서버를 연결하면 AI가 자연어로 데이터를 조회하고 분석할 수 있다.

# PostgreSQL MCP 서버 실행
npx -y @modelcontextprotocol/server-postgres \
  "postgresql://user:password@localhost:5432/mydb"

파일 시스템 접근

# 파일 시스템 MCP 서버 (특정 디렉토리만 허용)
npx -y @modelcontextprotocol/server-filesystem \
  /home/user/projects /home/user/documents

Git 저장소 관리

# Git MCP 서버
npx -y @modelcontextprotocol/server-git \
  --repository /path/to/repo

MCP 도입 시 주의사항

  • 최소 권한 원칙: 서버에 필요한 최소한의 권한만 부여한다
  • 입력 검증: 모든 도구 입력에 Zod 등의 스키마 검증을 적용한다
  • 비용 관리: 외부 API 호출이 포함된 도구는 rate limiting을 설정한다
  • 로깅: 모든 도구 호출을 기록하여 디버깅과 감사에 활용한다

MCP는 AI 에이전트의 외부 시스템 통합을 표준화하는 핵심 프로토콜로 자리잡았다. 직접 서버를 구축하거나 커뮤니티에서 제공하는 1,600개 이상의 서버를 활용하여 AI 워크플로우를 확장해보자.