yatt-ts
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Checks that the MCP server and the engine (sidecar) respond. |
| schemaA | Complete documentation of the YATT test format (schema v1): fields, actions, variables, dataset and usage guide. Read it before creating tests. |
| baseline_listA | Lists the saved reference images (visual asserts). |
| baseline_getC | Returns a reference image as PNG (for visual comparison). |
| test_listA | Lists the tests saved in the YATT library (names). |
| test_getB | Returns a saved test as a full JSON object (steps, variables, environments, dataset). |
| test_createA | Creates a new test. Accepts the content as a JSON string or as an object. Validates the schema (schemaVersion, steps, actions). Fails if the name already exists unless overwrite: true. |
| test_updateA | Replaces the full content of an existing test (same validation as test_create). |
| test_deleteA | Deletes a test from the library (database and tests/.yatt.json file). |
| test_renameA | Renames a test in the library (updates the DB and the mirror file). |
| test_duplicateA | Duplicates an existing test under a new name (default " (copy)"). |
| test_validateA | Validates test content (JSON string or object) without saving it. Returns {ok: true, doc: summary} or {ok: false, error}. Useful before test_create/test_update. |
| test_export_playwrightA | Generates the code of a saved test as a TypeScript spec (.spec.ts), in Playwright (@playwright/test) or Jest (jest-environment-playwright) format, with sub-flows embedded as functions. Returns the content; with write: true it saves the file into exports/.spec.ts like the app. |
| report_listA | Lists the saved run reports (names .json and .html). |
| report_getA | Returns the content of a report (parseable JSON). To diagnose failures, the report has steps[] with status ok/fail, error and ms. |
| report_deleteA | Deletes a saved report (DB + file under reports/). |
| db_queryA | Executes a read-only query (SELECT/WITH/EXPLAIN/PRAGMA) against the app-under-test database. Pass the connection in |
| test_runB | Runs a saved test headless (Chromium engine by default) and saves a report in the library. Parameters: variable environment, per-run overrides, per-step timeout. Returns the summary with the steps and the report name. |
| test_run_datasetA | Data-driven: runs a test once per row of overrides and returns each row result plus totals. No report is saved. |
| browser_openB | Open (or reopen) the controlled browser. headless=true by default; visible only when you need to point by hand. |
| browser_closeA | Closes the controlled browser (clears the browser session). |
| browser_statusB | State of the controlled browser: open/closed, engine, URL and interaction. |
| browser_previewA | Captures the current viewport as a PNG image (the AI sees the page) + url, title, scroll and dimensions. It is the main visual inspection tool. |
| browser_evalA | Executes arbitrary JavaScript in the current page and returns the value (useful to inspect the DOM, read texts, count elements, try selectors). |
| browser_run_stepA | Runs a YATT (leaf) step in the current page: click, type, hover, assert_*, goto, wait_visible, etc. Returns ok/error, duration and, on failure, an evidence screenshot. With |
| browser_conditionA | Checks whether an element exists in the page (or whether a variable condition holds); waits for the condition with optional polling (timeoutMs > 0 repeats the check until true or the timeout expires). Returns {value, elapsedMs}. |
| browser_scrollA | Scrolls the page vertically (dy in pixels, positive moves down) and returns the updated preview. |
| browser_click_atA | Click at viewport coordinates (x, y in CSS pixels); returns the resolved selector of the clicked element (data-testid → id → CSS path) plus the updated preview. Prefer browser_run_step with a selector for reproducible steps. |
| tab_openA | Opens a new tab (optionally with a URL) and returns the tab list. |
| tab_listA | Lists the open tabs: index, active, title and URL. |
| tab_switchA | Switches to the tab with the given index (0-based). |
| tab_closeA | Closes a tab (by index; without an index closes the active one). |
| session_saveA | Saves the current session state (cookies/localStorage) under a name, for tests with prior authentication. |
| session_listB | Lists the saved sessions. |
| session_deleteA | Deletes a saved session. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-test | Guide to create a YATT test from scratch, run it and leave it green |
| diagnose-report | Analyzes a run report, finds the root cause of the failures and proposes fixes |
| explore-page | Explores a page with the live browser (visible screenshots) and produces a map of the UI |
| export-spec | Exports a YATT test to Playwright code (TypeScript spec) |
| flow-battery | Guide to turn repeated flows into a reusable battery: login with variables, saved sessions, sub-flows and data-driven runs |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| schema | Documentation of the YATT test format (schema v1) |
TDQS
Scored across 35 tools
The tool set is organized by clear resource prefixes (test_, report_, browser_, tab_, session_), and each operation targets a distinct resource or action. A few browser-related tools such as browser_run_step, browser_condition, and browser_click_at have overlapping interaction/inspection responsibilities, but the descriptions clarify their boundaries.
The vast majority of tools follow a consistent snake_case verb_noun pattern, e.g. test_create, browser_open, and session_delete. The exceptions are ping and schema, which are single-word names that do not follow the pattern but are still clear and unlikely to confuse.
35 tools is well over the 25+ threshold and creates a heavy selection surface for an agent. The tools are logically grouped, but the overall count feels excessive for a single MCP server even though each tool has a legitimate role in the testing workflow.
The test lifecycle is well covered: create, read, update, delete, rename, duplicate, validate, run, and export are all present. Minor gaps exist in baseline management, which only offers list and get with no create/delete, and reports lack comparison or export operations, but these are workable gaps.