e2e-verifier
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| E2E_LOCALE | No | Browser locale. | |
| E2E_API_KEY | No | API key for authenticating HTTP requests. | |
| E2E_BROWSER | No | Browser to use. One of chromium, firefox, webkit. | chromium |
| E2E_HEADLESS | No | Headless mode (true/false). Defaults to true. | |
| E2E_IS_TOUCH | No | Emulate touch screen. | |
| E2E_LOG_FILE | No | Path to log file. | |
| E2E_API_TOKEN | No | API token for authenticating HTTP requests. | |
| E2E_HAS_TOUCH | No | Emulate touch support. | |
| E2E_HTTP_HOST | No | Host for HTTP transport. | |
| E2E_HTTP_PORT | No | Port for HTTP transport. | |
| E2E_IS_MOBILE | No | Emulate mobile device. | |
| E2E_LOG_LEVEL | No | Logging level. | |
| E2E_ALLOW_HTTP | No | Allow HTTP connections (not just HTTPS). | |
| E2E_USER_AGENT | No | User agent string for browser. | |
| E2E_FFMPEG_PATH | No | Path to FFmpeg executable for video processing. | |
| E2E_LOGGER_FILE | No | Log file path. | |
| E2E_TIMEZONE_ID | No | Timezone ID. | |
| E2E_ARTIFACT_DIR | No | Root directory for artifacts | artifacts |
| E2E_BLOCKED_URLS | No | Comma-separated URL patterns to block. | |
| E2E_COLOR_SCHEME | No | Color scheme override. | |
| E2E_FORCE_COLORS | No | Force high-contrast colors. | |
| E2E_INSECURE_TLS | No | Allow insecure TLS connections. | |
| E2E_LOGGER_LEVEL | No | Logging level (e.g., debug, info). | |
| E2E_MAX_SESSIONS | No | Maximum number of concurrent sessions. | |
| E2E_PROXY_BYPASS | No | Proxy bypass list. | |
| E2E_PROXY_SERVER | No | Proxy server URL. | |
| E2E_ALLOWED_HOSTS | No | Comma-separated list of hosts the browser may navigate to. Default: localhost,127.0.0.1,[::1]. Use `*` to allow any host if E2E_ALLOW_ANY_HOST is true. | |
| E2E_DEFAULT_DEBUG | No | Enable debug logging by default. | |
| E2E_LOGGER_FORMAT | No | Log format. | |
| E2E_ALLOW_ANY_HOST | No | Disable the host allowlist. Equivalent to allowing any host. | |
| E2E_HAR_OUTPUT_DIR | No | Directory where HAR files are saved. | |
| E2E_HTTP_BASE_PATH | No | Base path for HTTP endpoints. | |
| E2E_LOGGER_CONSOLE | No | Whether to log to console. | |
| E2E_REDUCED_MOTION | No | Reduce motion in browser. | |
| E2E_SCREENSHOT_DIR | No | Directory where screenshots are saved. | |
| E2E_VIEWPORT_WIDTH | No | Browser viewport width. | |
| E2E_ALLOWED_ORIGINS | No | Allowed origins for CORS. | |
| E2E_DEFAULT_BROWSER | No | Default browser to use. | |
| E2E_DEFAULT_VERBOSE | No | Enable verbose output by default. | |
| E2E_MCP_SERVER_NAME | No | Name of the MCP server instance. | |
| E2E_VIEWPORT_HEIGHT | No | Browser viewport height. | |
| E2E_DEFAULT_BASE_URL | No | Default base URL for relative navigation. | |
| E2E_DEFAULT_HEADLESS | No | Whether to run browser in headless mode by default. | |
| E2E_DEFAULT_SAVE_HAR | No | Whether to save HAR by default. | |
| E2E_SESSION_EXPIRY_S | No | Session expiry in seconds. | |
| E2E_TRACE_OUTPUT_DIR | No | Directory where trace files are saved. | |
| E2E_VIDEO_OUTPUT_DIR | No | Directory where videos are saved. | |
| E2E_DEFAULT_SAVE_LOGS | No | Whether to save logs by default. | |
| E2E_MAX_PARALLEL_RUNS | No | Maximum number of parallel runs allowed. | |
| E2E_MAX_RUN_TIMEOUT_S | No | Maximum allowed timeout for a run in seconds. | |
| E2E_SESSION_AUTO_OPEN | No | Automatically open session. | |
| E2E_SESSION_BLACKLIST | No | Blacklist patterns for sessions. | |
| E2E_SESSION_MAX_TOTAL | No | Maximum total sessions. | |
| E2E_SESSION_WHITELIST | No | Whitelist patterns for sessions. | |
| E2E_DEFAULT_SAVE_TRACE | No | Whether to save trace by default. | |
| E2E_DEFAULT_SAVE_VIDEO | No | Whether to save video by default. | |
| E2E_DEFAULT_USER_AGENT | No | Default user agent. | |
| E2E_EXTRA_HTTP_HEADERS | No | Extra HTTP headers as JSON. | |
| E2E_MCP_SERVER_VERSION | No | Version of the MCP server. | |
| E2E_SESSION_AUTO_CLOSE | No | Automatically close session. | |
| E2E_SESSION_KEEP_TRACE | No | Keep session trace files. | |
| E2E_SESSION_KEEP_VIDEO | No | Keep session video files. | |
| E2E_SESSION_MAX_ACTIVE | No | Maximum number of active sessions. | |
| E2E_SESSION_MAX_AGE_MS | No | Session maximum age in milliseconds. | |
| E2E_SESSION_TIMEOUT_MS | No | Session timeout in milliseconds. | |
| E2E_CUSTOM_BROWSER_ARGS | No | Additional browser arguments. | |
| E2E_DEFAULT_COLLECT_HAR | No | Whether to collect HAR files by default. | |
| E2E_DEVICE_SCALE_FACTOR | No | Device scale factor. | |
| E2E_IGNORE_HTTPS_ERRORS | No | Ignore HTTPS errors. | |
| E2E_MAX_ARTIFACT_AGE_MS | No | Maximum artifact age in milliseconds. | |
| E2E_SESSION_KEEP_ERRORS | No | Keep session error logs. | |
| E2E_SESSION_KEEP_RESULT | No | Keep session result files. | |
| E2E_SESSION_MAX_RESULTS | No | Maximum number of results per session. | |
| E2E_USE_SYSTEM_BROWSERS | No | Use system-installed browsers instead of Playwright-managed. | |
| E2E_DEFAULT_SAVE_NETWORK | No | Whether to save network logs by default. | |
| E2E_SESSION_KEEP_CONSOLE | No | Keep session console logs. | |
| E2E_SESSION_KEEP_NETWORK | No | Keep session network logs. | |
| E2E_SESSION_MAX_INACTIVE | No | Maximum number of inactive sessions. | |
| E2E_BROWSER_HEADLESS_MODE | No | Override headless mode setting. | |
| E2E_DEFAULT_COLLECT_TRACE | No | Whether to collect trace by default. | |
| E2E_DEFAULT_COLLECT_VIDEO | No | Whether to collect video by default. | |
| E2E_DEFAULT_RUN_TIMEOUT_S | No | Default timeout for entire run in seconds. | |
| E2E_SESSION_ALLOWED_HOSTS | No | Allowed hosts for sessions. | |
| E2E_BLOCKED_RESOURCE_TYPES | No | Comma-separated resource types to block. | |
| E2E_DEFAULT_RUN_TIMEOUT_MS | No | Default run timeout in milliseconds. | |
| E2E_DEFAULT_VIEWPORT_WIDTH | No | Default viewport width. | |
| E2E_SESSION_KEEP_ARTIFACTS | No | Keep session artifacts. | |
| E2E_DEFAULT_STEP_TIMEOUT_MS | No | Default step timeout in milliseconds. | |
| E2E_DEFAULT_VIEWPORT_HEIGHT | No | Default viewport height. | |
| E2E_SESSION_ALLOWED_ORIGINS | No | Allowed origins for sessions. | |
| E2E_SESSION_CLEANUP_ON_EXIT | No | Cleanup session on exit. | |
| E2E_SESSION_IDLE_TIMEOUT_MS | No | Session idle timeout in milliseconds. | |
| E2E_DEFAULT_SAVE_ATTACHMENTS | No | Whether to save attachments by default. | |
| E2E_DEFAULT_SAVE_SCREENSHOTS | No | Whether to save screenshots by default. | |
| E2E_DEFAULT_TRACE_TIMEOUT_MS | No | Default trace timeout in milliseconds. | |
| E2E_DEFAULT_VIDEO_TIMEOUT_MS | No | Default video timeout in milliseconds. | |
| E2E_SESSION_KEEP_SCREENSHOTS | No | Keep session screenshots. | |
| E2E_CUSTOM_BROWSER_EXECUTABLE | No | Path to a custom Chromium executable. | |
| E2E_DEFAULT_EXPECT_TIMEOUT_MS | No | Default expect timeout in milliseconds. | |
| E2E_DEFAULT_SESSION_MAX_AGE_MS | No | Default session maximum age. | |
| E2E_DEFAULT_COLLECT_SCREENSHOTS | No | Whether to collect screenshots by default. | |
| E2E_DEFAULT_DEVICE_SCALE_FACTOR | No | Default device scale factor. | |
| E2E_SESSION_CLEANUP_INTERVAL_MS | No | Session cleanup interval in milliseconds. | |
| E2E_ARTIFACT_CLEANUP_INTERVAL_MS | No | Artifact cleanup interval in milliseconds. | |
| E2E_DEFAULT_FULL_PAGE_SCREENSHOT | No | Whether to take full-page screenshots by default. | |
| E2E_DEFAULT_ARTIFACT_RETENTION_MS | No | Default artifact retention in milliseconds. | |
| E2E_DEFAULT_NAVIGATION_TIMEOUT_MS | No | Default navigation timeout in milliseconds. | |
| E2E_DEFAULT_SCREENSHOT_TIMEOUT_MS | No | Default screenshot timeout in milliseconds. | |
| E2E_DEFAULT_SESSION_IDLE_TIMEOUT_MS | No | Default session idle timeout. | |
| E2E_DEFAULT_ARTIFACT_CLEANUP_INTERVAL_MS | No | Default artifact cleanup interval in milliseconds. |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| session_openA | Open an interactive, recorded browser session on a URL and return its id, the result of the first navigation and a screenshot. Everything that happens in the session is recorded as video, trace, screenshots and logs until session_close. Use session_act to drive the page step by step. |
| session_actA | Execute one step in an open session and return the step result plus a screenshot. A step is any action or assertion from the ticket schema, for example {"id": "s1", "action": "click", "target": {"role": {"role": "button", "name": "Save"}}} or {"id": "s2", "action": "expect_visible", "target": {"test_id": "toast"}}. Failed assertions do not end the session; they are marked in the video with a red frame. Call get_schema(kind="step") for all step types. |
| session_annotateA | Draw an annotation into the recorded video: a callout with your message, optionally with a frame around a target element (tone info, success or failure). The annotation stays visible for hold_ms and is captured as a screenshot. |
| session_screenshotB | Take a screenshot of the current page of an open session (viewport or full page). |
| session_inspectA | Inspect the current page of an open session without changing it: ARIA snapshot plus candidate targets matching a query, each with a suggested Target. |
| session_closeA | Close an open session, stop the recording and write video.webm, trace.zip, report.md, chapters.vtt and result.json. Optionally pass your own verdict (reproduced, not_reproduced, fixed, still_broken, passed, failed, inconclusive) and summary; otherwise they are derived from the executed assertions. Fetch artifacts with get_artifact using the session id as run_id. |
| session_listA | List open interactive sessions. |
| get_schemaB | Return the JSON schema for a BugTicket, Scenario, RunOptions or RunResult. |
| validate_ticketA | Validate a ticket without opening a browser; returns errors and warnings. |
| run_ticketA | Execute a BugTicket in a real browser. Records an annotated video, a Playwright trace, screenshots and logs, then returns the verdict per acceptance criterion. Use mode=reproduce before a fix and mode=verify after it. |
| run_scenarioC | Execute a Scenario (steps without bug semantics) and record artifacts. |
| get_runB | Return the stored RunResult of a finished run. |
| list_runsA | List finished runs, newest first, optionally filtered by ticket or outcome. |
| get_artifactB | Fetch one artifact of a run (video, trace, report, screenshot, logs). Small files are returned inline, large ones as a path. |
| delete_runA | Delete a finished run and all of its artifacts. |
| probe_targetA | Open a URL once and report status, title, load time and console errors. |
| discover_elementsB | Inspect a page: returns the ARIA snapshot and candidate targets matching a query, each with a suggested Target for tickets. steps_before can log in or navigate first. |
| server_infoB | Versions, configuration and run counts of this server. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| ticket_from_report | Turn a free-text bug report into a BugTicket JSON for run_ticket. |
| analyze_run | Analyze a finished run: root-cause hypothesis and where to look in the trace. |
| refine_target | Propose a more precise Target for a step that failed to locate its element. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ticket_schema | JSON schema of BugTicket |
| scenario_schema | JSON schema of Scenario |
| run_options_schema | JSON schema of RunOptions |
| run_result_schema | JSON schema of RunResult |
| runs_index | All finished runs, newest first |
TDQS
Scored across 18 tools
Tools are grouped into clear clusters: target probing, session control, schema/validation, ticket/scenario runs, and run artifacts. The only real ambiguity is discover_elements vs session_inspect, which perform nearly the same ARIA snapshot/target query and differ only by whether an interactive session is already open; probe_target and session_open also both open a URL but have different intent.
Most tools follow clear snake_case verb_noun names (validate_ticket, run_ticket, list_runs, delete_run), and the session_* prefix makes that cluster immediately recognizable. It is not completely uniform because session tools invert the order (session_open instead of open_session) and server_info is a noun_noun outlier, but the pattern is still predictable.
18 tools is on the heavier side, but each one maps to a distinct stage of the workflow: one-off probing, session lifecycle, ticket/scenario execution, and artifact retrieval. The count is slightly above the ideal range but feels justified by the domain rather than bloated.
The tool surface covers the full lifecycle: probe/open, inspect/discover targets, act/assert, annotate/screenshot, close session, run tickets/scenarios, fetch runs/artifacts, and delete. There are no obvious dead ends or missing operations for a bug-verification server.