30

MCP 아키텍처: AI의 USB 포트

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 ToolsMCP
연결 방식앱마다 직접 구현표준 프로토콜
재사용성앱별 커스텀Server 재사용 가능
데이터 접근Tool 안에서 처리Resources로 분리
보안앱마다 다름프로토콜 수준 권한 관리
생태계LangChain 의존프레임워크 독립적
핵심 차이:

LangChain Tool = "이 앱에서만 쓰는 커스텀 함수"
MCP Server     = "아무 AI에서나 꽂아 쓸 수 있는 표준 모듈"

통신 방식

MCP는 JSON-RPC 2.0 기반이다.

방식설명용도
stdio표준 입출력 (로컬)로컬 개발, CLI 도구
SSEServer-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의 차이)를 실제 사양 기준으로 명확히 해줘.
이 팁이 도움이 됐나요?