Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_console_messagesA

List all console messages for the currently selected page since the last navigation.

get_console_messageA

Gets a console message by its ID. You can get all messages by calling list_console_messages.

clear_consoleA

Clear all captured console messages.

list_network_requestsA

List all network requests for the currently selected page since the last navigation. Includes historical requests made before monitoring started (with limited detail).

get_network_requestB

Gets a network request by its reqid from the listed requests.

clear_networkA

Clear all captured network requests.

evaluate_scriptA

Evaluate a JavaScript function inside the currently selected page. Returns the response as JSON, so returned values have to be JSON-serializable.

take_screenshotB

Take a screenshot of the page or element.

take_snapshotA

Take a text snapshot of the currently selected page based on the DOM/a11y tree. The snapshot lists page elements along with a unique identifier (uid). Always use the latest snapshot. Prefer taking a snapshot over taking a screenshot.

wait_forA

Wait for a condition on the page: text content, a CSS selector, or a JS predicate. Returns a snapshot once the condition is met. At least one condition (text, selector, or predicate) must be provided.

list_pagesC

Get a list of pages (tabs) open in Safari.

select_pageA

Select a page as context for future tool calls.

close_pageA

Closes a page by its ID. The last open page cannot be closed.

new_pageA

Open a new tab and load a URL.

navigate_pageA

Go to a URL, or back, forward, or reload.

resize_pageB

Resizes the selected page's window so that the page has specified dimensions.

handle_dialogB

If a browser dialog was opened, use this command to handle it.

get_page_contentA

Get the page title, URL, and visible text content.

get_html_sourceA

Get the full HTML source of the current page.

extract_linksA

Extract all links from the current page with their text and href.

extract_metaA

Extract meta tags from the current page (og:, twitter:, description, etc.).

scrollA

Scroll the page in a direction by a given amount of pixels.

scroll_to_elementB

Scroll an element into view by its UID from a snapshot.

get_computed_styleA

Get computed CSS styles for an element by its UID from a snapshot. Returns commonly useful properties by default, or specify exact properties.

get_cookiesA

Get browser cookies for the current page. Optionally filter by name or domain.

set_cookieB

Set a browser cookie with the given name, value, and optional attributes.

delete_cookieA

Delete a cookie by name, or delete all cookies when no name is provided.

get_storageA

Read from localStorage or sessionStorage. Returns all entries or a specific key.

set_storageA

Write a key-value pair to localStorage or sessionStorage.

delete_storageA

Delete a key from localStorage or sessionStorage, or clear all entries.

clickC

Clicks on the provided element.

click_atC

Clicks at the provided coordinates.

right_clickB

Right-click (context click) on the provided element.

select_optionA

Select an option from a dropdown by value or visible label.

hoverC

Hover over the provided element.

fillC

Type text into an input, text area or select an option from a element.

fill_formB

Fill out multiple form elements at once.

type_textB

Type text using keyboard into a previously focused input.

dragB

Drag an element onto another element.

press_keyA

Press a key or key combination. Use this when other input methods like fill() cannot be used.

upload_fileA

Upload a file through a provided file input element.

set_color_schemeA

Emulate prefers-color-scheme (light/dark mode) in the current page. Overrides CSS @media rules, the color-scheme property, and JavaScript matchMedia() (including change events) so the page behaves as if the OS preference changed. Use "reset" to restore the system default.

get_color_schemeA

Check the currently active color scheme preference (light or dark) as seen by the page, and whether an MCP override is active.

set_device_emulationA

Emulate an Apple device by resizing the viewport and overriding device pixel ratio and touch support at the JS level. The user agent is overridden via navigator.userAgent (JS-level only — HTTP request headers are not affected). Choose a preset (iPhone SE, iPhone 14, iPhone 15 Pro, iPhone 16 Pro Max, iPad Mini, iPad Air, iPad Pro 11, iPad Pro 13) or provide custom values. Use reset_device_emulation to restore defaults.

reset_device_emulationA

Remove all device emulation overrides and restore the original viewport size, JS-level user agent, device pixel ratio, and touch settings.

inspect_viewport_metaA

Parse the viewport meta tag and validate it against iOS Safari best practices. Reports issues like missing width=device-width, disabled zoom (accessibility violation), missing viewport-fit=cover for safe areas, and other common misconfiguration.

get_safe_area_insetsA

Read the current CSS safe-area-inset values (top, right, bottom, left) as seen by the page. These are non-zero on notched iPhones when viewport-fit=cover is set. Also checks whether the page uses env(safe-area-inset-*) in its stylesheets.

check_ios_web_app_readinessA

Audit the page for iOS Safari "Add to Home Screen" / PWA readiness. Checks apple-touch-icon, apple-mobile-web-app-capable, status bar style, theme-color, manifest link, and splash screen configuration.

check_webkit_compatibilityA

Check CSS on the current page against the live Safari session. Extracts every CSS property via structured DOM APIs, runs CSS.supports() in the actual browser, and reports what is broken right now — unsupported properties, missing -webkit- prefixes, and known Safari rendering quirks.

Prompts

Interactive templates invoked by user choice

NameDescription
safari-devtoolsGetting started with Safari DevTools MCP — tool overview, workflows, and Safari-specific notes.
a11y-debuggingAccessibility auditing workflow — inspect the a11y tree, find WCAG issues, and run automated checks.
safari-specific-debuggingDebug Safari/WebKit quirks — CSS prefixes, JS feature gaps, CORS/ITP issues, and cross-browser differences.
performance-debuggingPerformance analysis — Core Web Vitals, Navigation Timing, resource waterfalls, and Safari-specific optimizations.

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/HayoDev/safari-devtools-mcp'

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