Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
START_URLNoOpen this URL on start
FIREFOX_HEADLESSNoRun without UI
ACCEPT_INSECURE_CERTSNoIgnore TLS errors

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_pagesA

List open tabs (index, title, URL). Selected tab is marked.

new_pageB

Open new tab at URL. Returns tab index.

navigate_pageB

Navigate selected tab to URL.

select_pageA

Select active tab by index, URL, or title. Index takes precedence.

close_pageA

Close tab by index.

get_page_textA

Get the visible text of the page (document.body.innerText). Caps at maxLength (default 20000 chars); saveTo saves the full text to a file.

take_snapshotA

Capture DOM snapshot with stable UIDs. A UID stays valid across snapshots until its element is removed or the page navigates. Output caps at maxLines (default 100); scope with selector or dump the full tree with saveTo.

resolve_uid_to_selectorA

Resolve UID to CSS selector. Fails if the element is gone.

clear_snapshotC

Clear snapshot UIDs. Usually not needed.

click_by_uidA

Click element by UID. Set dblClick for double-click.

hover_by_uidB

Hover over element by UID.

fill_by_uidB

Fill text input/textarea by UID.

drag_by_uid_to_uidB

Drag element to another (HTML5 drag events).

fill_form_by_uidA

Fill multiple form fields at once.

upload_file_by_uidB

Upload file to file input by UID.

press_keyA

Press a single key, optionally with modifiers, to submit, dismiss, navigate or trigger a shortcut. Not for entering text: use fill_by_uid instead.

type_textA

Type text key by key into the focused element, optionally followed by a key such as Enter. Use fill_by_uid to set the value of a known input; use this for elements that only react to real typing, such as autocomplete fields and rich text editors.

screenshot_pageB

Capture viewport screenshot as base64 PNG. Set fullPage for the whole scrollable document.

screenshot_by_uidA

Capture element screenshot by UID as base64 PNG.

print_pageB

Print the current page to a PDF file using print CSS. Returns the saved file path.

list_downloadsA

List downloads tracked since startup, including status and saved file path.

clear_downloadsA

Clear the tracked downloads buffer.

set_download_behaviorA

Control how downloads are handled: allow (save to a destination folder), deny (cancel), or reset to default. Avoids the native save-file dialog. Requires a recent Firefox.

accept_dialogA

Accept browser dialog. Provide promptText for prompts.

dismiss_dialogA

Dismiss browser dialog.

navigate_historyA

Navigate history back/forward. UIDs become stale.

set_viewport_sizeA

Set viewport dimensions in pixels.

get_firefox_outputA

Retrieve Firefox output (stdout/stderr including MOZ_LOG, warnings, crashes, stack traces). Returns recent output from the capture file. Use filters to focus on specific content.

get_firefox_infoA

Get information about the current Firefox instance configuration, including binary path, environment variables, and output file location.

close_firefox_sessionA

Ends the browser session. If the server connected to your existing Firefox, this releases the connection and leaves Firefox running. If the server started Firefox itself, this closes it. Call this when the browser task is complete and no further browser interaction is expected.

install_extensionA

Install a Firefox extension using WebDriver BiDi webExtension.install command. Supports installing from archive (.xpi/.zip), base64-encoded data, or unpacked directory.

uninstall_extensionA

Uninstall a Firefox extension using WebDriver BiDi webExtension.uninstall command. Requires the extension ID returned by install_extension or obtained from list_extensions.

screencast_startA

Start recording a screencast (video) of the current page viewport, saving the output to a file in the downloads directory. Returns a screencast id to pass to screencast_stop. Multiple recordings can run at once.

screencast_stopA

Stop an in-progress screencast recording started with screencast_start and finalize the video file. Returns the path to the saved file.

evaluate_scriptA

Run a JS function in the page and return its result. Prefer this for targeted reads (a value, text, computed style, whether an element exists) instead of a full take_snapshot. Use the UID interaction tools for clicking, typing, and filling.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 35 tools

Disambiguation5/5

Every tool targets a distinct action or resource, with descriptions explicitly clarifying potential overlaps like press_key vs type_text, take_snapshot vs evaluate_script, and screenshot_page vs screenshot_by_uid. No two tools are indistinguishable.

Naming Consistency4/5

Nearly all tools follow a snake_case verb_noun pattern (e.g., list_pages, click_by_uid, install_extension). Minor deviations exist: screencast_start/stop use noun_verb order, and new_page is adjective_noun, but overall the naming is highly consistent.

Tool Count2/5

With 35 tools, the set exceeds the 25+ threshold for 'too many' and feels heavy for a browser automation server. While the domain is broad, several tools (e.g., accept_dialog/dismiss_dialog, clear_snapshot, clear_downloads) could be consolidated or grouped, making the count excessive.

Completeness4/5

The surface covers page management, element interaction, forms, downloads, extensions, screencasts, and script evaluation. Minor gaps exist for iframe/frame switching, cookie/storage management, and explicit wait tools, but these can be worked around via evaluate_script.

Maintenance

ActivityActive
ResponsivenessNo issues