tuxedo-qa
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tuxedo-qarun the login test and fix any failures"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tuxedo-qa
Servidor MCP que permite ao Claude, Gemini e outros assistentes de IA compatíveis com MCP criar, rodar, autocorrigir e monitorar testes Playwright do seu app — com dashboard local, cofre de credenciais e página pública de status.
O que é
O tuxedo-qa expõe 16 ferramentas MCP que cobrem todo o ciclo de vida de uma suíte de testes sintéticos: escrever specs em linguagem natural, rodar sob demanda ou por agendamento, autocorrigir falhas, acessar ambientes de staging protegidos por headers, e expor os resultados numa página pública de status — tudo conduzido por uma conversa com seu assistente de IA, sem precisar de pipeline de CI.
Veja a referência completa das ferramentas e casos de uso na landing page.
Subagent do Claude Code
O instalador também registra o subagent tuxedo-qa-tester (globalmente, em
~/.claude/agents/) — ele já sabe as 16 ferramentas, as convenções de teste do projeto
(usar o helper de credenciais em vez de senha fixa, brasil.ts pra CPF/CNPJ, human-loop.ts
pra 2FA) e quando usar run_until_pass vs. corrigir manualmente. O Claude Code aciona ele
sozinho quando a tarefa é sobre testes/QA; não precisa chamar por nome. (Só Claude Code por
enquanto — o Gemini CLI não tem esse mecanismo de subagents ainda.)
Related MCP server: Limetest MCP Server
Como começar
Instalador de um comando só — clona/atualiza, builda, e registra automaticamente no Claude Code e/ou Gemini CLI (o que você tiver instalado):
curl -fsSL https://raw.githubusercontent.com/jonathan-ponciano/sts-tools-mcp-tuxedo-qa/main/install.sh | bashInstala em ~/tuxedo-qa por padrão (mude com TUXEDO_QA_DIR=/outro/caminho). Rodar de
novo atualiza a instalação existente — seguro de repetir.
git clone https://github.com/jonathan-ponciano/sts-tools-mcp-tuxedo-qa.git
cd sts-tools-mcp-tuxedo-qa
npm install
npm run buildRegistre como servidor MCP. No Claude Code (escopo user = disponível em todos os projetos):
claude mcp add tuxedoqa --scope user -- node "$(pwd)/dist/index.js"No Gemini CLI (sem -- antes do comando — sintaxe diferente do Claude Code):
gemini mcp add tuxedoqa node "$(pwd)/dist/index.js" --scope userOpcionalmente, inicie o dashboard local:
npm run dashboard
# → http://localhost:3131Monitorando mais de um app/cliente
Uma instalação só do tuxedo-qa serve quantos projetos você quiser, cada um completamente isolado (testes, credenciais, schedule, histórico próprios), com um dashboard só pra ver e gerenciar todos eles juntos. A ideia:
Cada projeto tem sua própria conexão MCP (o Claude/Gemini "conectado" naquele projeto específico só enxerga e mexe nos testes daquele projeto).
O dashboard (
npm run dashboard) não pertence a nenhum projeto — ele enxerga todos ao mesmo tempo, com um seletor pra trocar de contexto.O scheduler (monitoramento automático) roda dentro do dashboard e cuida de todos os projetos ao mesmo tempo, cada um no seu próprio horário.
1. Registrar um novo projeto
Rode o instalador de novo, passando um slug em TUXEDO_QA_PROJECT (letras, números, -/_).
Ele reaproveita a mesma instalação (mesmo clone, mesmo node_modules) e só registra uma nova
conexão MCP:
TUXEDO_QA_PROJECT=fretebras bash install.sh
# → registra o servidor MCP "tuxedoqa-fretebras"
TUXEDO_QA_PROJECT=xtagger bash install.sh
# → registra o servidor MCP "tuxedoqa-xtagger"Repita pra cada projeto/cliente novo. Os dados de cada um ficam isolados em
projects/<slug>/ dentro da instalação (~/tuxedo-qa/projects/fretebras/,
~/tuxedo-qa/projects/xtagger/, etc.) — testes, credenciais, schedule e histórico
nunca se misturam entre projetos.
2. Usar cada projeto pelo Claude/Gemini
Depois de registrado, abra uma conversa e escolha a conexão MCP certa pra cada projeto
(tuxedoqa-fretebras quando estiver falando sobre o Fretebras, tuxedoqa-xtagger pro
xtagger). Cada uma só cria/roda/lê testes do seu próprio projeto — não tem como um
misturar com o outro por acidente.
3. Ver tudo junto no dashboard
Suba o dashboard uma vez só (ele não precisa de TUXEDO_QA_PROJECT nenhum — enxerga todos
sozinho):
npm run dashboard
# → http://localhost:3131Na aba Monitor tem uma visão geral com todos os projetos (quantos testes, uptime, o que tá rodando agora). Clicar num projeto ali — ou usar o seletor no topo da página — troca o contexto do resto do dashboard (abas Testes, Credenciais, Proteção, Status Page) pra aquele projeto específico. É o mesmo dashboard, só muda o que ele mostra.
4. Monitoramento automático
O scheduler roda dentro do processo do dashboard e verifica todos os projetos a cada
minuto — não importa qual está selecionado na tela no momento. Se fretebras tem um
teste agendado a cada 1h e xtagger tem um a cada 6h, os dois rodam nos seus próprios
horários, de forma independente, enquanto o dashboard estiver de pé.
Sem TUXEDO_QA_PROJECT
Se você só tem um projeto, não precisa mexer em nada disso — sem essa variável, tudo funciona no modo padrão (um projeto só, sem namespace), exatamente como antes.
Desenvolvimento
npm run dev # roda o servidor MCP com tsx (sem build)
npm run dashboard # dashboard em modo dev
npm test # roda a suíte Playwright diretamenteNavegador headless vs. visível
Por padrão, todo teste roda headless — o Chromium abre em background, sem janela
nenhuma na tela. Pra acompanhar visualmente o que o teste está fazendo (útil pra debugar
um fluxo novo), basta passar a flag PWHEADED=1 antes do comando:
npx playwright test # headless (padrão)
PWHEADED=1 npx playwright test # abre o navegador visível
PWHEADED=1 npm run dev # mesma flag funciona rodando via o servidor MCPIsso vale pra qualquer execução — manual, via dashboard, ou disparada pelo Claude/Gemini
com run_tests/run_until_pass/create_test — porque todas passam pelo mesmo runner
(src/lib/playwright-runner.ts), que lê playwright.config.ts.
Licença
MIT
Available Tools
9 toolsdelete_credentialC
Delete a named credential set.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Credential set name to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states it deletes, without mentioning whether deletion is irreversible, requires permissions, handles errors, or returns any confirmation. This is insufficient for a destructive action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no extraneous words. It is appropriately concise for a simple delete operation, though could be slightly more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is destructive, has no annotations, and no output schema, the description is incomplete. It does not explain return values, error conditions, or confirm success, which are important for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any additional meaning beyond what the schema already provides for the 'name' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('credential set'), with the qualifier 'named'. It is specific and unambiguous, but does not differentiate from sibling tool 'delete_test'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'delete_test'). No prerequisites, exclusions, or context for appropriate use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_testA
Permanently delete a test and its history. Irreversible — prefer update_test with enabled: false to deactivate.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test file name (with or without .spec.ts) | |
| confirm | Yes | Must be true to confirm deletion. Never pass true without explicit user confirmation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the irreversible destructive nature, compensating for missing annotations. Could add more details about side effects like history removal, but sufficient for a delete tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler, front-loaded with purpose and immediate warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with two parameters, the description covers purpose, behavior, usage guidance, and parameter semantics completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameters fully, and description adds critical behavioral guidance for the confirm parameter, stating it must never be true without user confirmation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool deletes a test and its history permanently, and distinguishes from update_test as a preferred alternative for deactivation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when not to use (prefer deactivation) and warns about irreversibility, providing clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pair_debug_contextA
Get the recorded timeline of the active pair-debugging session so far (console, network, errors, navigations, actions). Call this whenever the user says something looks wrong, to see exactly what just happened.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure. It indicates a read-only operation (get recorded timeline) and specifies the scope (active session) and data types. It does not mention side effects, but none are expected for a timeline retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first defines the tool, the second provides usage guidance. No extraneous information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and no annotations, the description fully explains what the tool does and when to use it. The sibling list provides additional context. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The description adds no parameter information since none exist, which is appropriate. The baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a timeline of the active pair-debugging session, listing specific data types (console, network, errors, navigations, actions). This distinguishes it from sibling tools like start_pair_debug (begins session) and get_status (general status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises calling this tool 'whenever the user says something looks wrong' to see what just happened. While it does not mention when not to use or alternatives, the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusA
Get overall suite status, or per-test status with failure details and fix suggestion when test_name is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| test_name | No | Test file name to get per-test status. Omit for overall suite status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full transparency burden. It correctly indicates a read operation with no side effects, and mentions returned data (failure details, fix suggestion). However, it omits potential behavioral details like authorization requirements or rate limits, though the tool's simplicity diminishes the need.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence conveys all essential information without redundancy. Every phrase adds value: the dual-mode behavior and the conditional output details are precisely stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description is complete. It explains both invocation modes and the nature of returned data (status, failure details, fix suggestion). No further context is needed given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema: it explains when to omit the parameter (for overall status) and that providing it yields failure details and fix suggestions, enhancing the parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves overall suite status or per-test status with failure details and fix suggestions when a test name is provided. It uses a specific verb ('get') and resource ('status'), effectively distinguishing it from sibling tools that perform mutations (e.g., delete_test, pause_tests).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: omit test_name for overall status, provide it for per-test details. While it doesn't explicitly state when not to use it or compare to alternatives, the context is sufficient for an agent to decide based on the optional parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_testsA
Pause all tests for up to 60 minutes. Tests resume automatically. Use before deploys to avoid false alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Why tests are being paused (e.g. "Deploy v2.3.0") | |
| duration_minutes | Yes | How long to pause tests, in minutes (1–60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the full burden. It discloses auto-resume and duration limit, but lacks details on side effects (e.g., impact on running tests) and prerequisites. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each providing unique value: action+constraint, behavior, and use case. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple pause tool with no output schema, the description covers purpose, duration constraint, auto-resume, and usage context. However, it omits behavior on repeated calls or early resumption, which could be important.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description repeats the duration limit already in schema but adds no new meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Pause' and resource 'all tests', with a specific scope (up to 60 minutes). It distinguishes from sibling tools which involve deletion, reading, running, or updating tests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use before deploys to avoid false alerts.' It implies when to use but does not explicitly state when not to use or name alternatives. The context is clear enough for a focused tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_testC
Read the contents of a test file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test file name (with or without .spec.ts) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavior. While 'read' implies a read-only operation, it does not explicitly state that it is non-destructive or disclose any side effects, permissions, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at one sentence, but it could be more structured or informative. It is not wasteful but lacks front-loaded key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter, no output schema), the description is minimally complete. However, it could clarify the output type or context, making it adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters (only 'name') with a clear description. The tool's description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Read') and the resource ('test file'), distinguishing it from siblings like delete_test and update_test. It is specific enough despite being brief.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as delete_test or update_test. The description lacks any context for selecting the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_until_passB
Run a test repeatedly, applying automatic fixes on each failure, until it passes or max attempts is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test file name (with or without .spec.ts) | |
| max_attempts | No | Max run+fix iterations (default: 3, max: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions applying 'automatic fixes' but does not explain what these entail (e.g., modifying source files, updating fixtures). It also does not disclose side effects, authentication requirements, or rate limits. This lack of detail could lead to unexpected behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 17 words, packing key information (repeated runs, auto fixes, termination conditions) without any redundancy. It is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is incomplete for a tool that performs an automated fix loop. It does not explain what happens on success/failure, what kind of output to expect (e.g., pass/fail status, logs), or error handling. Agent is left with significant unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters ('name' and 'max_attempts') have adequate descriptions in the schema. The description adds the context of 'automatic fixes' but does not enhance parameter understanding beyond what the schema provides. No additional value over baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: running a test repeatedly with automatic fixes until it passes or max attempts. It uses specific verb 'Run' and resource 'test' with clear failure condition, distinguishing it from sibling tools like 'read_test' (read-only) and 'update_test' (direct update).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when wanting to automatically fix and retry a failing test, but it does not specify when to avoid using it or offer alternatives. For example, it does not mention that 'start_pair_debug' might be more appropriate for debugging interactions. Usage is clear but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_pair_debugA
Start a pair-debugging session: opens a visible browser at the given URL for the human to drive by hand. Records console messages, network errors, page exceptions, navigations, and their clicks/fills with timestamps as they go, so you can correlate what they did with what broke. Use when the user wants to walk through a flow live and have you spot the bug, rather than writing a scripted test upfront.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to open in the visible browser — the flow entry point the human will drive by hand (e.g. the login page). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavior: opens visible browser, records console messages, network errors, page exceptions, navigations, clicks/fills with timestamps. Useful for agent to understand side effects. Lacks details on session termination or data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, followed by details. No unnecessary words. Efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers key behaviors and use case. No output schema, but description implies session recording. Could mention how to access recorded data (e.g., via get_pair_debug_context) or end session, but overall sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (1 param with description). Description adds that url is the 'flow entry point the human will drive by hand,' which aligns with schema. Minimal additional value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it starts a pair-debugging session with a visible browser, records detailed events, and contrasts with scripted tests. Verb 'start' and resource 'pair-debugging session' are specific. Distinguishes from siblings like 'get_pair_debug_context' and 'read_test'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the user wants to walk through a flow live...rather than writing a scripted test upfront.' Provides clear context for when to use vs. alternative approach (scripted tests). Could be more specific about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_testB
Update a test — script, display name, description, schedule, or enabled state.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test file name (with or without .spec.ts) | |
| enabled | No | Set false to disable without deleting | |
| schedule | No | Run frequency (1h for critical flows) | |
| test_code | No | New full Playwright test code | |
| validated | No | Set true ONLY after a human has manually run this test and confirmed the result looks right — this is what allows the scheduler/webhook to pick it up automatically. Never set this on your own inference (e.g. "the dry-run passed so it must be fine"); ask the user first. Ignored if test_code is also being changed in this same call — a code edit always resets validated to false, since the edited version hasn't been reviewed yet. | |
| credential | No | Credential set label to inject as credentials.* in the test (e.g. "meuapp-prod") | |
| description | No | What the test verifies | |
| display_name | No | Human-readable name for the test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden for behavioral disclosure. It does not mention side effects (e.g., impact on running tests), authorization requirements, or mutation semantics. The parameter descriptions in the schema cover some behavioral details (e.g., validated parameter), but the main description lacks transparency on overall behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that front-loads the purpose and lists key updatable fields efficiently, with no redundant or extraneous content. Ideal length for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary update targets but lacks completeness given the complexity: 8 parameters, conditional behavior (e.g., validated ignored if test_code changed), no output schema, and no information on whether updates are partial or full. Sibling tools are not addressed for contextual guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions, meeting baseline expectation. The main description adds limited value beyond restating some of the field names (script, display name, description, schedule, enabled state). It does not cover all parameters (e.g., validated, credential) or explain interdependencies already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'Update a test' and lists the updatable fields (script, display name, description, schedule, enabled state). It distinguishes from sibling tools like delete_test, read_test, and run_until_pass, though it omits mentioning the 'validated' and 'credential' parameters from the schema, which are also updatable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like delete_test or read_test. The description does not mention prerequisites (e.g., test must exist) or conditions for use, leaving the agent without context on appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
9 tool updates
v1.0.0- First observed
delete_credential - First observed
delete_test - First observed
get_pair_debug_context - First observed
get_status - First observed
pause_tests - First observed
read_test - First observed
run_until_pass - First observed
start_pair_debug - First observed
update_test
TDQS
Each tool targets a distinct resource or action: credentials, tests (CRUD except create), debugging sessions, status, and pausing. No overlapping purposes.
Most tools follow verb_noun pattern (e.g., delete_test, get_status). 'run_until_pass' deviates slightly as a verb phrase, but overall convention is consistent and clear.
9 tools is well-scoped for a test management server, covering operations like test editing, debugging, status checks, and credential management without excess.
Missing a create_test tool, which is a notable gap for full lifecycle management. Also lacks a simple 'run test' command independent of the auto-fix loop. However, debugging features are well-covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Browser-based QA for AI-built software. Test pages with real browsers via agents.
AI QA that runs your app in a browser on every pull request: projects, test targets, test cases.
Run multi-step tasks in a real Chrome browser: persistent environments, live view, human takeover.
AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.
Related MCP Servers
- AlicenseAqualityDmaintenanceGenerates intelligent Playwright locators with reliability rankings, creates Page Object Models, and runs test automation scripts directly from your IDE or AI assistant.5161MIT
- AlicenseNot gradedqualityCmaintenanceEnables automated end-to-end testing powered by Playwright where test cases are defined in natural language and executed by AI. Uses lightweight snapshot analysis with vision mode fallback for sophisticated testing scenarios.3Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.5-
- AlicenseNot gradedqualityBmaintenanceAutonomous QA platform powered by Claude + Playwright that allows AI to write, run, and fix tests for any project.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jonathan-ponciano/sts-tools-mcp-tuxedo-qa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server