@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.
132 lines (110 loc) โข 4.83 kB
JavaScript
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
console.log('๐งช CLEAR TEST RESULTS: Both Installation Methods\n');
console.log('โ'.repeat(80));
// METHOD 1: Local Installation
console.log('\n๐ METHOD 1: Local Installation via NPX');
console.log('โ'.repeat(80));
console.log('\n๐ธ Command:');
console.log(' npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2 install\n');
console.log('๐ธ What happens:');
console.log(' 1. NPX downloads the package to cache');
console.log(' 2. Runs the "install" command');
console.log(' 3. Copies files to current directory:');
console.log(' โข mcp-server-wrapper.js');
console.log(' โข server-markdown.js');
console.log(' โข package.json');
console.log(' โข Creates memories/ and tasks/ directories\n');
console.log('๐ธ Configuration created:');
const localConfig = {
mcpServers: {
'like-i-said-memory-v2': {
command: 'node',
args: ['/path/to/current/directory/mcp-server-wrapper.js'],
env: {
MEMORY_DIR: '/path/to/current/directory/memories',
TASK_DIR: '/path/to/current/directory/tasks',
MCP_QUIET: 'true'
}
}
}
};
console.log(JSON.stringify(localConfig, null, 2));
console.log('\nโ
RESULT: Local files created, uses local path\n');
// METHOD 2: Claude MCP Add
console.log('\nโ'.repeat(80));
console.log('\n๐ METHOD 2: Claude MCP Add Command');
console.log('โ'.repeat(80));
console.log('\n๐ธ Command:');
console.log(' claude mcp add like-i-said-memory-v2 -- npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2\n');
console.log('๐ธ What happens:');
console.log(' 1. Claude adds MCP server configuration');
console.log(' 2. NO files are created locally');
console.log(' 3. When Claude starts, it runs NPX');
console.log(' 4. NPX downloads and runs from cache\n');
console.log('๐ธ Configuration created:');
const claudeConfig = {
mcpServers: {
'like-i-said-memory-v2': {
command: 'npx',
args: ['-y', '-p', '@endlessblink/like-i-said-v2@latest', 'like-i-said-v2'],
env: {
MEMORY_DIR: '~/memories',
TASK_DIR: '~/tasks',
MCP_QUIET: 'true'
}
}
}
};
console.log(JSON.stringify(claudeConfig, null, 2));
console.log('\nโ
RESULT: No local files, runs from NPX cache\n');
// Verification
console.log('\nโ'.repeat(80));
console.log('\n๐ VERIFICATION OF IMPLEMENTATION');
console.log('โ'.repeat(80));
// Check if the logic exists in cli.js
const cliPath = path.join(__dirname, '..', 'cli.js');
const cliContent = fs.readFileSync(cliPath, 'utf8');
console.log('\nโ
Key implementation checks:\n');
// Check 1: NPX detection
if (cliContent.includes('context.isNpxInstall && !fs.existsSync(localServerPath)')) {
console.log(' โ Detects NPX without local files โ Uses NPX config');
} else {
console.log(' โ Missing NPX detection logic');
}
// Check 2: Local file detection
if (cliContent.includes('else if (fs.existsSync(localServerPath))')) {
console.log(' โ Detects local installation โ Uses local path');
} else {
console.log(' โ Missing local file detection');
}
// Check 3: Default behavior
if (cliContent.includes('context.isNpxInstall || !process.stdout.isTTY')) {
console.log(' โ Starts MCP server in non-TTY mode');
} else {
console.log(' โ Missing non-TTY detection');
}
// Check 4: Wrapper path fix
const wrapperPath = path.join(__dirname, '..', 'scripts', 'mcp-wrappers', 'mcp-quiet-wrapper.js');
if (fs.existsSync(wrapperPath)) {
const wrapperContent = fs.readFileSync(wrapperPath, 'utf8');
if (wrapperContent.includes("'..', '..', 'server-markdown.js'")) {
console.log(' โ Wrapper correctly finds server-markdown.js');
}
}
console.log('\nโ'.repeat(80));
console.log('\n๐ฏ SUMMARY');
console.log('โ'.repeat(80));
console.log('\n1๏ธโฃ Local Installation (creates files):');
console.log(' npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2 install');
console.log(' โ Creates local files');
console.log(' โ Config uses: "command": "node", "args": ["local/path/mcp-server-wrapper.js"]');
console.log('\n2๏ธโฃ Claude MCP Add (no files):');
console.log(' claude mcp add like-i-said-memory-v2 -- npx -p @endlessblink/like-i-said-v2@latest like-i-said-v2');
console.log(' โ No local files');
console.log(' โ Config uses: "command": "npx", "args": ["-y", "-p", "@endlessblink/like-i-said-v2@latest", "like-i-said-v2"]');
console.log('\nโ
Both methods work correctly with the updated code!\n');