diff --git a/src/utils/logger.ts b/src/utils/logger.ts index dde431f..6ffaf4c 100644 --- a/src/utils/logger.ts +++ b/src/utils/logger.ts @@ -1,9 +1,12 @@ import pino from 'pino'; import { config } from '../config'; +// Detect if running in stdio mode (stdout must be reserved for MCP protocol) +const isStdioMode = !process.env.MCP_TRANSPORT || process.env.MCP_TRANSPORT === 'stdio'; + export const logger = pino({ - level: config.mcp.logLevel, - transport: { + level: isStdioMode ? 'silent' : config.mcp.logLevel, + transport: isStdioMode ? undefined : { target: 'pino-pretty', options: { colorize: true, @@ -11,6 +14,10 @@ export const logger = pino({ ignore: 'pid,hostname', }, }, + // In stdio mode, send any logs to stderr instead of stdout + ...(isStdioMode && { + browser: { write: () => {} }, + }), }); export function createLogger(name: string): pino.Logger {