textual-mcp-server
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| textual_launchC | Launch a Textual app headlessly for QA interaction. |
| textual_stopB | Stop a running Textual app session. |
| textual_pressC | Simulate key presses in a running Textual app. |
| textual_clickA | Click a widget by CSS selector in a running Textual app. |
| textual_type_textC | Type text into the focused input widget. |
| textual_hoverC | Hover the mouse over a widget by CSS selector. |
| textual_snapshotB | Snapshot current app state — widget tree with refs, focus, bindings, errors. |
| textual_screenshotB | Capture a visual screenshot of the running app (text or SVG). |
| textual_queryB | Query widgets matching a CSS selector with their properties. |
| textual_get_screen_stackC | Get the current screen stack with modal indicators. |
| textual_wait_forC | Wait for a condition: idle, animation, workers, or widget. |
| textual_check_errorsC | Check for collected errors and app exceptions. |
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 12 tools
Each tool targets a distinct action: launching, clicking, hovering, typing, pressing keys, querying widgets, taking screenshots, capturing state, waiting for conditions, checking errors, and stopping the app. No two tools overlap in purpose.
All tools follow a consistent 'textual_' prefix followed by a descriptive verb in snake_case (e.g., textual_click, textual_query). No deviations in naming convention.
With 12 tools, the server covers all essential interactions for headless QA of Textual apps: launching, UI manipulation, state inspection, and error checking. The count is well-scoped without unnecessary redundancy.
The tool set covers core workflows (launch, interact, query, debug, stop). Minor gaps like drag-and-drop or scroll are absent but not critical for typical testing scenarios.