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 통합 방식