Skip to main content
Glama
logger.ts1.45 kB
import winston from 'winston'; // Create logger that only writes to stderr (never stdout) const logger = winston.createLogger({ level: process.env.LOG_LEVEL || 'info', format: winston.format.combine( winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json() ), transports: [ // Only use stderr for all output - stdout is reserved for MCP JSON-RPC new winston.transports.Console({ stderrLevels: ['error', 'warn', 'info', 'debug', 'verbose', 'silly'], consoleWarnLevels: [], }) ], // Prevent any output to stdout exitOnError: false, }); // Helper methods for common log patterns export const log = { info: (message: string, meta?: any) => { logger.info(message, meta); }, warn: (message: string, meta?: any) => { logger.warn(message, meta); }, error: (message: string, error?: Error | any, meta?: any) => { logger.error(message, { error: error?.message || error, stack: error?.stack, ...meta }); }, debug: (message: string, meta?: any) => { logger.debug(message, meta); }, // Special method for MCP server lifecycle events mcp: (event: string, meta?: any) => { logger.info('MCP Server Event', { event, ...meta }); }, // Special method for Hue API interactions hue: (action: string, meta?: any) => { logger.debug('Hue API', { action, ...meta }); } }; export default logger;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rmrfslashbin/hue-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server