Skip to main content
Glama
safari-browser-mcp

safari-browser-mcp

by Jakub30cz

browser_gif

Record a Safari tab as an animated GIF using start, stop, status, and export actions; export requires ffmpeg and writes the file to the GIF directory.

Instructions

Record a tab as an animated GIF: start, stop, status, export. Export needs ffmpeg and writes the file to the GIF directory.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "browser_gif"
  }
}

Input Schema

NameRequiredDescriptionDefault
fpsNo
nameNo
tabIdNoTab id from browser_tabs. Default: current tab.
widthNo
actionYes
backendNoBackend: real = your Safari, driver = isolated safaridriver session. Default: session default.
maxFramesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden, and it does contribute two genuinely useful facts: export depends on ffmpeg and export writes a file to the GIF directory (a real side effect). It omits what status returns, whether stop discards frames, whether only one recording can be active, and what happens on start without a prior session.

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?

Two short sentences with the core purpose front-loaded and no filler. The terseness is close to the edge of under-specification rather than padding, so structure is good but the content budget is thin.

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 7-parameter, multi-action tool with no annotations and no output schema, the description is too sparse: it never says which parameters apply to which action (fps/width/maxFrames presumably start, name presumably export) or what each action returns. The ffmpeg prerequisite and output location are the main compensating details.

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

Parameters2/5

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

Schema description coverage is only 29%, so the description must compensate, but it adds nothing about fps, width, maxFrames, or name. It only implies the existence of a 'tab' (mapping loosely to tabId) and a 'GIF directory' (mapping loosely to name), leaving most parameters unclarified in both places.

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?

States a specific verb and resource ('Record a tab as an animated GIF') and enumerates the four actions, which distinguishes it reasonably well from browser_take_screenshot's still images. It stops short of explicitly naming the screenshot sibling as the non-animated alternative.

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 listing 'start, stop, status, export' hints at a lifecycle but never states that start must precede stop and export, nor whether a recording is per-tab or global. There is no guidance on when to pick this over browser_take_screenshot, and no exclusion of simultaneous sessions.

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