ultrabrowse
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TYPESAFE_API_KEY | Yes | API key for TypeSafe (https://typesafe.ai) used to pick every click. | |
| TEXT_MODEL_API_KEY | Yes | OpenAI-compatible API key used for typing text and for extract. Default provider is OpenRouter (https://openrouter.ai/keys). | |
| TEXT_MODEL_BASE_URL | No | Optional base URL for an OpenAI-compatible /chat/completions endpoint. Defaults to OpenRouter. | |
| ULTRABROWSE_CDP_URL | No | URL of an existing Chrome DevTools Protocol endpoint (e.g. http://127.0.0.1:9222) to connect to a running Chrome. | |
| ULTRABROWSE_HEADLESS | No | Set to '1' to run Chrome in headless mode (hide the window). |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browseA | Accomplish a plain-English goal on a web page end to end: a Jev-driven Chrome picks and executes every click and field at ~300 ms per step. Pass |
| snapshotA | Fast, no-model read of a page (~0.5 s): visible text plus numbered interactive elements you can pass to click/type_text. Pass a url to open it, or omit to re-read the current tab. Needs no API keys. |
| extractA | Get structured JSON from a page. With |
| browse_manyA | Run several url+goal tasks in parallel tabs and return all results (compact). Use for checking many sites or pages at once. |
| clickA | Click element [index] from the last snapshot/browse. Returns the new snapshot. |
| type_textA | Type text into editable element [index] (replaces its content). Set submit=true to press Enter afterwards. Returns the new snapshot. |
| press_keyA | Press a key in the current tab: Enter, Escape, Tab, Backspace, ArrowUp/Down/Left/Right, PageDown, Home, End, or a single character. Returns the new snapshot. |
| scrollB | Scroll the current tab down (or up) and return the new snapshot. |
| backA | Go back one page in the current tab's history and return the new snapshot. |
| screenshotB | JPEG screenshot of the current tab. |
| closeA | Close the current tab. |
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 11 tools
Most tools are clearly distinct: click, type_text, press_key, scroll, back, close, snapshot, screenshot, and extract each have a specific role. Some overlap exists between browse, browse_many, and extract with a goal, since all can perform autonomous browsing, but their outputs and parallelism distinguish them.
Tool names mostly follow an imperative command style with snake_case for multi-word names like type_text, press_key, and browse_many. Minor deviations like snapshot, screenshot, and back are noun/adverb-style rather than verb_ noun, but the overall pattern is readable and predictable.
11 tools is well-scoped for a browser automation server. Each tool covers a distinct aspect of browsing, reading, interacting, or tab management without excessive redundancy or an overwhelming surface.
The core browser lifecycle is well covered: navigation via browse/back, reading via snapshot/screenshot/extract, interaction via click/type_text/press_key/scroll, and tab handling via close. Minor gaps like reload or forward navigation are absent, but the high-level browse tool can work around many of those cases.