@z_ai/mcp-server
Version:
MCP Server for Z.AI - A Model Context Protocol server that provides AI capabilities
43 lines (42 loc) • 1.46 kB
JavaScript
/**
* Logger utility that redirects console output to stderr
* This ensures MCP JSON communication on stdout remains clean
*/
class Logger {
writeToStderr(level, message, ...args) {
const timestamp = new Date().toISOString();
const logMessage = args.length > 0
? `[${timestamp}] ${level.toUpperCase()}: ${message} ${JSON.stringify(args)}`
: `[${timestamp}] ${level.toUpperCase()}: ${message}`;
process.stderr.write(logMessage + '\n');
}
info(message, ...args) {
this.writeToStderr('info', message, ...args);
}
error(message, ...args) {
this.writeToStderr('error', message, ...args);
}
warn(message, ...args) {
this.writeToStderr('warn', message, ...args);
}
debug(message, ...args) {
this.writeToStderr('debug', message, ...args);
}
log(message, ...args) {
this.writeToStderr('info', message, ...args);
}
}
export const logger = new Logger();
/**
* Override global console to redirect to stderr
* This prevents console output from interfering with MCP JSON protocol
*/
export function setupConsoleRedirection() {
const originalConsole = { ...console };
console.info = logger.info.bind(logger);
console.error = logger.error.bind(logger);
console.warn = logger.warn.bind(logger);
console.debug = logger.debug.bind(logger);
console.log = logger.log.bind(logger);
return originalConsole;
}