Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENAI_MODELNoThe model to use, e.g. deepseek-chat
OPENAI_API_KEYNoYour API key for the OpenAI-compatible endpoint (added to .env)
BRIDGE_PROVIDERNoThe LLM backend provider, e.g. openai for any OpenAI-compatible endpoint
OPENAI_BASE_URLNoThe base URL of the OpenAI-compatible endpoint, e.g. https://api.deepseek.com

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
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
observeA

Read the current screen as one accessibility tree and return it as text.

Call this first, and again whenever you need fresh refs. The result starts with a SURFACE line:
'browser' means the tree is the web page (refs b1, b2, ...); 'desktop' means it is the native window that has
keyboard focus such as Explorer, Calculator, a Save dialog or a Windows prompt (refs d1, d2, ...). A Chrome dialog
drawn on top of the page (print preview, permission bubble) is included with d refs. Each line shows the ref, role,
accessible name, value and state of an element, followed by a visible-text excerpt and the files downloaded so far.
Nothing is clicked or changed.
clickA

Click one element by ref: a page element through the DOM, or a native control through UI Automation.

Use for buttons, links, checkboxes, menu items, list items and tabs. Clicks on controls whose name suggests an
irreversible effect (Send, Pay, Delete, Submit, ...) first show the human a native confirmation box and are refused
if it is declined or times out. Returns a RESULT line (ok or ERROR with the reason) followed by a fresh observation,
so you do not need a separate observe call.
type_textA

Enter text into a field by ref, or send keystrokes to the focused window when no ref is given.

Keystrokes are only sent if the window observed last is still in front; if focus was stolen in between, the call
fails with an explanation instead of typing into the wrong window. Never use this for passwords: use
fill_credential, which keeps the secret out of the conversation. Returns a RESULT line and a fresh observation.
pressA

Press a single key or key chord in the focused window.

Chords with Control, Alt or Windows modifiers and function keys are sent at operating-system level so they reach browser shortcuts and native apps; plain keys go to the page when the browser is in front. Pressing Enter while a risky control is focused asks the human first. Returns a RESULT line and a fresh observation.

scrollA

Scroll the page or the focused window to reveal more content, then return a fresh observation.

Use when the element you need is not in the tree yet; the browser observer only lists elements inside the viewport.

navigateA

Open a URL in the agent's own browser tab and return the page tree once it has loaded.

Browser-only: if a native window is in front, the browser is brought back first. URLs matching the user's denied
patterns are refused by policy. Returns a RESULT line and a fresh observation.
launchA

Start a Windows app, open a file or folder with its default app, or open a URI, and bring that window to the front.

This is how a task leaves the browser: after launch, observe shows the native window with d refs. Launching
something that is already open only re-focuses its window. Apps, folders and files outside the user's permission
manifest are refused. Returns a RESULT line and a fresh observation of the new window.
focus_browserA

Bring the agent's browser window back to the front and return the page tree.

Use after working in a native app when the next step is on the web page again, or when observe reports that another application's window is in front.

fill_credentialA

Fill a login form with a username and password that live in the operating-system keyring.

The secret is read by the executor and typed directly; it is never returned to you and never appears in the
observation. Use this instead of type_text for any password field. Works on web forms and on native login dialogs.
Returns a RESULT line naming the two fields that were filled, plus a fresh observation.
list_downloadsA

List the full local paths of files the browser downloaded in this session, newest last.

Use the returned path with launch to open a downloaded file in its desktop app, or to tell the user where it is. Returns '(no downloads yet)' when nothing has been downloaded.

list_skillsA

List the skills learned from earlier successful runs: name, task description, step count and success record.

A skill is a recorded cross-environment procedure that replay_skill can execute without a model. Check this before
planning a task from scratch; if a listed description matches the task, replay it.
replay_skillA

Execute a learned skill step by step without a model and report what happened.

Each step re-finds its target by role and name on the current screen; values the skill learned from a page are re-read from the current page. The first line says whether all steps ran or at which step replay stopped and why, followed by a short trail of what was seen after each step and a fresh observation. If replay stopped, continue the task from the current state with the other tools.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.3/5.0

Scored across 12 tools

Disambiguation5/5

Each tool maps to a distinct GUI action (observe, click, type_text, press, scroll, navigate, launch, focus_browser, fill_credential, list_downloads, list_skills, replay_skill) with no overlapping responsibilities. The only potential overlap—observe, focus_browser, and navigate all return a page tree—is resolved by clear context triggers: read current screen vs. open a new URL vs. bring the browser forward.

Naming Consistency4/5

All names use lowercase snake_case consistently, which prevents confusion. However, the set mixes single-verb imperatives (click, press, observe, scroll, navigate, launch) with verb_noun compounds (list_downloads, type_text, focus_browser, fill_credential, list_skills, replay_skill), so it is not a uniform verb_noun pattern throughout.

Tool Count5/5

Twelve tools is well-scoped for a cross-environment GUI automation agent. Each tool earns its place by covering a necessary capability: observation, interaction, navigation, app launch, focus management, credential filling, downloads, and learned-skill replay.

Completeness4/5

The set covers the core GUI automation lifecycle well (observe, act, navigate, launch, focus, fill credentials, replay skills). Minor gaps remain, such as explicit wait-for-condition, tab/window management beyond simple focus, drag/hover, and clipboard read; agents can often work around these using key chords and fresh observations.

Maintenance

ActivityMaintained
ResponsivenessNo issues