sandboxed-browser-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BROWSER_CURSOR | No | Set to 0 to turn off the arrow drawn over the page (the glide before each action; it appears in screenshots). | on |
| BROWSER_FRAMES | No | Set to 0 to turn off the frame watcher. | on |
| BROWSER_CDP_URL | No | The browser's debugging endpoint. Must match BROWSER_CDP_PORT if you moved it. | http://127.0.0.1:9322 |
| BROWSER_STREAM_HOST | No | Host of the frame stream. | 127.0.0.1 |
| BROWSER_STREAM_PATH | No | Websocket path of the stream, if your image differs. | tries /api/websockets?role=viewer, then /websocket |
| BROWSER_STREAM_PORT | No | Port of the frame stream (the compose file publishes it). | 8082 |
| BROWSER_ALLOWED_HOSTS | No | Comma list of allowed host names; use *.example.com for any subdomain (not example.com itself: list it too). Host names only, no ports or paths. Empty allows any host. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_navigateA | Open a URL in the current tab. To follow a link on the page, use browser_click. Answers with the new page's view; fails with the browser's error if it does not load. |
| browser_backA | Go back one page in the current tab and show it. Fails when there is no page to go back to. |
| browser_snapshotA | Show the current tab's viewport (plus a margin) as text, with a ref for each element. Format: a header with title, URL and scroll position; then one line per element, indented by nesting: role "name": text [ref] states, e.g. button "Save" [e12] disabled. A word with a ref in a sentence, like pricing[e30], is a clickable link. Cut text ends with (+N chars: get_text eN). The footer says how much is above and below. |
| browser_clickA | Click an element by its ref: link, button, checkbox, tab, menu item. Refs only, not CSS selectors or text. Answers with what changed on screen, not a new snapshot. |
| browser_typeA | Replace the text of a field or editable area by its ref; submit presses Enter after. Dropdowns: browser_select; single keys: browser_key. Answers with what changed on screen, not a new snapshot. |
| browser_selectA | Choose an option of a native dropdown (combobox, listbox) by its ref and the option's visible text. For one built from buttons and lists, open it and use browser_click. Answers with what changed on screen. |
| browser_keyA | Press a key or combination in the page: submit, close a dialog, move through a list, a shortcut. Text into a field: browser_type. Answers with what changed on screen. |
| browser_scrollA | Scroll the current tab (one screen down by default) and show the new view; with ref, scroll that element into view instead. What stayed pinned (a sticky sidebar) is named, not repeated. Says when already at the top or bottom. |
| browser_findA | Find elements anywhere on the page, in view or not, whose name or text contains all the words (any case). Up to 15 matches, nearest first, each a view line with its ref and where it is (in view, or pixels above/below); act on one directly. Use it to reach something off screen that you can name, instead of scrolling through the page to look for it. |
| browser_get_textA | Read a section's full text by its ref (paragraph, article, table, list, thread, main area), e.g. where a view cut text short. Plain text: headings #, list items -, table cells |; long text comes in pages of max_chars, each ending with the offset to continue from. Use it to read long text instead of scrolling through it or taking screenshots of it. |
| browser_screenshotA | A JPEG of the current tab's screen, or of one element by ref. A glass arrow in it (maybe labelled) is your cursor, not the page: it points at your last action's target, so if it is elsewhere, that action hit the wrong element. Only when layout, images or a canvas matter: browser_snapshot and browser_get_text are cheaper to read. |
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
Each tool targets a distinct action/input modality (navigate vs click vs type vs select vs key vs scroll), and the 'viewing' tools are explicitly differentiated: snapshot for structured viewport, get_text for full section text, find for locating off-screen elements, screenshot only for visual layout. Descriptions actively cross-reference each other to steer away from misselection.
All tools use a consistent browser_ prefix in snake_case, with mostly verb-based names (navigate, click, type, scroll, find, get_text). Minor deviations like browser_back, browser_key, and browser_screenshot (noun-only) break the verb_noun pattern slightly but remain predictable.
11 tools is well within the ideal 3-15 range, and each tool corresponds to a distinct browser interaction primitive without redundancy. The set feels deliberately scoped rather than padded.
Core browsing lifecycle is well covered: navigation, back, interaction (click/type/select/key), reading (snapshot/get_text/find/screenshot), and scrolling. Notable gaps remain: no hover (needed for many menus), no tab management despite 'current tab' framing, and no explicit wait-for-load/idle primitive.