Skip to main content
Glama

Browser Control MCP

by eyalzh
background.ts1.63 kB
import { WebsocketClient } from "./client"; import { MessageHandler } from "./message-handler"; import { getConfig, generateSecret } from "./extension-config"; function initClient(port: number, secret: string) { const wsClient = new WebsocketClient(port, secret); const messageHandler = new MessageHandler(wsClient); wsClient.connect(); wsClient.addMessageListener(async (message) => { console.log("Message from server:", message); try { await messageHandler.handleDecodedMessage(message); } catch (error) { console.error("Error handling message:", error); if (error instanceof Error) { await wsClient.sendErrorToServer(message.correlationId, error.message); } } }); } async function initExtension() { let config = await getConfig(); if (!config.secret) { console.log("No secret found, generating new one"); await generateSecret(); // Open the options page to allow the user to view the config: await browser.runtime.openOptionsPage(); config = await getConfig(); } return config; } initExtension() .then((config) => { const secret = config.secret; if (!secret) { console.error("Secret not found in storage - reinstall extension"); return; } const portList = config.ports; if (portList.length === 0) { console.error("No ports configured in extension config"); return; } for (const port of portList) { initClient(port, secret); } console.log("Browser extension initialized"); }) .catch((error) => { console.error("Error initializing extension:", error); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eyalzh/browser-control-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server