@ankimcp/anki-mcp-server
Version:
Model Context Protocol server for Anki - enables AI assistants to interact with your Anki flashcards
62 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LOG_DESTINATION = void 0;
exports.createPinoLogger = createPinoLogger;
exports.createLoggerService = createLoggerService;
exports.createMcpStrategy = createMcpStrategy;
const pino_1 = require("pino");
const mcp_nest_1 = require("@rekog/mcp-nest");
const mcp_icons_1 = require("./mcp/mcp-icons.js");
const mcp_instructions_1 = require("./mcp/mcp-instructions.js");
exports.LOG_DESTINATION = {
STDOUT: 1,
STDERR: 2,
};
const DEMOTED_LOG_CONTEXTS = new Set(["RoutesResolver"]);
function createPinoLogger(destination, logLevel = "info") {
return (0, pino_1.pino)({
level: logLevel,
transport: {
target: "pino-pretty",
options: {
destination,
colorize: true,
translateTime: "HH:MM:ss Z",
ignore: "pid,hostname",
},
},
});
}
function createLoggerService(pinoLogger) {
return {
log: (message, context) => {
if (context !== undefined && DEMOTED_LOG_CONTEXTS.has(context)) {
pinoLogger.debug({ context }, message);
return;
}
pinoLogger.info({ context }, message);
},
error: (message, trace, context) => {
pinoLogger.error({ context, trace }, message);
},
warn: (message, context) => {
pinoLogger.warn({ context }, message);
},
debug: (message, context) => {
pinoLogger.debug({ context }, message);
},
verbose: (message, context) => {
pinoLogger.trace({ context }, message);
},
};
}
function createMcpStrategy(transports, identity) {
return new mcp_nest_1.McpStrategy({
name: identity.name,
version: identity.version,
icons: mcp_icons_1.MCP_ICONS,
instructions: mcp_instructions_1.MCP_SERVER_INSTRUCTIONS,
transports,
});
}
//# sourceMappingURL=bootstrap.js.map