Major refactor: Multi-user Chrome MCP extension with remote server architecture
This commit is contained in:
77
app/remote-server/test-tool-call.js
Normal file
77
app/remote-server/test-tool-call.js
Normal file
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* Test tool call to verify Chrome extension connection using MCP WebSocket
|
||||
*/
|
||||
|
||||
import WebSocket from 'ws';
|
||||
|
||||
const MCP_SERVER_URL = 'ws://localhost:3001/ws/mcp';
|
||||
|
||||
async function testToolCall() {
|
||||
console.log('🔌 Testing tool call via MCP WebSocket...');
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
const ws = new WebSocket(MCP_SERVER_URL);
|
||||
|
||||
ws.on('open', () => {
|
||||
console.log('✅ Connected to MCP WebSocket');
|
||||
|
||||
// Send a proper MCP tool call
|
||||
const message = {
|
||||
jsonrpc: '2.0',
|
||||
id: 1,
|
||||
method: 'tools/call',
|
||||
params: {
|
||||
name: 'chrome_navigate',
|
||||
arguments: {
|
||||
url: 'https://www.google.com',
|
||||
newWindow: false,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
console.log('📤 Sending MCP message:', JSON.stringify(message, null, 2));
|
||||
ws.send(JSON.stringify(message));
|
||||
});
|
||||
|
||||
ws.on('message', (data) => {
|
||||
try {
|
||||
const response = JSON.parse(data.toString());
|
||||
console.log('📨 MCP Response:', JSON.stringify(response, null, 2));
|
||||
|
||||
if (response.error) {
|
||||
console.error('❌ Tool call failed:', response.error);
|
||||
reject(new Error(response.error.message || response.error));
|
||||
} else if (response.result) {
|
||||
console.log('✅ Tool call successful!');
|
||||
resolve(response.result);
|
||||
} else {
|
||||
console.log('📨 Received other message:', response);
|
||||
}
|
||||
ws.close();
|
||||
} catch (error) {
|
||||
console.error('❌ Error parsing response:', error);
|
||||
reject(error);
|
||||
ws.close();
|
||||
}
|
||||
});
|
||||
|
||||
ws.on('error', (error) => {
|
||||
console.error('❌ WebSocket error:', error);
|
||||
reject(error);
|
||||
});
|
||||
|
||||
ws.on('close', () => {
|
||||
console.log('🔌 WebSocket connection closed');
|
||||
});
|
||||
|
||||
// Timeout after 10 seconds
|
||||
setTimeout(() => {
|
||||
if (ws.readyState === WebSocket.OPEN) {
|
||||
ws.close();
|
||||
reject(new Error('Test timeout'));
|
||||
}
|
||||
}, 10000);
|
||||
});
|
||||
}
|
||||
|
||||
testToolCall().catch(console.error);
|
Reference in New Issue
Block a user