Files
broswer-automation/test-server-connection.js

99 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Test MCP server connection and Chrome extension availability
*/
const MCP_HTTP_URL = 'http://localhost:3001/mcp';
async function testServerConnection() {
console.log('🔌 Testing MCP Server Connection');
console.log('================================');
try {
console.log('1⃣ Testing server availability...');
const response = await fetch(MCP_HTTP_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json, text/event-stream',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'initialize',
params: {
protocolVersion: '2024-11-05',
capabilities: {},
clientInfo: {
name: 'connection-test',
version: '1.0.0',
},
},
}),
});
console.log(` Server response status: ${response.status}`);
if (!response.ok) {
console.log(`❌ Server not responding properly. Status: ${response.status}`);
return;
}
const result = await response.json();
console.log('✅ Server is responding');
console.log(` Response:`, JSON.stringify(result, null, 2));
// Test if Chrome extension tools are available
console.log('\n2⃣ Testing Chrome extension tools availability...');
const toolsResponse = await fetch(MCP_HTTP_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json, text/event-stream',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: 2,
method: 'tools/list',
params: {},
}),
});
const toolsResult = await toolsResponse.json();
if (toolsResult.result && toolsResult.result.tools) {
console.log('✅ Tools are available');
console.log(` Available tools: ${toolsResult.result.tools.length}`);
const chromeTools = toolsResult.result.tools.filter(
(tool) => tool.name.includes('chrome') || tool.name.includes('navigate'),
);
console.log(` Chrome-related tools: ${chromeTools.length}`);
chromeTools.forEach((tool) => {
console.log(` - ${tool.name}: ${tool.description}`);
});
if (chromeTools.length > 0) {
console.log('✅ Chrome extension appears to be connected');
} else {
console.log('❌ No Chrome tools found - extension may not be connected');
}
} else {
console.log('❌ No tools available - Chrome extension likely not connected');
console.log(' Tools response:', JSON.stringify(toolsResult, null, 2));
}
} catch (error) {
console.log(`❌ Connection test failed: ${error.message}`);
console.log('\nTroubleshooting steps:');
console.log('1. Make sure the MCP server is running: npm start in remote-server directory');
console.log('2. Make sure the Chrome extension is loaded and enabled');
console.log('3. Make sure the Chrome extension is connected to the MCP server');
console.log('4. Check the Chrome extension popup for connection status');
}
}
// Run the connection test
testServerConnection().catch(console.error);