/** * MCP 전용 로거 * MCP 프로토콜 로그와 서버 동작 로그를 분리하여 처리 * * MCP 스펙 준수: * - MCP Spec 2024-11-05 준수 * - 참조: https://spec.modelcontextprotocol.io/specification/server/#logging * * 구현 사항: * - MCP 프로토콜 로그: server.sendLoggingMessage() 사용 (notifications/message 형식 준수) * - 서버/배치 로그: process.stderr.write() 사용 (서버 콘솔 출력) * - stdout 사용 금지 (MCP 가이드라인 준수) * - 일관된 logger 이름 사용 ('mcp-protocol', 'server', 'batch') * - 로그 레벨 필터링 지원 (debug, info, warn, error) * - Rate limiting 지원 (로그 전송 빈도 제한) * - 컨텍스트 포함 (agentId, slot, memoryId, traceId 등) - logging-helpers.ts에서 제공 * * 주의사항: * - PII 마스킹은 호출자에서 처리해야 함 (자격 증명, 내부 시스템 세부사항 포함 금지) */ import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; export type LogLevel = 'debug' | 'info' | 'warn' | 'error'; /** * MCP 로거 클래스 */ export declare class MCPLogger { private server; /** * Server 인스턴스 설정 */ setServer(server: Server): void; /** * MCP 프로토콜 로그 (Cursor로 전송) * 도구/리소스 요청 등 MCP 프로토콜 통신 관련 로그 * * MCP 스펙 준수: * - Rate limiting: 로그 전송 빈도 제한 (초당 최대 로그 수) * - ERROR 레벨은 rate limiting 우회 (치명적 오류는 항상 전송) */ logMCPProtocol(level: LogLevel, message: string, data?: Record): Promise; /** * 서버 동작 로그 (stderr 출력) * 서버 초기화, 상태 등 서버 동작 관련 로그 * * 주의: MCP 프로토콜 준수를 위해 transport 연결 전에는 로그를 억제할 수 있음 */ logServer(level: LogLevel, message: string, data?: Record): void; /** * 배치 작업 로그 (stderr 출력) * 스케줄러 작업 등 배치 처리 관련 로그 */ logBatch(level: LogLevel, message: string, data?: Record): void; } /** * 싱글톤 인스턴스 */ export declare const mcpLogger: MCPLogger; //# sourceMappingURL=mcp-logger.d.ts.map