#!/usr/bin/env node
/**
* Test script to verify MCP server can be invoked
*/
import { spawn } from 'node:child_process';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const serverPath = join(__dirname, 'dist', 'index.js');
console.log('Testing MCP server at:', serverPath);
console.log('');
const server = spawn('node', [serverPath]);
// Send initialize request
const initRequest = {
jsonrpc: '2.0',
id: 1,
method: 'initialize',
params: {
protocolVersion: '2024-11-05',
capabilities: {},
clientInfo: {
name: 'test-client',
version: '1.0.0',
},
},
};
server.stdout.on('data', (data) => {
console.log('Server response:', data.toString());
});
server.stderr.on('data', (data) => {
console.error('Server error:', data.toString());
});
server.on('close', (code) => {
console.log(`Server exited with code ${code}`);
process.exit(code || 0);
});
// Give server a moment to start
setTimeout(() => {
console.log('Sending initialize request...');
server.stdin.write(`${JSON.stringify(initRequest)}\n`);
// Give it time to respond
setTimeout(() => {
// Send tools/list request
const listToolsRequest = {
jsonrpc: '2.0',
id: 2,
method: 'tools/list',
params: {},
};
console.log('Sending tools/list request...');
server.stdin.write(`${JSON.stringify(listToolsRequest)}\n`);
// Wait and exit
setTimeout(() => {
server.kill();
}, 2000);
}, 1000);
}, 1000);