safari_execute_script
Execute JavaScript code within Safari browser sessions to automate tasks, manipulate web elements, or retrieve data using browser context. Requires session ID and script input.
Instructions
Execute JavaScript in the browser context
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Arguments to pass to the script | |
| script | Yes | JavaScript code to execute | |
| sessionId | Yes | Session identifier |
Implementation Reference
- src/safari-mcp-server.ts:330-341 (handler)MCP server tool handler for 'safari_execute_script' that extracts parameters, delegates to SafariDriverManager.executeScript, and formats the result as text content.private async executeScript(args: Record<string, any>): Promise<Array<{ type: string; text: string }>> { const { sessionId, script, args: scriptArgs = [] } = args; const result = await this.driverManager.executeScript(sessionId, script, scriptArgs); return [ { type: 'text', text: `Script execution result:\n${JSON.stringify(result, null, 2)}` } ]; }
- src/safari-driver.ts:280-292 (helper)Core implementation in SafariDriverManager that retrieves the session's Selenium WebDriver and executes the provided JavaScript script with arguments.async executeScript(sessionId: string, script: string, args: any[] = []): Promise<any> { const session = this.getSession(sessionId); if (!session) { throw new Error(`Session ${sessionId} not found`); } try { return await session.driver.executeScript(script, ...args); } catch (error: unknown) { const errorMessage = error instanceof Error ? error.message : String(error); throw new Error(`Script execution failed: ${errorMessage}`); } }
- src/safari-mcp-server.ts:137-152 (registration)Tool registration in the ListTools handler, defining the name, description, and input schema for 'safari_execute_script'.{ name: 'safari_execute_script', description: 'Execute JavaScript in the browser context', inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Session identifier' }, script: { type: 'string', description: 'JavaScript code to execute' }, args: { type: 'array', description: 'Arguments to pass to the script' } }, required: ['sessionId', 'script'] } },
- src/safari-mcp-server.ts:140-151 (schema)Input schema definition for the 'safari_execute_script' tool, specifying parameters sessionId, script (required), and optional args array.inputSchema: { type: 'object', properties: { sessionId: { type: 'string', description: 'Session identifier' }, script: { type: 'string', description: 'JavaScript code to execute' }, args: { type: 'array', description: 'Arguments to pass to the script' } }, required: ['sessionId', 'script'] }