/Part 6: 생태계/MCP 통합
🌐
Part 6고급⏱ 약 45분 · 1개 섹션

MCP 통합

Model Context Protocol

MCP 통합 대표 이미지
이 챕터에서 배울 것
  • 4가지 전송 계층: stdio, SSE, HTTP, WebSocket
  • 도구 직렬화와 캐싱으로 성능 최적화
  • 이미지 리사이징, Unicode 새니타이제이션 등 콘텐츠 처리
전체 아키텍처에서 현재 위치
⚙️코어 엔진
🔧도구 시스템
🛡️보안
🧠컨텍스트
🤝멀티 에이전트
🌐생태계
인프라
1

MCP 클라이언트

전송 추상화와 도구 관리

전송 계층도구 직렬화리소스 관리Elicitation|services/mcp/client.ts

MCP(Model Context Protocol) 클라이언트는 4가지 전송 계층을 추상화하여 다양한 MCP 서버와 통신합니다.

src/services/mcp/client.ts — MCP 통합
1// src/services/mcp/client.ts — MCP 전송 추상화
2
3import { Client } from '@modelcontextprotocol/sdk/client/index.js'💡
4import { StdioClientTransport } from '...client/stdio.js'
5import { SSEClientTransport } from '...client/sse.js'
6import { StreamableHTTPClientTransport } from '...client/streamableHttp.js'
7// + WebSocket 전송
8
9// 전송 계층 선택:
10// stdio → 로컬 프로세스 (가장 일반적)
11// SSE → Server-Sent Events (HTTP 기반 스트리밍)
12// HTTP → REST API (Streamable HTTP)
13// WS → WebSocket (양방향)
14
15// MCP 도구 → Claude Code 도구 변환
16// MCPTool이 MCP 서버의 도구를 Tool 인터페이스로 래핑
17import { MCPTool } from '../../tools/MCPTool/MCPTool.js'💡
18
19// assembleToolPool()에서 병합 시:
20// 내장 도구 이름과 MCP 도구 이름이 충돌하면 내장 도구 우선
21// uniqBy([...builtIn, ...mcpTools], t => t.name)💡
22
23// 리소스 처리:
24// - 이미지: 리사이징/다운샘플링 후 API에 전달
25// - 바이너리: 디스크에 저장 후 경로 반환
26// - 텍스트: Unicode 새니타이제이션
27// - 대용량: 결과 잘라내기 (maxResultSizeChars)