Mcp

기술노트

Model Context Protocol (MCP)는 인공지능(AI) 애플리케이션, 특히 대규모 언어 모델(LLM)이 외부 시스템, 데이터, 도구와 상호 작용하는 방식을 표준화하기 위해 만들어진 오픈소스 프로토콜입니다. 2024년 11월 앤트로픽(Anthropic)사에 의해 공식 발표되었습니다.


🔌 MCP란?

MCP(Model Context Protocol)는 AI 모델이 외부 데이터, 도구, 시스템과 표준화된 방식으로 소통하기 위한 프로토콜입니다.

  • AI를 위한 범용 연결 규격이라고 할 수 있습니다.
  • USB-C가 모든 기기를 하나의 포트로 연결하듯, MCP는 AI가 다양한 데이터 소스와 도구에 하나의 표준으로 접근할 수 있게 합니다.
  • AI가 단순히 훈련된 데이터에만 의존하지 않고, 실시간으로 외부 정보에 접근하고 작업을 수행할 수 있게 만듭니다.

🧩 MCP의 주요 구성 요소

MCP는 세 가지 핵심 요소로 구성됩니다:

구성 요소 역할 예시
MCP Host AI 애플리케이션 (클라이언트) Claude Desktop, IDE, 챗봇
MCP Server 데이터/도구 제공자 파일 시스템, 데이터베이스, API
MCP Protocol 둘 사이의 통신 규약 JSON-RPC 2.0 기반

🎯 MCP의 3가지 핵심 기능

📂 Resources (리소스)

AI가 접근할 수 있는 데이터 소스
파일, 데이터베이스 레코드, API 응답 등
예: 로컬 파일 읽기, 노션 페이지 가져오기

🛠️ Tools (도구)

AI가 실행할 수 있는 함수나 작업
계산, 파일 수정, API 호출 등
예: 캘린더에 일정 추가, 이메일 전송

💬 Prompts (프롬프트)

미리 정의된 작업 템플릿
자주 사용하는 작업을 표준화
예: "이 코드를 리뷰해줘", "데이터를 요약해줘"

✨ 왜 MCP를 사용할까?

👨‍💻 개발자 관점

  • 통합 간소화: 새로운 데이터 소스마다 별도 커넥터를 만들 필요 없음
  • 재사용성: 한 번 만든 MCP 서버를 여러 AI 애플리케이션에서 재사용 가능
  • 유지보수 용이: 표준화된 프로토콜로 일관된 개발 경험

🤖 AI 관점

  • 컨텍스트 확장: 훈련 데이터를 넘어 실시간 정보 활용
  • 동적 작업 수행: 단순 답변을 넘어 실제 작업 실행 가능
  • 정확성 향상: 최신 정보와 실제 데이터에 기반한 응답

🏢 비즈니스 관점

  • 생산성 향상: AI가 실제 업무 시스템과 통합되어 작업 자동화
  • 확장 가능성: 기존 시스템에 AI 기능 점진적 추가 가능
  • 비용 절감: 각 AI 도구마다 별도 통합 불필요

💡 실제 활용 사례

📅 개인 비서 AI

사용자: "내일 오전 10시에 팀 회의 일정 잡아줘"
AI → Google Calendar MCP Server를 통해 일정 추가
AI: "내일 오전 10시에 팀 회의 일정을 추가했습니다."

💼 사내 업무 챗봇

직원: "지난달 제품 A 판매량이 어떻게 됐어?"
AI → Database MCP Server로 실시간 조회
AI: "지난달 제품 A는 총 1,250개가 판매되었으며, 전월 대비 15% 증가했습니다."

👨‍💻 AI 코딩 보조

개발자: "이 함수를 최적화해줘"
AI → File System MCP Server로 전체 프로젝트 코드 분석
AI → 최적화된 코드 제안 및 파일 직접 수정

🔍 연구 보조 AI

연구자: "최신 양자컴퓨팅 논문 요약해줘"
AI → arXiv MCP Server로 최신 논문 검색
AI → PDF 내용 분석 후 핵심 내용 요약 제공

🏗️ MCP 작동 방식

기본 흐름

1. 사용자가 AI에게 요청
   ↓
2. AI(MCP Host)가 필요한 데이터/도구 판단
   ↓
3. MCP Protocol을 통해 MCP Server에 요청
   ↓
4. MCP Server가 실제 작업 수행 (파일 읽기, API 호출 등)
   ↓
5. 결과를 AI에게 반환
   ↓
6. AI가 결과를 분석하여 사용자에게 응답

기술적 구조

  • 통신 방식: JSON-RPC 2.0 프로토콜 사용
  • 전송 계층: stdio (표준 입출력) 또는 HTTP/SSE
  • 데이터 형식: JSON 기반의 구조화된 메시지

🔧 MCP 서버 예시

주요 공식 MCP 서버들:

서버 이름 기능 사용 예시
filesystem 로컬 파일 시스템 접근 파일 읽기/쓰기, 디렉토리 탐색
github GitHub 저장소 연동 코드 검색, 이슈 생성, PR 관리
slack Slack 워크스페이스 연동 메시지 전송, 채널 관리
postgres PostgreSQL 데이터베이스 쿼리 실행, 데이터 조회
google-drive Google Drive 연동 문서 읽기/수정, 파일 관리
brave-search 웹 검색 실시간 정보 검색

🆚 MCP vs 기존 방식

항목 기존 방식 MCP 방식
통합 방법 각 도구마다 별도 커넥터 개발 표준 프로토콜로 통합
개발 시간 도구당 수 주 수 시간 ~ 수 일
재사용성 낮음 (특정 AI 전용) 높음 (범용)
유지보수 각각 별도 관리 필요 표준 업데이트로 일괄 개선
확장성 제한적 무한 확장 가능

🚀 시작하기

MCP 서버 실행 (Python 예시)

from mcp.server import Server
from mcp.types import Resource, Tool

# MCP 서버 생성
server = Server("my-data-server")

# 리소스 등록
@server.list_resources()
async def list_resources():
    return [
        Resource(
            uri="file:///data/report.txt",
            name="판매 보고서"
        )
    ]

# 도구 등록
@server.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "calculate_sum":
        return sum(arguments["numbers"])

# 서버 실행
server.run()

Claude Desktop에서 MCP 설정

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Documents"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your_token_here"
      }
    }
  }
}

⚠️ 보안 고려사항

MCP 사용 시 다음 사항을 주의해야 합니다:

  • 접근 권한 제한: MCP 서버가 접근할 수 있는 범위를 최소화
  • 인증 및 인가: 민감한 데이터에 대한 적절한 인증 메커니즘 구현
  • 데이터 검증: AI가 요청하는 작업의 안전성 검증
  • 로깅 및 감사: 모든 작업 기록 및 모니터링

🌟 MCP의 미래

MCP는 다음과 같은 방향으로 발전하고 있습니다:

  • 생태계 확장: 더 많은 서비스와 도구의 MCP 지원
  • 멀티모달 지원: 이미지, 음성, 비디오 데이터 처리
  • 협업 기능: 여러 AI 에이전트 간 협업
  • 엔터프라이즈 기능: 대규모 조직을 위한 고급 관리 기능

🔗 관련 기술

  • LangChain: AI 애플리케이션 개발 프레임워크
  • Function Calling: OpenAI의 함수 호출 기능
  • Plugins: ChatGPT 플러그인 시스템
  • API Gateway: 전통적인 API 통합 방식

📚 참고 자료


같이 보기