62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
const { spawn } = require('child_process');
|
|
const path = require('path');
|
|
|
|
console.log("Starting MCP Server test...");
|
|
|
|
const serverProcess = spawn('npm', ['start'], {
|
|
cwd: __dirname,
|
|
stdio: ['pipe', 'pipe', 'inherit']
|
|
});
|
|
|
|
serverProcess.on('error', (err) => {
|
|
console.error("Failed to start process:", err);
|
|
process.exit(1);
|
|
});
|
|
|
|
let buffer = '';
|
|
|
|
// 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"
|
|
}
|
|
}
|
|
};
|
|
|
|
console.log("Sending initialize request...");
|
|
serverProcess.stdin.write(JSON.stringify(initRequest) + '\n');
|
|
|
|
serverProcess.stdout.on('data', (data) => {
|
|
const output = data.toString();
|
|
console.log("Received data:", output);
|
|
|
|
if (output.includes('"id":1') && output.includes('"result":')) {
|
|
// Sent initialized notification
|
|
serverProcess.stdin.write(JSON.stringify({
|
|
jsonrpc: "2.0",
|
|
method: "notifications/initialized"
|
|
}) + '\n');
|
|
|
|
// Send tools/list request
|
|
console.log("Sending tools/list request...");
|
|
serverProcess.stdin.write(JSON.stringify({
|
|
jsonrpc: "2.0",
|
|
id: 2,
|
|
method: "tools/list"
|
|
}) + '\n');
|
|
}
|
|
|
|
if (output.includes('"id":2') && output.includes('"result":')) {
|
|
console.log("✅ Tools list received!");
|
|
console.log(output);
|
|
serverProcess.kill();
|
|
process.exit(0);
|
|
}
|
|
});
|