#!/usr/bin/env node
import { spawn } from 'child_process';
// 测试 MCP 服务器
async function testMCPServer() {
console.log('开始测试 MCP 服务器...');
// 启动 MCP 服务器进程
const mcpProcess = spawn('node', ['dist/index.js'], {
stdio: ['pipe', 'pipe', 'pipe']
});
// 测试消息
const listToolsMessage = {
jsonrpc: '2.0',
id: 1,
method: 'tools/list',
params: {}
};
const generateMindmapMessage = {
jsonrpc: '2.0',
id: 2,
method: 'tools/call',
params: {
name: 'generate_mindmap',
arguments: {
content: '测试思维导图生成功能'
}
}
};
let responseCount = 0;
let responses = [];
mcpProcess.stdout.on('data', (data) => {
const response = data.toString().trim();
if (response) {
console.log('收到响应:', response);
responses.push(response);
responseCount++;
if (responseCount >= 2) {
mcpProcess.kill();
console.log('测试完成!');
process.exit(0);
}
}
});
mcpProcess.stderr.on('data', (data) => {
console.log('服务器日志:', data.toString());
});
mcpProcess.on('error', (error) => {
console.error('进程错误:', error);
});
// 发送测试消息
setTimeout(() => {
console.log('发送 list tools 请求...');
mcpProcess.stdin.write(JSON.stringify(listToolsMessage) + '\n');
}, 1000);
setTimeout(() => {
console.log('发送 generate mindmap 请求...');
mcpProcess.stdin.write(JSON.stringify(generateMindmapMessage) + '\n');
}, 2000);
// 超时处理
setTimeout(() => {
console.log('测试超时,结束进程');
mcpProcess.kill();
process.exit(1);
}, 10000);
}
testMCPServer().catch(console.error);