websense
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for the WebSocket hub used by the Chrome extension. | 38401 |
| WEBSENSE_AUTOCLIMB | No | Set to '1' to enable auto-climb real-click enhancement on Windows (off by default). | 0 |
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 |
|---|---|
| websense_guideA | START HERE. Full usage guide for the 21 consolidated WebSense tools: explore, read, click, type, form, scroll,… |
| explore_pageC | Page map: every interactive element with ref (E#), action type, predicted effect, forms (F#), content.… |
| readC | Read page content. format: "text" (innerText of selector, offset-paged) | "content" (smart SPA extraction) | "… |
| clickC | Interact by ref: click (default) | mode:"hover" | mode:"rightclick" | mode:"drag" (fromRef→toRef) — or x,y vie… |
| type_textB | Fill input(s) with the React-safe native setter + input/change events. One field: ref+text.… |
| formC | Form ops: action:"state" (fields, validation, submit readiness; formRef optional = all) | "select" (ref,value … |
| revealB | Pre-extract hidden content WITHOUT clicking: kind:"dropdown" (all options, native + ARIA) | "tabs" (all tab pa… |
| scrollB | Scroll: direction:"down"+amount (ticks, 1 tick ≈ 80% viewport; ref scrolls that element's container) — or y:<p… |
| navigateA | Navigate the CURRENT tab to a URL (reuses the tab — no tab spam). Pass newTab:true to open in a fresh tab inst… |
| tabsC | Tab/window ops: action:"list" | "switch" (tabId) | "close" (tabId) | "bind" (tabId, activate? — route page ops… |
| statusA | Diagnostics: kind:"page" (URL/title/modal/captcha/loading/viewport — call after actions) | "bridge" (hub+page … |
| waitB | Block until a condition (poll) OR a page event. Conditions (ANDed): urlContains, hasModal, hasCaptcha, notLoad… |
| evaluateA | Run JS on the page (extension isolated world, async-aware) — OR CSP-proof no-eval reads via query:{selector,ex… |
| axB | Native accessibility tree via chrome.debugger (CDP Accessibility domain) — for canvas SPAs (Telegram web, Trad… |
| screenshotA | Capture the visible tab via chrome.tabs.captureVisibleTab (chrome.tabs API — NO CDP, no bot-detection surface)… |
| press_keyB | Press key(s) with modifiers: press_key("c",["ctrl"]) = Ctrl+C, press_key("Tab",["shift"]) = Shift+Tab.… |
| dialogC | Resolve dialogs. JS dialogs (alert/confirm/prompt — captured, non-blocking): action:"accept"|"dismiss" + index… |
| sessionC | Exploration session: action:"reset" (clear map + tab binding — use when starting a new task) | "map" (pages vi… |
| network_logA | Captured fetch/XHR since last call (call once to start, again after interactions).… |
| console_logB | Captured browser console + JS errors since last call (console.log/warn/error/info/debug + window.… |
| cookiesC | Cookie session manager: action:"list" (metadata for a url domain — names, expiry, httpOnly, secure; NO values)… |
| respawn_offscreenA | Force-close + recreate the offscreen document so the CURRENT on-disk extension code loads.… |
| extension_reloadA | Reload the WebSense extension itself (chrome.runtime.reload) and wait for it to reconnect.… |
| clipboardB | System clipboard: action:"copy" (text) | "read" (needs clipboardRead permission; best-effort). |
| inspectB | Element introspection without vision: kind:"element" (is ref alive? re-resolve after re-render → {found,tag,te… |
| real_activate_tabC | REAL OS click on a Chrome tab pill via UIA (pywinauto click_input) — activates the tab so its content script i… |
| real_clickA | GENUINE OS-level click (SendInput) at VIEWPORT coords (x,y) — bypasses synthetic-click-ignoring submit buttons… |
| real_pasteA | GENUINE paste into a focused editor (click at VIEWPORT coords + system clipboard + real Ctrl+V) — for Lexical/… |
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 28 tools
Several tools overlap in action space: 'click' and 'real_click' both click at viewport coordinates, and 'real_activate_tab' overlaps with tab switching. However, the descriptions do clarify the mechanism differences well enough that an agent can usually pick the right tool.
Naming is inconsistent: verb_noun names like 'explore_page' and 'type_text' sit alongside bare verbs like 'read', 'click', and 'wait', plus bare nouns like 'tabs', 'cookies', and 'session'. The 'real_' prefix is only used on three tools, adding to the lack of a predictable pattern.
With 28 tools, the server exceeds the 25-tool threshold for 'too many'. Several tools are narrow lifecycle or debugging helpers, such as 'respawn_offscreen', 'extension_reload', and 'websense_guide', which inflate the surface without adding distinct user-facing capabilities.
The tool set thoroughly covers the browser-automation lifecycle: navigation, reading, clicking, typing, forms, scrolling, waiting, tabs, dialogs, cookies, console/network logs, screenshots, and JS evaluation. There are no obvious dead ends for common agent workflows.