Sleeper
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SLEEPER_ALLOW_ANY_EXTENSION | No | Set to false to restrict extension origins to only those listed in SLEEPER_ALLOWED_EXTENSION_IDS. | |
| SLEEPER_ALLOWED_EXTENSION_IDS | No | Comma-separated list of allowed browser extension IDs, used together with SLEEPER_ALLOW_ANY_EXTENSION=false. |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sleeper_batchB | Run ordered browser actions in one request; stops at the first failure by default |
| sleeper_stateB | Get page state for the selected Sleeper profile (url, title, focus, visibility) |
| sleeper_sessionsB | List connected stable browser installation IDs for routing |
| sleeper_tabsB | List tabs in the selected Sleeper browser profile |
| sleeper_snapshotC | Headings/inputs/buttons/links summary |
| sleeper_gotoC | Navigate to URL |
| sleeper_backD | History back |
| sleeper_framesC | List cross-origin iframes |
| sleeper_getC | Get page/element properties |
| sleeper_findC | Inspect elements by CSS selector |
| sleeper_find_textC | Find element by innerText |
| sleeper_clickC | Click element by CSS selector (supports :has-text) |
| sleeper_click_allC | Click every matching element |
| sleeper_click_textC | Click element by text |
| sleeper_hoverD | Mouseover element |
| sleeper_focusD | Focus element |
| sleeper_typeC | Type into input (React-compatible events) |
| sleeper_keysC | Dispatch key events on active element |
| sleeper_pressC | Keyboard events on element/active |
| sleeper_submitC | Submit form |
| sleeper_readC | Read single element (text/html/value/attr) |
| sleeper_read_allC | Read all matching elements |
| sleeper_waitD | Wait for selector |
| sleeper_wait_textD | Wait for text |
| sleeper_wait_untilC | Wait for a structured page condition; JavaScript predicates are Chromium-only |
| sleeper_wait_urlC | Wait until URL contains pattern |
| sleeper_execC | Execute arbitrary JS in Chromium; unavailable in signed Firefox builds |
| sleeper_formsC | Enumerate form inputs |
| sleeper_fill_formC | Fill form by name/id/placeholder (JSON map) |
| sleeper_selectC | Set select value + change event |
| sleeper_extractD | Extract selector->text map |
| sleeper_scrollC | Scroll by pixels or to selector |
| sleeper_scroll_untilC | Scroll until text/selector appears |
| sleeper_wait_dialogD | Wait for dialog |
| sleeper_networkD | Per-tab request log or fetch |
| sleeper_mediaC | Per-tab media request log |
| sleeper_wait_xhrC | Wait for XHR matching URL substring |
| sleeper_wait_downloadC | Wait for a download matching a URL/filename pattern to finish |
| sleeper_consoleD | Page console capture |
| sleeper_shotC | Viewport PNG screenshot (data URL) |
| sleeper_screenshotC | Alias for shot — viewport PNG screenshot |
| sleeper_uploadB | Upload explicit base64 file contents to an input; native paths are unsupported. Total JSON request limit: 1 MiB. |
| sleeper_dragC | Drag source to target |
| sleeper_dblclickC | Double-click element |
| sleeper_checkC | Check checkbox |
| sleeper_uncheckC | Uncheck checkbox |
| sleeper_newtabC | Open new tab via extension API |
| sleeper_apiC | Call page backend API with captured auth token (background fetch) |
| sleeper_dialogC | Install auto accept/dismiss dialog hook |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 49 tools
Descriptions generally clarify boundaries, but several clusters overlap heavily: element reading (get, find, find_text, read, read_all, extract) and clicking (click, click_text, click_all) require careful reading to pick correctly, and shot/screenshot are literal aliases. press vs keys vs type also border on each other.
Nearly all tools follow a consistent sleeper_ prefix with lowercase snake_case verb or verb_noun names (goto, click_text, wait_url), which is highly predictable. Minor deviations like the shot/screenshot alias and single-word verbs slightly break the pattern.
49 tools is well above a comfortable range for a single server and includes redundant entries (shot/screenshot alias, multiple near-duplicate click/read/find variants). The surface could be consolidated substantially without losing capability.
Coverage of browser automation is broad: navigation, interaction, waiting, forms, uploads, dialogs, tabs, frames, network/console capture, and screenshots. Only some gaps remain (e.g. cookie/storage management), but core workflows are fully supported.