first commit
This commit is contained in:
102
test-mcp-connection.js
Normal file
102
test-mcp-connection.js
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
// 测试 MCP 服务器连接
|
||||
const serverUrl = 'http://0.0.0.0:3100/mcp';
|
||||
const healthUrl = 'http://0.0.0.0:3100/health';
|
||||
|
||||
console.log('🧪 测试 MCP 服务器连接...\n');
|
||||
|
||||
// 测试健康检查
|
||||
console.log(`📡 测试健康检查: ${healthUrl}`);
|
||||
fetch(healthUrl, {
|
||||
method: 'GET',
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
.then(response => {
|
||||
console.log(`✅ 健康检查响应: ${response.status} ${response.statusText}`);
|
||||
return response.text();
|
||||
})
|
||||
.then(data => {
|
||||
console.log('健康检查数据:', data);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('❌ 健康检查失败:', error.message);
|
||||
});
|
||||
|
||||
// 测试 MCP initialize 请求
|
||||
console.log(`\n🔗 测试 MCP 连接: ${serverUrl}`);
|
||||
|
||||
const initRequest = {
|
||||
jsonrpc: '2.0',
|
||||
id: '1',
|
||||
method: 'initialize',
|
||||
params: {
|
||||
protocolVersion: '2024-11-05',
|
||||
capabilities: {
|
||||
roots: {
|
||||
listChanged: true
|
||||
},
|
||||
sampling: {}
|
||||
},
|
||||
clientInfo: {
|
||||
name: 'MCP-Vue-Client',
|
||||
version: '1.0.0'
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
fetch(serverUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(initRequest)
|
||||
})
|
||||
.then(response => {
|
||||
console.log(`✅ MCP 响应: ${response.status} ${response.statusText}`);
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
console.log('MCP 初始化响应:', JSON.stringify(data, null, 2));
|
||||
|
||||
// 如果初始化成功,测试获取工具列表
|
||||
if (data.result) {
|
||||
console.log('\n🔧 测试工具列表...');
|
||||
return fetch(serverUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
jsonrpc: '2.0',
|
||||
id: '2',
|
||||
method: 'tools/list',
|
||||
params: {}
|
||||
})
|
||||
});
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
if (response) {
|
||||
console.log(`✅ 工具列表响应: ${response.status} ${response.statusText}`);
|
||||
return response.json();
|
||||
}
|
||||
})
|
||||
.then(data => {
|
||||
if (data) {
|
||||
console.log('可用工具:', JSON.stringify(data, null, 2));
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('❌ MCP 连接失败:', error.message);
|
||||
if (error.message.includes('Failed to fetch')) {
|
||||
console.error('💡 可能的原因:');
|
||||
console.error(' - CORS 未启用');
|
||||
console.error(' - 服务器未运行');
|
||||
console.error(' - 网络连接问题');
|
||||
}
|
||||
});
|
||||
|
||||
console.log('\n⏰ 等待测试完成...');
|
||||
Reference in New Issue
Block a user