Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Desktop UI automation for AI agents: verified clicks, UI Automation, OCR, scenario runs, recording
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
MCP_LOG_DIR, MCP_LOG_MAX_MB, MCP_LOG_RETAIN_DAYS, MCP_SEARCH_DIRS, MCP_LAUNCH_APPS, MCP_NOTIFY, MCP_INPUT_LOCK, MCP_INPUT_LOCK_STALL_MS¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Descargar el archivo .mcpb del creador
El enlace lleva al archivo del propio creador; no lo alojamos ni lo reempaquetamos. Abre el archivo y Claude Desktop lo instalará.
Ejecuta esto en tu terminal
Completa los valores vacíos antes de ejecutarlo.
Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
MCP_LOG_DIR envMCP_LOG_MAX_MB envMCP_LOG_RETAIN_DAYS envMCP_SEARCH_DIRS envMCP_LAUNCH_APPS envMCP_NOTIFY envMCP_INPUT_LOCK envMCP_INPUT_LOCK_STALL_MS envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 8 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub JeenyJAI, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (3.27.23) llegó al registro hace 19 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas MCPB en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Tethered Trust
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
MCP server for automated desktop UI testing. A single binary — no runtime, no dependencies, no installer.
Windows x64 only. There are no macOS or Linux builds yet. If you need one, write to
JeenyJAI@gmail.com: requests decide what comes next.
Gives AI agents eyes and hands: screenshots, window management, mouse, keyboard, UI Automation, OCR, file search. Replays saved scenarios as regression runs — after every build, without an agent. Records what you do into a draft scenario, checks accessibility, watches the resources of the application under test.
AI agents can trigger actions in applications but can't see the screen. This server bridges that gap:
Agent triggers action → takes screenshot → sees the result →
switches window → clicks a button → verifies → writes report
Fully autonomous, no user involvement required.
3.26 — Scenario run
Claude replays a saved test: 232 steps, one call, 66 s
Installation and setup
Setting up the server and the basic tools
mcp-test-utils.exe from Releases (the .sig file next to it is for the built-in updater — you do not need it).Claude Desktop: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": { "test-utils": { "command": "D:\\path\\to\\mcp-test-utils.exe" } } }
Claude Code:
claude mcp add test-utils -- "D:\path\to\mcp-test-utils.exe"
For other clients, see their documentation.
Optional settings (logging, file search, starting programs) go into env — see Environment variables:
{
"mcpServers": { "test-utils": { "command": "D:\\path\\to\\mcp-test-utils.exe", "env": { "MCP_LOG_DIR": "D:\\path\\to\\logs", "MCP_SEARCH_DIRS": "D:\\Projects\\app1;D:\\Projects\\app2", "MCP_LAUNCH_APPS": "C:\\Program Files\\MyApp\\myapp.exe" } } } }
Four of them appear only when configured: search_in_files and find_files with MCP_SEARCH_DIRS, enable_logging and disable_logging with MCP_LOG_DIR — by default the server lists 27 tools.
| Tool | Description |
|---|---|
take_screenshot | Screenshot of the entire desktop; quality presets from full to minimal (fewer tokens) |
take_window_screenshot | Screenshot of a specific window |
read_screen_text | OCR the entire screen (Windows OCR) |
read_region_text | OCR a screen region with precise word coordinates |
| Tool | Description |
|---|---|
list_windows | List windows with id, title, app, process id, position, size, state |
focus_window | Bring a window to the front and restore it if minimized; optionally set its position and size |
launch_app | Start a program from the allowlist of the server config (MCP_LAUNCH_APPS) and wait for its window |
close_window | Close a window as its X button would and wait until it is gone; reports a "Save changes?" prompt |
| Tool | Description |
|---|---|
mouse_click | Click an element by id or at coordinates (left / right / middle, double); can wait for the expected effect and retry |
mouse_move | Move the cursor to a point or to a UI element |
mouse_drag | Drag between elements or points at a human pace (HTML5 drag-and-drop works) |
mouse_scroll | Scroll the mouse wheel over an element and wait until the scrolling stops |
keyboard_type | Type text (full Unicode — Latin, Cyrillic, CJK, emoji) and check that the field shows what was typed |
keyboard_press | Press a key (Enter, Tab, F1–F12, arrows, etc.), optionally several times |
keyboard_shortcut | Press a key combination (Ctrl+S, Alt+F4, Ctrl+Shift+P, etc.) |
| Tool | Description |
|---|---|
list_ui_elements | UI Automation tree — buttons, fields, menus with ids, values, states and exact coordinates; filters by name, value, class |
get_focused_element | Which element has keyboard focus now, and in which window |
read_text | Full text of a document or field through UI Automation (up to 100 000 characters per call), no OCR |
ui_action | Act on an element without mouse or keyboard: invoke, toggle, expand, select an option, set a value, scroll into view |
check_accessibility | Accessibility defects: unnamed controls, controls the Tab key cannot reach, duplicate ids, zero-size controls |
| Tool | Description |
|---|---|
process_info | Memory, handles, GDI objects, threads and CPU of the app under test — call it repeatedly to spot leaks |
| Tool | Description |
|---|---|
wait_for | Wait for a window, an element or its state instead of sleeping |
batch | Run up to 20 tool calls in one request, with find and assert steps |
run_scenario | Replay a saved scenario, a suite or data rows and get a pass/fail report (see Regression runs) |
record_scenario | Record what you do in one window into a draft scenario (see Recording) |
| Tool | Description |
|---|---|
search_in_files | Search text or regex in files within allowed directories (like VS Code Find in Files) |
find_files | Find files and directories by name pattern (glob), like "Go to File" |
| Tool | Description |
|---|---|
get_usage_guide | Usage guide for agents: core rules + sections on request |
prepare_feedback | Prepare a suggestions file for the author (personal data masked; you review it and send it by email — nothing is sent automatically) |
| Tool | Description |
|---|---|
enable_logging | Start recording tool calls to JSONL + screenshots (opt-in) |
disable_logging | Stop recording, get session stats |
An agent finds a path through your application once and saves it as a scenario — a JSON file. After that the scenario replays without an agent: fast, the same way every time, no tokens spent.
mcp-test-utils --check order-form.json # validate the file, touch nothing
mcp-test-utils --run order-form.json # run: report in the console and in order-form.report.json
0 — passed, 1 — a step failed, 2 — did not run. Ready for a CI job after each build.run_scenario(path) and learns the format from get_usage_guide(section: "scenarios").--suite runs several scenario files in order with one summary; --data rows.csv runs a scenario once per row (columns become variables); --junit report.xml adds JUnit XML for CI. mcp-test-utils --suite regress.suite.json --junit regress.xml
Do the steps yourself and get a draft scenario instead of describing them to an agent:
mcp-test-utils --record order-form.json --app myapp
Only that window and its dialogs are recorded, with a notice on screen; Ctrl+Alt+Shift+R (or Enter in the console) stops the recording. Password fields are never read; text typed into a terminal is recorded only with --keys-text. An agent can start the same recording with record_scenario.
| Variable | Description | Default |
|---|---|---|
MCP_LOG_DIR | Path for log sessions. Without it, logging tools are hidden | — |
MCP_LOG_MAX_MB | Session size limit (warning when exceeded) | 500 |
MCP_LOG_RETAIN_DAYS | Auto-delete sessions older than N days. 0 to disable | 30 |
MCP_SEARCH_DIRS | Allowed directories for search_in_files and find_files (separated by ;). Without it, both are hidden | — |
MCP_LAUNCH_APPS | Programs (.exe files or folders, separated by ;) that launch_app may start. Shells, script hosts and interpreters are refused even when listed. Without it, launch_app starts nothing | — |
MCP_NOTIFY | off hides the tray icon and the live call log window | — |
MCP_INPUT_LOCK | off disables the keyboard and mouse lock while the server sends input | — |
MCP_INPUT_LOCK_STALL_MS | Server silence (ms) after which the lock releases your input | 60000 |
MCP_NOTIFY=off hides it.MCP_INPUT_LOCK=off turns the lock off.If an agent hits a gap in the tools, it offers to prepare a short suggestions file (prepare_feedback). The file goes to Documents\mcp-test-utils feedback\, with personal data masked and no screenshots; review it and email it to JeenyJAI@gmail.com. Nothing is sent automatically.
check_accessibility finds unnamed controls, controls the Tab key cannot reach, duplicate idsprocess_info shows handles and GDI objects growing across repeated calls%LOCALAPPDATA%\mcp-test-utils\ and an update you installSolo se muestra el principio; lee el resto en el repo