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

99 lines
3.1 KiB
JavaScript
Raw Permalink 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);