Skip to main content
Glama

apple_safari

Open URLs, manage tabs, navigate history, run JavaScript, and access bookmarks, reading list, and recent history in Safari.

Instructions

Control Safari browser. Actions: open_url, current_url, current_title, list_tabs, close_tab, new_tab, reload, page_text, reading_list, js_execute, back, forward, bookmarks, history_recent, private_window, close_window, tab_count.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL to open
codeNoJavaScript code to execute
actionYesopen_url: Open a URL in Safari; current_url: Get URL of the current Safari tab; current_title: Get title of the current Safari tab; list_tabs: List all open Safari tabs across all windows; close_tab: Close the current Safari tab; new_tab: Open a new Safari tab, optionally with a URL; reload: Reload the current Safari page; page_text: Get visible text of current Safari page (first 2000 chars). Requires 'Allow JavaScript from Apple Events' in Safari > Develop.; reading_list: Add a URL to Safari Reading List; js_execute: Execute JavaScript in the current Safari tab. Requires 'Allow JavaScript from Apple Events' in Safari > Develop.; back: Go back in browser history; forward: Go forward in browser history; bookmarks: List top-level Safari bookmarks (reads from Bookmarks.plist); history_recent: Get recent Safari history entries (up to 15); private_window: Open a new private browsing window in Safari; close_window: Close the front Safari window; tab_count: Count total open tabs across all Safari windows
confirmNoSet to true to confirm a protected/destructive action. Without this, protected actions return a preview instead of executing.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden for disclosing behavioral traits. It merely lists action names without mentioning side effects, destructive actions (e.g., close_tab, close_window), or permission requirements. The schema does provide some details (e.g., confirm parameter for protected actions), but the description itself adds nothing beyond a bare enumeration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that begins with the core purpose ('Control Safari browser') followed by a complete action list. It is efficient and avoids fluff, though the long action list is slightly redundant with the schema enum.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 17 actions and no output schema, the description provides only a high-level overview. The schema compensates with per-action details, so the basics are covered, but the description lacks context on the tool's overall scope (e.g., navigation, tabs, reading list) and how to combine actions. It is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all four parameters (url, code, action, confirm) having descriptive text. The description adds no additional parameter semantics, but the baseline of 3 is appropriate since the schema already handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool controls the Safari browser and enumerates 17 specific actions, making the purpose unambiguous. However, it does not explicitly distinguish itself from the sibling apple_chrome tool beyond the browser name, so it loses the point for explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use Safari versus other browser tools (e.g., apple_chrome) or when to prefer specific actions. There are no contextual hints, prerequisites, or exclusions; the agent must infer usage entirely from the schema's action descriptions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/lacausecrypto/apple-mcp-server'

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