omnifocus-mcp
Version:
Model Context Protocol (MCP) server that integrates with OmniFocus for AI assistant interaction
44 lines (43 loc) • 1.23 kB
JavaScript
const LOG_LEVELS = [
"debug", "info", "notice", "warning", "error", "critical", "alert", "emergency"
];
export class Logger {
server;
minLevel = "info";
constructor(server) {
this.server = server;
}
setLevel(level) {
this.minLevel = level;
}
getLevel() {
return this.minLevel;
}
shouldLog(level) {
return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(this.minLevel);
}
log(level, logger, data) {
if (!this.shouldLog(level))
return;
// sendLoggingMessage is async — use .catch() to handle pre-handshake calls gracefully
this.server.sendLoggingMessage({ level, logger, data }).catch(() => {
// Connection may not be established yet; fall back to stderr
console.error(`[${level}] [${logger}]`, data);
});
}
debug(logger, data) {
this.log("debug", logger, data);
}
info(logger, data) {
this.log("info", logger, data);
}
notice(logger, data) {
this.log("notice", logger, data);
}
warning(logger, data) {
this.log("warning", logger, data);
}
error(logger, data) {
this.log("error", logger, data);
}
}