Skip to main content
Glama

Run E2E tests

run-test
DestructiveIdempotent

Execute Playwright E2E test suites and return pass/fail stats with each failure's file, line, kind, and message while diagnosing install, server, syntax, crash, and timeout problems.

Instructions

Run the project's Playwright tests: stats plus each failure's file:line, kind and message. Diagnoses missing installs, dead dev servers, syntax errors, crashes and timeouts (kills the tree, keeps partial results). Reports progress; background: true returns a run id for long suites. Runs are recorded for analyze-history.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
argsNoExtra Playwright flags from an allowlist, as --flag or --flag=value (e.g. --repeat-each=3, --shard=1/2, --trace=on)
grepNoOnly run tests whose title matches this regex
configNoplaywright.config path or 1-based index when the project has several configs
headedNoRun with a visible browser window
browserNoPlaywright project name to run (matched against playwright.config projects)
retriesNo
workersNo
testFilesNoTest files/directories relative to the project root; "file:line" is supported. Omit to run the whole suite.
timeoutMsNoHard wall-clock limit for the whole run; the process tree is killed past it (default 120000)
backgroundNoReturn a run id at once; poll get-run-status
lastFailedNoOnly re-run tests that failed in the previous run (Playwright --last-failed) — the fast fix → re-run loop
projectRootNoProject directory; defaults to the server working directory
testTimeoutMsNoPer-test timeout passed to Playwright
retryOnFailureNoAuto retry failing tests once before reporting failure (default true; ignored when retries is set)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.2

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations by describing the failure taxonomy it diagnoses (missing installs, dead dev servers, syntax errors, crashes, timeouts), the timeout behavior (kills the process tree, keeps partial results), progress reporting, and the background run-id workflow. With destructiveHint=true already declared, it usefully clarifies that a timeout kill is scoped and partial results survive, though it doesn't state side effects like artifact writes or install attempts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences, front-loaded with what the tool does and its output before behavioral details. Nearly every clause earns its place, though the telegraphic style ('stats plus each failure's file:line, kind and message') is compact to the point of being terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter runner with no output schema, the description does the necessary work: it describes the return payload, progress reporting, timeout kill behavior, and how to retrieve results from long suites via background plus get-run-status. Remaining gaps (artifact locations, interaction with sharding) are minor given the rich schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 86% and the schema itself is highly detailed (allowlisted flags, timeout semantics, last-failed loop), so the parameters are already well documented. The description adds the partial-results behavior on timeout and the background polling workflow, but most parameter meaning is carried by the schema rather than the prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Run the project's Playwright tests') and names the exact output shape: stats plus each failure's file:line, kind and message. It also carves out a distinct role from siblings by framing itself as the runner that records runs for analyze-history and drops a run id for get-run-status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational context: background:true returns a run id for long suites and you poll get-run-status, which names a concrete alternative and the condition selecting it. It also points forward to analyze-history. It stops short of explicit when-not-to-use guidance (e.g., when to prefer list-tests or get-failure instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.