@access-mcp/shared
Version:
Shared utilities for ACCESS-CI MCP servers
43 lines (42 loc) • 1.55 kB
TypeScript
/**
* Structured logger for ACCESS-CI MCP servers.
*
* This logger writes to stderr to avoid interfering with MCP's JSON-RPC
* communication on stdout. It supports log levels that can be controlled
* via the LOG_LEVEL environment variable.
*
* Log levels (in order of severity):
* - error: Always shown, for critical errors
* - warn: Warnings that don't prevent operation
* - info: Important informational messages
* - debug: Detailed debugging information (disabled by default)
*
* Usage:
* import { createLogger } from "@access-mcp/shared";
* const logger = createLogger("my-server");
* logger.info("Server started");
* logger.error("Failed to connect", { url: "http://..." });
*/
export type LogLevel = "error" | "warn" | "info" | "debug";
interface LogContext {
[key: string]: unknown;
}
export interface Logger {
error: (message: string, context?: LogContext) => void;
warn: (message: string, context?: LogContext) => void;
info: (message: string, context?: LogContext) => void;
debug: (message: string, context?: LogContext) => void;
}
/**
* Create a logger instance for a specific server.
*
* @param serverName - The name of the server (e.g., "access-mcp-events")
* @returns A logger instance with error, warn, info, and debug methods
*/
export declare function createLogger(serverName: string): Logger;
/**
* A no-op logger that silently discards all log messages.
* Useful for testing or when logging should be completely disabled.
*/
export declare const silentLogger: Logger;
export {};