전체 아키텍처에서 현재 위치
⚙️코어 엔진
→🔧도구 시스템
→🛡️보안
→🧠컨텍스트
→🤝멀티 에이전트
→🌐생태계
→⚡인프라
1
MCP 클라이언트
전송 추상화와 도구 관리
전송 계층도구 직렬화리소스 관리Elicitation|
services/mcp/client.tsMCP(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)