Skip to main content
Glama

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
NameRequiredDescriptionDefault
argsNoArguments to pass to the script
scriptYesJavaScript code to execute
sessionIdYesSession identifier

Implementation Reference

  • 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)}` } ]; }
  • 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}`); } }
  • 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'] } },
  • 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'] }

Latest Blog Posts

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/lxman/safari-mcp-server'

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