#!/usr/bin/env node
import { spawn } from 'child_process';
// Test the MCP server by sending proper MCP protocol messages
async function testMCPServer() {
console.log("🧪 Testing MCP Server Protocol...");
const serverProcess = spawn('node', ['build/index.js'], {
stdio: ['pipe', 'pipe', 'pipe']
});
// Send initialization request
const initRequest = {
jsonrpc: "2.0",
id: 1,
method: "initialize",
params: {
protocolVersion: "2024-11-05",
capabilities: {
tools: {}
},
clientInfo: {
name: "test-client",
version: "1.0.0"
}
}
};
console.log("📤 Sending initialization request...");
serverProcess.stdin.write(JSON.stringify(initRequest) + '\n');
// Listen for responses
let responseData = '';
serverProcess.stdout.on('data', (data) => {
responseData += data.toString();
console.log("📥 Server response:", data.toString().trim());
});
serverProcess.stderr.on('data', (data) => {
console.log("📝 Server log:", data.toString().trim());
});
// Send tools/list request after a short delay
setTimeout(() => {
const toolsRequest = {
jsonrpc: "2.0",
id: 2,
method: "tools/list",
params: {}
};
console.log("📤 Requesting tools list...");
serverProcess.stdin.write(JSON.stringify(toolsRequest) + '\n');
}, 100);
// Clean up after 2 seconds
setTimeout(() => {
console.log("🔄 Cleaning up test...");
serverProcess.kill();
}, 2000);
}
testMCPServer();