30분
MCP 아키텍처: AI의 USB 포트
Day 1: MCP (Model Context Protocol)
MCP 아키텍처: AI의 USB 포트
AI Agent 심화 > Day 1: MCP (Model Context Protocol)
학습 목표
MCP의 3가지 핵심 기능(Resources, Tools, Prompts)을 구분한다 MCP Client-Server 아키텍처를 이해한다 MCP와 기존 방식(LangChain Tools)의 차이를 설명할 수 있다
MCP란 무엇인가
MCP = Model Context Protocol
Anthropic이 2024년 발표한 오픈 프로토콜
핵심 비유:
USB 이전 → 프린터, 마우스, 키보드 모두 다른 포트
USB 이후 → 하나의 포트로 모든 장치 연결
MCP 이전 → 각 시스템마다 다른 연동 코드
MCP 이후 → 하나의 프로토콜로 모든 시스템 연결
MCP 아키텍처
┌──────────────────────────────┐
│ MCP Host │
│ (Claude, AI Agent, IDE) │
│ │
│ ┌──────────────────────┐ │
│ │ MCP Client │ │
│ └──────────┬───────────┘ │
└──────────────┼────────────────┘
│
JSON-RPC 2.0 (stdio / SSE)
│
┌────────────────────┼────────────────────┐
│ │ │
┌────────▼──────┐ ┌────────▼──────┐ ┌──────────▼────┐
│ MES MCP │ │ PLC MCP │ │ CMMS MCP │
│ Server │ │ Server │ │ Server │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ Resources │ │ Resources │ │ Resources │
│ - 생산 데이터│ │ - 센서 값 │ │ - 정비 이력 │
│ Tools │ │ Tools │ │ Tools │
│ - 작업지시 │ │ - PLC 제어 │ │ - 정비 요청 │
│ Prompts │ │ Prompts │ │ Prompts │
│ - 보고서 │ │ - 진단 가이드│ │ - 점검 체크 │
└───────────────┘ └───────────────┘ └───────────────┘
MCP의 3가지 핵심 기능
1. Resources (데이터)
Resources = AI가 "읽을 수 있는" 데이터
제조 예시:
├── equipment://CNC-001 → 설비 상세 정보
├── manual://CNC-001/chapter3 → 매뉴얼 3장
├── history://CNC-001/faults → 고장 이력
└── sensor://CNC-001/realtime → 실시간 센서 값
Resources는 읽기 전용이다. Agent가 데이터를 "읽고 이해"하는 데 쓴다.
2. Tools (기능 실행)
Tools = AI가 "실행할 수 있는" 기능
제조 예시:
├── get_equipment_status(id) → 설비 상태 조회
├── request_maintenance(id, desc)→ 유지보수 요청 생성
├── check_sensor_threshold(id) → 센서 임계치 확인
└── create_quality_report(line) → 품질 보고서 생성
Tools는 액션을 수행한다. Agent가 "실제로 무언가를 하는" 데 쓴다.
3. Prompts (템플릿)
Prompts = 재사용 가능한 AI 요청 템플릿
제조 예시:
├── troubleshoot(equipment_id, symptom)
│ → "설비 ID, 증상을 기반으로 진단해주세요"
├── daily_report(line, date)
│ → "해당 라인의 일일 생산 보고서를 작성해주세요"
└── root_cause_analysis(fault_id)
→ "고장 ID를 기반으로 근본 원인 분석해주세요"
Prompts는 일관된 AI 요청을 보장한다. 매번 프롬프트를 새로 쓸 필요 없다.
MCP vs 기존 방식 비교
| 비교 항목 | LangChain Tools | MCP |
|---|---|---|
| 연결 방식 | 앱마다 직접 구현 | 표준 프로토콜 |
| 재사용성 | 앱별 커스텀 | Server 재사용 가능 |
| 데이터 접근 | Tool 안에서 처리 | Resources로 분리 |
| 보안 | 앱마다 다름 | 프로토콜 수준 권한 관리 |
| 생태계 | LangChain 의존 | 프레임워크 독립적 |
핵심 차이:
LangChain Tool = "이 앱에서만 쓰는 커스텀 함수"
MCP Server = "아무 AI에서나 꽂아 쓸 수 있는 표준 모듈"
통신 방식
MCP는 JSON-RPC 2.0 기반이다.
| 방식 | 설명 | 용도 |
|---|---|---|
| stdio | 표준 입출력 (로컬) | 로컬 개발, CLI 도구 |
| SSE | Server-Sent Events (HTTP) | 원격 서버, 웹 통합 |
# stdio 방식 (로컬에서 프로세스 실행)
Client ---stdin---> Server
Client <--stdout--- Server
# SSE 방식 (HTTP 통신)
Client ---POST /message---> Server
Client <---SSE stream----- Server
제조 현장에서는:
- 개발/테스트: stdio 방식
- 프로덕션: SSE 방식 (네트워크 경유)
AI로 학습하기 — 꿀팁
✅MCP 3기능 개념 환각 점검AI 학습 팁
AI가 설명한 MCP Resources, Tools, Prompts의 역할 구분이 공식 사양과 일치하는지 교차검증하세요.
방금 설명한 MCP의 Resources, Tools, Prompts 3가지 기능의 정의와 역할 구분이 MCP 공식 사양(spec)과 정확히 일치하는지 점검하고, 혼동하기 쉬운 경계 사례(예: Tool과 Resource의 차이)를 실제 사양 기준으로 명확히 해줘.
이 팁이 도움이 됐나요?