laya-browser-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LAYA_CAPS | No | Comma or space separated tool capability groups to enable (e.g., 'network,storage'). If unset or empty, only core tools are registered. | |
| LAYA_REPO | No | Hugging Face repository source coordinate for downloading weights. | |
| LAYA_CACHE | No | Download cache root directory for weights. | ~/.cache/receptron-laya |
| LAYA_ENGINE | No | Laya engine mode: 'stub' forces the deterministic engine; 'auto' uses weights when present. | auto |
| LAYA_BROWSER | No | Browser engine to use: 'chromium', 'firefox', or 'webkit'. | chromium |
| LAYA_REVISION | No | Hugging Face revision source coordinate for weights. | |
| LAYA_MAX_STEPS | No | Autopilot step budget. | 15 |
| LAYA_MODEL_DIR | No | Local ONNX bundle directory (skips download). If not set, weights are not used. | |
| LAYA_SUBFOLDER | No | Hugging Face subfolder source coordinate for weights. | |
| LAYA_ALLOWED_DOMAINS | No | Comma-separated navigation allow-list. If set, navigation is restricted to these hosts and their subdomains. | |
| LAYA_BROWSER_CHANNEL | No | Chromium channel (e.g., 'chrome'). If not set, no channel is used. | |
| LAYA_BROWSER_HEADLESS | No | Whether to run the browser in headless mode. Set to 'true' to run headless (default), 'false' to run headed. | true |
| LAYA_BROWSER_VIEWPORT | No | Viewport size in WIDTHxHEIGHT format. | 1280x800 |
| LAYA_ALLOW_UNSAFE_CODE | No | Set to 'true' to let browser_run_code_unsafe actually run raw Playwright snippets. | false |
| LAYA_DESTRUCTIVE_GUARD | No | Whether the destructive-form guard is enabled. Set to 'false' to disable. | true |
| LAYA_EXECUTION_PROVIDERS | No | Comma-separated onnxruntime execution providers. | cpu |
| LAYA_CONFIDENCE_THRESHOLD | No | Confidence threshold for Autopilot escalation. Steps below this threshold are escalated to the client LLM. | 0.6 |
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 |
|---|---|
| browser_navigateB | Navigate the browser to a URL and return a snapshot of the resulting page. |
| browser_navigate_backA | Navigate back to the previous page and return a snapshot of the resulting page. |
| browser_resizeA | Resize the browser viewport to the given width and height, then return a snapshot. |
| browser_snapshotA | Capture a compact accessibility snapshot of the current page. Interactive elements carry stable [ref=eN] markers used as targets for other tools. |
| browser_clickB | Click an element identified by a snapshot ref (eN) or a Playwright selector. |
| browser_typeB | Type text into an editable element identified by a snapshot ref (eN) or selector. |
| browser_hoverB | Hover over an element identified by a snapshot ref (eN) or a Playwright selector. |
| browser_findA | Search the current page snapshot for controls whose name/value/role matches a text substring or a regexp, returning each match's ref (eN). |
| browser_dragB | Drag one element (ref eN or selector) and drop it onto another element. |
| browser_dropA | Drop files (via |
| browser_fill_formA | Fill multiple form fields (textbox/checkbox/radio/combobox/slider) in a single call, then return one snapshot. |
| browser_evaluateC | Evaluate a JavaScript function on the page, or on an element (ref eN or selector), and return the JSON result. |
| browser_select_optionA | Select one or more options in a dropdown identified by a snapshot ref (eN) or selector. |
| browser_press_keyA | Press a keyboard key (or combination) on the current page. |
| browser_wait_forA | Wait for text to appear, text to disappear, or a fixed number of seconds. |
| browser_closeA | Close the browser session and release all resources. |
| browser_tabsA | Manage browser tabs: list open tabs, create a new tab (optionally at a URL), close a tab by index, or select a tab by index. |
| browser_handle_dialogA | Register how the NEXT JavaScript dialog (alert/confirm/prompt/beforeunload) is handled: accept or dismiss, with optional prompt text. Call this before the action that triggers the dialog. |
| browser_file_uploadA | Upload one or more files by setting them on a file input identified by a ref (eN) or selector (defaults to the first file input on the page). |
| browser_take_screenshotB | Capture a screenshot of the page (or a single element via a ref/selector) as a PNG, JPEG, or WebP image content block. |
| browser_console_messagesA | Return the console messages (and uncaught page errors) captured since the session started; optionally filter to errors only. |
| browser_network_requestsA | List the network requests captured since the session started, one per line (index, method, status, URL). |
| browser_network_requestA | Return the full detail (method, URL, resource type, status, headers) of one captured network request, selected by |
| browser_run_code_unsafeA | DANGEROUS: run a raw Playwright JavaScript snippet (async function body with |
| laya_run_goalA | Autopilot: pursue a natural-language goal on the current (or given) page using the local Laya decision engine. Returns a step-by-step transcript, the final snapshot, and an independent final-page verification. If model weights are absent, returns a message directing you to the Assist-mode tools. |
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 25 tools
Every tool has a clearly distinct purpose, even close ones like browser_drop vs browser_file_upload are differentiated by operation type (drag-and-drop vs input setting). The safe browser_evaluate and unsafe browser_run_code_unsafe are explicitly separated by danger level, eliminating ambiguity.
All 24 browser_* tools follow a consistent verb_noun pattern (browser_click, browser_find, browser_take_screenshot), with clear action-first naming. The single exception, laya_run_goal, breaks the pattern but is logically distinguished as an autopilot feature, which is a minor deviation.
25 tools is on the upper end of the ideal range but justified for a full-featured browser automation server. Each tool covers a distinct interaction or inspection capability, and the count is not excessive enough to overwhelm an agent given the breadth of the domain.
The tool surface covers navigation, full interaction (click, type, drag, drop, form fill, selection, key press), element finding, waiting, dialogs, tabs, screenshots, file handling, console/network inspection, and evaluation. Minor gaps exist like explicit scroll or session management, but these can be worked around via evaluate or existing tools.