@endlessblink/like-i-said-v2
Version:
Task Management & Memory for Claude - Track tasks, remember context, and maintain continuity across sessions with 27 powerful tools. Works with Claude Desktop and Claude Code.
55 lines (46 loc) âĸ 1.8 kB
JavaScript
// Clean wrapper for NPX execution that suppresses all non-JSON output
// This prevents ANSI color codes and console messages from corrupting the MCP protocol
// Suppress all console output except stderr for MCP
const originalConsoleLog = console.log;
const originalConsoleError = console.error;
const originalConsoleWarn = console.warn;
const originalConsoleInfo = console.info;
// Override console methods to prevent output corruption
console.log = () => {};
console.warn = () => {};
console.info = () => {};
console.error = (...args) => {
// Only allow MCP protocol messages through stderr
const message = args.join(' ');
// Filter out ANSI codes and startup messages
if (message.includes('\x1b[') ||
message.includes('Starting') ||
message.includes('Initialized') ||
message.includes('â
') ||
message.includes('đ') ||
message.includes('âšī¸') ||
message.includes('â ī¸')) {
return;
}
// Only output clean JSON-RPC messages
if (message.startsWith('{') && message.includes('"jsonrpc"')) {
originalConsoleError.apply(console, args);
}
};
// Set environment to ensure quiet mode
process.env.MCP_QUIET = 'true';
process.env.MCP_MODE = 'true';
process.env.NO_COLOR = '1';
process.env.FORCE_COLOR = '0';
// Import and run the actual server
// Use dynamic path resolution to find the server file
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const serverPath = join(__dirname, 'server-markdown.js');
import(serverPath).catch(err => {
// Silent error - don't output anything that could corrupt JSON-RPC
process.exit(1);
});