OpenBrowser
Open a web browser to a specific URL within the RushDB graph database environment for direct web access during development workflows.
Instructions
Open a web browser to a specific URL
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to open |
Implementation Reference
- tools/OpenBrowser.ts:5-54 (handler)The core handler function for the OpenBrowser tool. Validates the input URL (only http/https allowed), determines platform-specific browser opener command, and executes it securely using child_process.execFile to open the URL in the default browser.export async function OpenBrowser(params: { url: string }) { const { url } = params; // Validate URL to prevent command injection let validatedUrl: string; try { // Validate URL format const parsedUrl = new URL(url); // Only allow http and https protocols if (!['http:', 'https:'].includes(parsedUrl.protocol)) { return { success: false, message: "Invalid URL protocol. Only http and https are supported.", }; } validatedUrl = parsedUrl.toString(); } catch (e) { return { success: false, message: `Invalid URL format: ${e instanceof Error ? e.message : String(e)}`, }; } // Determine the command based on platform const command = platform() === "darwin" ? "open" : platform() === "win32" ? "start" : "xdg-open"; return new Promise<{ success: boolean; message: string }>( (resolve) => { // Use execFile instead of exec to prevent command injection execFile(command, [validatedUrl], (error) => { if (error) { resolve({ success: false, message: `Failed to open browser: ${error.message}`, }); } else { resolve({ success: true, message: `Successfully opened ${validatedUrl} in default browser`, }); } }); } ); }
- tools.ts:301-309 (schema)The input schema and metadata definition for the OpenBrowser tool, used for MCP tool listing and validation.{ name: 'OpenBrowser', description: 'Open a web browser to a specific URL', inputSchema: { type: 'object', properties: { url: { type: 'string', description: 'The URL to open' } }, required: ['url'] } },
- index.ts:318-329 (registration)Tool dispatch registration in the MCP CallToolRequestSchema handler's switch statement, which calls the OpenBrowser function with validated arguments and formats the response.case 'OpenBrowser': const openBrowserResult = await OpenBrowser({ url: args.url as string }) return { content: [ { type: 'text', text: openBrowserResult.message } ] }
- index.ts:72-75 (registration)Registers the tools list (including OpenBrowser schema) for MCP ListTools requests.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools }
- index.ts:38-38 (registration)Imports the OpenBrowser handler function for use in the MCP server.import { OpenBrowser } from './tools/OpenBrowser.js'