Skip to main content
Glama

github-manager MCP Server

logger.ts1.74 kB
import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { LogMessage, Logger } from '../types.js'; export class McpLogger implements Logger { private logs: LogMessage[] = []; private server?: Server; constructor(server?: Server) { this.server = server; } setServer(server: Server) { this.server = server; } private log(level: LogMessage['level'], message: string, data?: unknown) { const logMessage: LogMessage = { level, message, data, timestamp: new Date().toISOString() }; // Store in memory this.logs.push(logMessage); // Console output with proper formatting const formattedMessage = `[${logMessage.timestamp}] ${level.toUpperCase()}: ${message}`; // Use appropriate console method based on log level const consoleMethod = (level === 'error' || level === 'warn') ? console.error : console.log; consoleMethod(formattedMessage); if (data) { consoleMethod(JSON.stringify(data, null, 2)); } // Send to MCP if initialized and error/warning if (this.server?.onerror && (level === 'error' || level === 'warn')) { this.server.onerror(new Error(formattedMessage)); } } debug(message: string, data?: unknown) { this.log('debug', message, data); } info(message: string, data?: unknown) { this.log('info', message, data); } warn(message: string, data?: unknown) { this.log('warn', message, data); } error(message: string, data?: unknown) { this.log('error', message, data); } // Get logs for debugging/testing getLogs(): LogMessage[] { return [...this.logs]; } // Clear logs (useful for testing) clearLogs() { this.logs = []; } }

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/wheelhousedev/github-mcp'

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