UNPKG

jrnl-mcp

Version:

Model Context Protocol server for jrnl CLI journal application

109 lines (108 loc) 2.62 kB
"use strict"; /** * Logger utility for MCP server * * This module provides a centralized way to log messages in an MCP server * without breaking the stdio transport protocol. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.MCPLogger = void 0; class MCPLogger { constructor(server) { this.server = server; } /** * Log a debug message */ async debug(data, logger) { await this.log("debug", data, logger); } /** * Log an info message */ async info(data, logger) { await this.log("info", data, logger); } /** * Log a notice message */ async notice(data, logger) { await this.log("notice", data, logger); } /** * Log a warning message */ async warning(data, logger) { await this.log("warning", data, logger); } /** * Log an error message */ async error(data, logger) { await this.log("error", data, logger); } /** * Log a critical message */ async critical(data, logger) { await this.log("critical", data, logger); } /** * Log an alert message */ async alert(data, logger) { await this.log("alert", data, logger); } /** * Log an emergency message */ async emergency(data, logger) { await this.log("emergency", data, logger); } /** * Generic log method */ async log(level, data, logger) { try { const params = { level, data, }; if (logger) { params.logger = logger; } await this.server.sendLoggingMessage(params); } catch (error) { // If logging fails, we can't log the error! // In production, you might want to write to a file as a fallback } } /** * Helper to format error objects for logging */ formatError(error) { if (error instanceof Error) { return { name: error.name, message: error.message, stack: error.stack, }; } return { error: String(error), }; } /** * Helper to log function entry/exit */ async logFunction(functionName, phase, details) { const level = phase === "error" ? "error" : "debug"; await this.log(level, { function: functionName, phase, ...details, }, "function-trace"); } } exports.MCPLogger = MCPLogger;