Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
IPHONE_SAFARI_DRIVER_URLNoURL of an existing safaridriver instance to attach to, for debugging. If not set, the server starts its own safaridriver.
IPHONE_SAFARI_DEVICE_NAMENoName of the iPhone device to use.
IPHONE_SAFARI_DEVICE_TYPENoType of the iPhone device to use (e.g. iPhone, iPad).
IPHONE_SAFARI_DEVICE_UDIDNoUDID of the iPhone device to use.
IPHONE_SAFARI_DISCOVERY_TIMEOUTNoNumber of seconds to retry session creation for safaridriver device discovery. Defaults to 45.45

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
session_infoA

Report what device/browser this session is actually attached to.

Use this first to confirm you are driving the real iPhone and not Mac Safari.

navigateA

Open a URL in Safari on the iPhone and wait for load.

screenshotC

Screenshot the current iPhone Safari viewport.

snapshotA

Compact structured view of the page: URL, viewport, scroll position, and every visible interactive element with a CSS selector, label and on-screen rect.

Prefer this over page_source() — it is the cheap way to decide what to click.

page_sourceA

Raw HTML of the current page, truncated to max_chars.

clickC

Click/tap an element. by is one of css, xpath, text.

type_textA

Type into an input on the phone, optionally clearing it first or submitting the form.

tapA

Send a real single-finger touch at viewport coordinates (CSS pixels).

Use when there is no sensible selector — e.g. a canvas or a custom overlay.

scrollA

Scroll the page by a pixel delta. Positive dy scrolls down.

evaluate_javascriptA

Run JavaScript in the page and return the result as a string.

Wrap in return ... to get a value back, e.g. return document.title;

console_logsA

Console messages and uncaught errors captured since the last navigation.

The capture hook is installed by navigate(); if a page navigated itself, call install_console_capture() to re-arm it.

install_console_captureA

(Re)install the console/error capture hook on the current page.

network_timingsB

Resource timings from the Performance API — URL, type, duration, transfer size.

A zero transferSize on a non-cached entry usually means the request failed.

go_backA

Navigate back in Safari's history.

reload_pageA

Reload the current page and re-arm console capture.

close_sessionA

End the automation session on the phone. A later call reconnects automatically.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/ikatkov/iphone-safari-mcp'

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