mcp-lab-agent
Enables mobile app testing automation via Appium, allowing the agent to run and analyze tests on mobile devices and apply automatic fixes for selector and flaky issues.
Allows the agent to run and analyze Cypress tests, detect flaky patterns, provide plain-language failure explanations, and auto-correct selectors or timing issues.
Allows the agent to run and analyze Jest tests, identify failure causes, suggest fixes, and apply corrections automatically, with learning across runs.
Supports offline AI inference via Ollama, enabling autonomous QA capabilities (test generation, failure analysis, correction) without cloud dependencies.
Provides a Slack bot that executes tests and posts reports in channels, using Socket Mode for corporate environments without public URLs.
Click on "Deploy 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., "@mcp-lab-agentwhy did the login test fail?"
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.
mcp-lab-agent
PT-BR | English
Português (PT-BR)
Sistema de QA autônomo com IA. Reduz tempo de debug de testes, elimina flaky e mantém seletores estáveis — com um sistema de aprendizado que melhora a cada correção.
TL;DR para recrutadores: QA autônomo que explica por que os testes falharam em linguagem clara e aplica correções automaticamente. Testes que se autocorrigem e aprendem a cada fix. Integra com IDE (Cursor) e Slack. Feito para QA Engineers, SDETs e roles de Automação/IA.
Por que isso importa
Problema real | Impacto no mercado | O que o mcp-lab-agent faz |
Testes flaky | Times gastam 5–10h/semana. Microsoft: ~25% das falhas em CI são flaky; Slack tinha 56% antes de remediar. | Detecta padrões flaky, sugere correções, retry automático com fixes |
"Por que falhou?" | QAs e devs perdem horas lendo stack traces e logs. "Teste falhou" genérico não ajuda. | Causa + correção em 30 segundos. Diagnóstico em linguagem clara: o que aconteceu, por que e como corrigir |
Seletores quebrados | Refactors de UI quebram testes. Seletores frágeis (classes CSS, XPath longo) exigem manutenção manual. | Auto-fix de seletores, sugere |
O WOW: Testes que se autocorrigem e aprendem
Quando um teste falha, você recebe a causa e a correção em 30 segundos. Sem cavar em stack traces.
Cada correção bem-sucedida é salva e reutilizada. Na próxima falha similar, o agente aplica o padrão aprendido automaticamente. A taxa de sucesso na primeira tentativa melhora ao longo do tempo — mensurável via mcp-lab-agent stats.
npx mcp-lab-agent auto "login flow" --max-retries 5Um comando. Análise completa. Autocorreção. Aprendizado.
Principais resultados
Reduz tempo de debug — "Por que falhou?" em linguagem clara, não stack traces
Corta manutenção de flaky — Detecção, diagnóstico e sugestões de correção
Escala QA sem escalar headcount — Agente no IDE + Slack bot; funciona com Cypress, Playwright, Appium, Jest e 11+ frameworks
Pronto para enterprise — Socket Mode (sem URL pública), Ollama (offline), Learning Hub para times
Como funciona
🤖 Agente no IDE (Cursor, Cline, Windsurf) — Pergunte no chat: "Gere teste para login", "Por que o teste falhou?", "Roda o teste X". O agente detecta o projeto, executa testes, analisa falhas, aplica correções e aprende.
💬 Slack Bot — Mencione o bot em qualquer canal — ele executa testes e posta o relatório. Funciona em ambiente corporativo (Socket Mode, sem ngrok). QA no fluxo da conversa.
Para quem é
Perfil | Benefício |
QAs e SDETs | Geração assistida de testes, análise de falhas com sugestões de correção, detecção de flaky |
Desenvolvedores | "Por que falhou?" em segundos, análise de arquivos/métodos, integração direta no IDE |
Tech leads | Visão de risco por área, métricas de estabilidade, relatórios para decisão |
Times | Learning Hub, Slack bot para QA no chat, CI/CD, Ollama (offline) |
Como é diferente
Outras ferramentas | mcp-lab-agent |
Só executam testes | Executa, analisa causa, sugere fix, aplica correção |
"Teste falhou" genérico | Linguagem clara: "Login falha 30% das vezes (timing). Adicione waitForDisplayed." |
Sem memória entre execuções | Learning system: cada fix melhora as próximas gerações |
Uma ferramenta por tarefa | End-to-end: gera, executa, analisa, reporta, aprende |
Related MCP server: sumo-qa
English
AI-powered autonomous QA system. Reduces test debugging time, eliminates flaky tests, and keeps selectors stable — with a learning system that gets smarter with every fix.
TL;DR for recruiters: Autonomous QA that explains why tests fail in plain language and applies fixes automatically. Self-healing tests that learn from each fix. Integrates with IDE (Cursor) and Slack. Built for QA Engineers, SDETs, and AI/Automation roles.
Why this matters
Real problem | Industry impact | What mcp-lab-agent does |
Flaky tests | Teams spend 5–10h/week. Microsoft: ~25% of CI failures are flaky; Slack had 56% before remediation. | Detects flaky patterns, suggests fixes, auto-retries with corrections |
"Why did it fail?" | QAs and devs lose hours reading stack traces and logs. Generic "test failed" doesn't help. | Cause + fix in 30 seconds. Plain-language diagnosis: what happened, why, and how to fix |
Broken selectors | UI refactors break tests. Fragile selectors (CSS classes, long XPath) require manual maintenance. | Auto-fix selectors, suggests |
The WOW: Self-healing tests that learn
When a test fails, you get the cause and fix in 30 seconds. No more digging through stack traces.
Each successful fix is saved and reused. The next time a similar failure happens, the agent applies the learned pattern automatically. First-attempt success rate improves over time — measurable via mcp-lab-agent stats.
npx mcp-lab-agent auto "login flow" --max-retries 5One command. Full analysis. Self-correction. Learning.
Key outcomes
Reduce debugging time — "Why did it fail?" in plain language, not stack traces
Cut flaky test maintenance — Detection, diagnosis, and suggested fixes
Scale QA without scaling headcount — IDE agent + Slack bot; works with Cypress, Playwright, Appium, Jest, and 11+ frameworks
Enterprise-ready — Socket Mode (no public URL), Ollama (offline), Learning Hub for teams
How it works
🤖 IDE Agent (Cursor, Cline, Windsurf) — Ask in chat: "Generate a test for login", "Why did the test fail?", "Run test X". The agent detects your project, runs tests, analyzes failures, applies fixes, and learns.
💬 Slack Bot — Mention the bot in any channel — it runs tests and posts the report. Works in corporate environments (Socket Mode, no ngrok). QA in the flow of conversation.
Who it's for
Role | Benefit |
QAs & SDETs | Assisted test generation, failure analysis with fix suggestions, flaky detection |
Developers | "Why did it fail?" in seconds, file/method analysis, direct IDE integration |
Tech leads | Risk visibility by area, stability metrics, decision-ready reports |
Teams | Learning Hub, Slack bot for QA in chat, CI/CD integration, Ollama (offline) |
How it's different
Other tools | mcp-lab-agent |
Run tests only | Run, analyze cause, suggest fix, apply correction |
Generic "test failed" | Plain-language: "Login fails 30% of the time (timing). Add waitForDisplayed." |
No memory between runs | Learning system: each fix improves future generations |
One tool per task | End-to-end: generate, run, analyze, report, learn |
Learning System
Como aprende: O agente detecta o padrão de falha em cada execução (regex + contexto) e armazena a correção aplicada na memória. Nas próximas gerações, esses aprendizados são injetados no prompt do LLM e nas práticas obrigatórias.
Baseado em quê: Tipo de erro (classificado automaticamente), framework, trecho de correção e resultado (passou ou não).
Melhora quanto: Taxa de sucesso na primeira tentativa (%), rastreável em mcp-lab-agent stats e get_learning_report. Quanto mais correções bem-sucedidas, maior a tendência de os próximos testes passarem de primeira.
Exemplos de padrões aprendidos:
Padrão detectado | Correção aplicada |
|
|
|
|
| Sugestão de |
| Retry automático, waits explícitos, timeout ajustado |
| Re-localizar elemento antes de cada ação |
| Mapeamento visível no topo do spec (Page Object) |
Cada correção bem-sucedida aumenta a taxa de sucesso futura.
Quick Start
CLI — Análise completa
# Análise completa: executa testes, analisa estabilidade, prevê riscos e recomenda ações
npx mcp-lab-agent analyze
# Modo autônomo: gera, roda, corrige e aprende (até passar ou max_retries)
npx mcp-lab-agent auto "login flow" --max-retries 5
# Métricas de aprendizado e taxa de sucesso
npx mcp-lab-agent stats
# Relatório de evolução com recomendações para aprimorar o código
npx mcp-lab-agent report --fullIDE — Cursor, Cline, Windsurf
Adicione ao ~/.cursor/mcp.json:
{
"mcpServers": {
"qa-lab-agent": {
"command": "npx",
"args": ["-y", "mcp-lab-agent@latest"],
"cwd": "${workspaceFolder}"
}
}
}Use no chat: "Detecte a estrutura do meu projeto", "Gere teste para login", "Por que o teste falhou?", "Avalie http://localhost:3000 no browser".
run_tests com device e auto-fix: Ao pedir "Roda o teste X", o agente detecta o device (de qa-lab-agent.config.json, wdio.conf ou .detoxrc), executa o fluxo e, se falhar por seletor, aplica correção automaticamente e tenta novamente.
Slack Bot
npx mcp-lab-agent slack-botFunciona em ambiente corporativo (Socket Mode, sem URL pública). Configure botToken e appToken em ~/.cursor/mcp.json. Onde obter: slack-bot/CREDENTIALS.md. Detalhes: slack-bot/README.md.
Learning Hub — Inteligência centralizada
npx mcp-lab-agent learning-hubAPI e Dashboard em http://localhost:3847. Configure no .env do projeto:
LEARNING_HUB_URL=http://localhost:3847
LEARNING_HUB_PROJECT_ID=meu-projetoO agente envia learnings automaticamente. O Hub agrega padrões e fornece recomendações. Detalhes: learning-hub/README.md.
Arquitetura
flowchart TB
subgraph Input["Entrada"]
CLI[CLI: auto, stats, report]
IDE[IDE: Cursor, Cline, Windsurf]
Slack[Slack Bot]
end
subgraph Agent["mcp-lab-agent"]
Router[qa_route_task]
Auto[qa_auto]
MR[Model Router]
FD[Flaky Detection]
PM[Project Memory]
LS[Learning System]
end
subgraph Tools["Ferramentas"]
D[detect_project, list_test_files]
G[generate_tests, write_test, map_mobile_elements]
E[run_tests, get_test_coverage]
A[analyze_failures, suggest_fix, por_que_falhou]
R[create_bug_report, get_learning_report]
end
subgraph Ext["Externo"]
LLM[LLM: Groq, Gemini, OpenAI, Ollama]
Hub[Learning Hub]
end
Input --> Router
Router --> Auto
Auto --> G & E & A
G & A --> MR --> LLM
A --> FD
Auto --> LS --> PM
PM -.-> Hub
Router --> D & G & E & A & RFluxo qa_auto:
Detecta projeto (frameworks, pastas, fluxos)
Gera teste com LLM + memória de aprendizados
Executa o teste
Se falhar: analisa (flaky detection), corrige e tenta novamente
Aprende e salva correções na memória
Repete até passar ou atingir
max_retries
Capacidades
Automação e geração
Modo autônomo (
qa_auto): gera, executa, analisa, corrige e aprende em loopGeração com LLM: Groq, Gemini, OpenAI ou Ollama (100% offline)
Mapeamento mobile (
map_mobile_elements): elementos em Appium/DetoxTemplates: waits inteligentes e assert final obrigatório em todo teste gerado
Análise e diagnóstico
Detecção de falhas: timing, selector, element_not_rendered, element_not_visible, element_stale, mobile_mapping_invisible
Mensagens contextualizadas: cada tipo de erro tem explicação e sugestão específica
Análise de estabilidade: taxa de falha por teste, identificação de flaky
Predição de flakiness (
qa_predict_flaky): risco antes de o problema aparecerAnálise de métodos (
analyze_file_methods): varredura por método do arquivo
Relatórios e métricas
Bug reports em Markdown
Métricas de negócio (se
qa-lab-flows.jsonconfigurado)Relatório de evolução (
get_learning_report): padrões por tipo, recomendaçõesBenchmark (
qa_compare_with_industry): comparação com padrões do mercado
Memória e Learning Hub
Memória local:
.qa-lab-memory.jsonpor projetoLearning Hub: API central (
POST /learning,GET /patterns), Dashboard, sync automático entre projetos
Frameworks suportados
11+ frameworks: Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot Framework, pytest, Behave, Appium, Detox.
CLI
Comando | Descrição |
(sem args) | Inicia servidor MCP (modo IDE) |
| API + Dashboard (porta 3847) |
| Bot Slack (Socket Mode) |
| Análise completa do projeto |
| Modo autônomo (default: 3 tentativas) |
| Estatísticas de aprendizado |
| Relatório de evolução |
| Detecta frameworks e estrutura |
| Sugere ferramenta |
| Lista agentes e ferramentas |
# Exemplos de uso
mcp-lab-agent learning-hub # Inicia Hub (porta 3847)
mcp-lab-agent analyze # Análise completa
mcp-lab-agent auto "login flow" # Modo autônomo
mcp-lab-agent stats # Taxa de sucesso, aprendizados
mcp-lab-agent report --full # Relatório com recomendaçõesEscalabilidade e uso em produção
Por projeto: memória local (
.qa-lab-memory.json) isolada por repositórioEntre times: Learning Hub agrega padrões por
projectId; Dashboard compartilhadoEntre empresas: um Hub pode servir múltiplas organizações; padrões cross-org (ex.: "Playwright + selector instável" em 15 projetos) viram recomendações globais
CI/CD: integração em GitHub Actions, GitLab CI, Jenkins
Métricas exportáveis: JSON estruturado para Grafana, DataDog, dashboards internos
Ollama: 100% offline; adequado para ambientes corporativos restritivos
LLM interno: endpoint customizado da empresa
Configuração
Variáveis de ambiente (opcionais)
Variável | Uso |
| Groq |
| Google Gemini |
| OpenAI |
| Ollama (default: http://localhost:11434) |
| LLM customizado (empresa) |
| API key do LLM |
| Modelo para tarefas simples |
| Modelo para tarefas complexas |
| URL do Learning Hub |
| ID do projeto no Hub |
Ollama (offline)
brew install ollama
ollama pull llama3.1:8b
ollama serve
npx mcp-lab-agent auto "login flow"Modo browser (Playwright)
npm install playwrightDocumentação
CHANGELOG.md — Histórico de versões
slack-bot/README.md — Slack Bot
learning-hub/README.md — Learning Hub
docs/PORTFOLIO_COPY_PT-BR.md — Copy em PT-BR para portfólio (Vercel)
Desenvolvimento
git clone https://github.com/Wesley-Gomes93/mcp-lab-agent
cd mcp-lab-agent
npm install
npm run build
npm testScript | Descrição |
| Build (tsup) |
| Testes (Vitest) |
| Cobertura |
| Build em watch |
Licença
MIT © Wesley Gomes
Available Tools
31 toolsanalyze_failuresAnalisar falhas de testesB
Recebe output de testes e extrai falhas estruturadas.
| Name | Required | Description | Default |
|---|---|---|---|
| runOutput | Yes | Output do teste (stdout/stderr). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| summary | Yes | |
| failures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, what happens with invalid input, or what specific failure formats it supports. This is a meaningful gap for a tool that processes external test output.
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, front-loaded sentence with no redundant wording. It clearly conveys the core purpose without any fluff or unnecessary detail.
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 one-parameter tool with an output schema, the description is minimally adequate but lacks usage context and side-effect clarity. It does not position the tool relative to sibling test-analysis tools, so an agent could confuse it with deeper analysis tools.
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 the single parameter 'runOutput' is self-explanatory as test stdout/stderr. The description adds no extra meaning beyond the schema, so a baseline score 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 states the action: receive test output and extract structured failures. It distinguishes itself from root-cause analysis tools like 'por_que_falhou' by focusing on structured failure extraction, though it could be more explicit about the output structure.
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 is given on when to use this tool versus alternatives like 'por_que_falhou' or 'suggest_fix'. The phrase 'Recebe output de testes' implies usage after test execution, but there is no mention of when not to use it or what input format is expected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_file_methodsAnalisar métodos de um arquivoA
Lê um arquivo, faz varredura em todos os métodos/funções e retorna análise detalhada: método correto?, melhor forma de escrever?, falso positivo?, coerência?, itens faltando?, parâmetros faltando?, imports faltando?. Requer API key (Groq/Gemini/OpenAI).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho do arquivo (ex: src/utils.js, tests/login.cy.js, cypress/support/commands.js). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| resumo | No | |
| methods | No | |
| filePath | No | |
| importsFaltandoGlobal | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states the tool reads a file, scans methods/functions, and returns analysis, and it discloses the requirement of an API key. It implies read-only behavior but could mention whether it modifies files or any side effects, though the read/return phrasing makes this largely clear.
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, front-loaded sentence that lists the key behavior and output aspects without excessive verbosity. The list of analysis dimensions is dense but still readable. Slight room for improvement by breaking into separate sentences for clarity.
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 tool's purpose, prerequisites (API key), and the nature of its output. Since an output schema exists (though not shown), the description need not detail return values. For a single-parameter analysis tool, this is reasonably complete and resolves most selection ambiguity.
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 includes a description for 'path'. The tool description reinforces that the path refers to a file and adds the file-method-analysis context, but it does not add new parameter-specific details beyond the schema. Baseline 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 states the tool's action ('Lê um arquivo, faz varredura em todos os métodos/funções') and specific resource (file methods). It distinguishes itself from sibling tools like read_file or generate_tests by focusing on detailed method analysis with a defined set of output criteria.
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 context—when you need method-level analysis of a file—but does not explicitly state when to prefer this over alternatives or mention exclusions. It does provide a prerequisite (API key) which adds some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_bug_reportCriar relatório de bugA
Gera um bug report estruturado a partir de falhas de teste.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Título do bug. | |
| failures | Yes | Falhas (de analyze_failures). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| title | Yes | |
| report | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only says 'gera' (generates), without clarifying whether the report is returned, saved to disk, or has side effects. No information about permissions, reversibility, or dependencies is included.
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, focused sentence that front-loads the core action. It contains no filler or redundant information, earning a high conciseness score.
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?
With a simple 2-parameter tool and an output schema present, the description is adequate for basic understanding. However, the lack of usage guidance and behavioral transparency leaves gaps for optimal tool selection and invocation, making it only minimally complete.
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%, with meaningful descriptions for both 'title' and 'failures'. The tool description adds no additional parameter semantics beyond what the schema already provides, which aligns with the baseline for high schema coverage.
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 'Gera um bug report estruturado a partir de falhas de teste' (generates a structured bug report from test failures), specifying a concrete verb, resource, and input. This distinguishes it from siblings like analyze_failures and generate_tests, which analyze failures and generate tests respectively.
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 test failures are available ('a partir de falhas de teste'), but it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. The schema mentions failures come from analyze_failures, but this is not in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_test_templateCriar template de testeB
Gera template básico de teste (boilerplate) para o framework escolhido.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Tipo de teste. Default: api. | |
| framework | Yes | Framework. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| template | Yes | |
| suggestedFileName | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that a basic template is generated; it does not disclose whether the tool writes a file, returns content, requires project context, or has side effects, leaving important ambiguity.
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, front-loaded sentence with no filler or repetition; every phrase 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?
Despite having an output schema and fully documented parameters, the description lacks usage guidelines and fails to clarify side effects (file write vs. returned content). With no annotations, this is not complete enough for an agent to safely invoke the tool.
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%, and the schema already explains both parameters, their enums, and the default value. The description adds only a reference to 'framework escolhido', which does not meaningfully deepen understanding beyond what the schema provides.
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 states a specific action ('gera template básico de teste (boilerplate)') and specifies the resource ('para o framework escolhido'). It clearly distinguishes itself from siblings like generate_tests or write_test by focusing on boilerplate generation.
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 use when a basic boilerplate test template is needed for a chosen framework, but it provides no explicit guidance on when to prefer this over generate_tests, write_test, or other sibling tools, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_projectDetectar estrutura do projetoA
Analisa o projeto e identifica frameworks de teste, pastas, backend, frontend, ambiente (web/mobile) e hints para geração de testes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| structure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool analyzes and identifies specific project aspects, which implies a read-only, non-destructive operation. However, it does not explicitly declare that it modifies nothing or describe any potential side effects, leaving some ambiguity.
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, concise sentence that front-loads the action ('Analisa') and lists the key outputs in a structured list. Every word contributes meaning, with no unnecessary fluff.
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 zero input parameters and the presence of an output schema, the description sufficiently covers the main purpose. It does not specify the exact return format, but the output schema handles that. The only gap is not elaborating on what 'hints' means, but this is minor.
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 tool has zero parameters, so the baseline is 4. The description adds nothing about parameters because none exist, but no further clarification is needed.
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 uses a specific verb ('Analisa') and clearly states what is analyzed: project structure, test frameworks, folders, backend, frontend, environment, and test-generation hints. This distinguishes it from siblings like read_project, which likely just reads files without analysis.
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 when-to-use or alternative comparisons are provided. The phrase 'hints para geração de testes' implies the tool is useful before test generation, but there is no guidance on when to prefer it over siblings like read_project or analyze_file_methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_testsGerar ou traduzir testes com LLMA
Gera spec em QUALQUER framework. Aceita referência de outro framework: leia com read_file e passe em referenceCode. Traduz automaticamente (ex: Robot→Playwright, Cypress→WDIO).
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Contexto do projeto (read_project) ou descrição. | |
| request | Yes | O que testar (ex: 'logout flow', 'teste de login') ou 'traduzir o teste abaixo'. | |
| framework | No | Framework alvo (detectado do projeto se omitido). | |
| referenceCode | No | Código de referência em QUALQUER framework (Cypress, Robot, WDIO, etc). O LLM traduz/adapta para o framework alvo. | |
| referencePaths | No | Caminhos de arquivos para ler como referência. O agente lê e usa como padrão. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| specContent | No | |
| suggestedFileName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It mentions that the tool translates tests automatically and accepts reference code, but it does not disclose side effects (e.g., whether it writes files, requires API keys, or is read-only). This is a significant gap for a tool without annotations.
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 three sentences long and is front-loaded with the core purpose. Each sentence provides distinct value: the main function, the reference-handling workflow, and translation examples. No words are wasted.
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 rich schema (100% parameter coverage) and presence of an output schema, the description is quite complete. It explains the key generation and translation behavior and shows how to use referenceCode with read_file. It lacks a brief note on when to prefer this over write_test or create_test_template, but the core usage is clear.
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 schema already describes all parameters at 100% coverage, so the baseline is 3. The description adds value by explicitly instructing how to populate referenceCode (read with read_file and pass) and clarifies the translation use case, which goes beyond the schema's 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 tool's function: 'Gera spec em QUALQUER framework' and 'Traduz automaticamente', with explicit examples (Robot→Playwright, Cypress→WDIO). It distinguishes itself from siblings like write_test by emphasizing framework-agnostic generation and translation.
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?
Provides a concrete usage pattern: 'Aceita referência de outro framework: leia com read_file e passe em referenceCode', which tells the agent to read a file with a sibling tool and pass its content. However, it does not explicitly state when to avoid this tool or compare it to alternatives like write_test or create_test_template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_business_metricsObter métricas de negócioA
Retorna métricas: tempo até bug, custo por defeito (tempo estimado), cobertura por fluxo. Requer run_tests executados e opcionalmente qa-lab-flows.json.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Período para analisar. Default: 30d. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| summary | Yes | |
| timeToBug | No | |
| flowCoverage | No | |
| costPerDefect | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool requires prior run_tests execution and optionally reads qa-lab-flows.json, which is useful behavioral context. However, it does not explicitly state whether the operation is read-only or whether there are any side effects, leaving some ambiguity.
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, front-loaded with the returned metrics and followed by dependencies. Every sentence adds value and there is no redundant information.
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 tool's prerequisites and optional input file, while the output schema covers return values. It gives enough context to understand how the tool depends on other processes, making it complete for its 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?
The schema fully describes the single optional 'period' parameter with an enum and default, so the description does not need to add more. There is no additional parameter semantics in the description, but the baseline is adequate due to 100% schema coverage.
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: it returns specific business metrics (time to bug, cost per defect, coverage per flow). The verb 'Retorna' specifies the action, and the metric list distinguishes it from sibling analysis tools.
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?
It provides clear usage context by stating the prerequisite that run_tests must have been executed, and optionally the qa-lab-flows.json file. It does not explicitly mention alternatives or when-not-to-use scenarios, but the dependency on run_tests makes the intended context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_learning_reportRelatório de evolução e aprendizadoA
Gera relatório de evolução dos aprendizados: resumo por tipo, evolução no tempo e recomendações para aprimorar o código.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | summary = resumo executivo, full = relatório completo com recomendações. Default: summary |
Output Schema
| Name | Required | Description |
|---|---|---|
| byType | Yes | |
| summary | Yes | |
| evolution | No | |
| recommendations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the report's content (summary by type, evolution, recommendations) and implies a read-only generation, but it does not explain whether it requires prior data, whether it performs expensive analysis, or how it handles empty states. This is adequate for a simple report tool but lacks depth.
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, information-dense sentence that covers the tool's purpose and key output aspects without redundancy or filler.
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 (one optional parameter, output schema provided), the description is mostly complete. It could be enhanced by mentioning when to use this over similar learning-related tools, but the existing text sufficiently explains what the report contains.
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% for the single 'format' parameter, including its enum values and default. The description does not add any additional meaning beyond the schema, so the baseline score 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 states the tool generates a learning evolution report, specifying its contents: summary by type, evolution over time, and recommendations. This use of a specific verb 'Gera' and resource 'relatório de evolução dos aprendizados' makes the purpose unambiguous, even among siblings like qa_learning_stats.
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 no guidance on when to use this tool versus alternatives such as qa_learning_stats or qa_health_check. It does not mention any prerequisites, context, or scenarios where this report is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_test_coverageObter cobertura de testesB
Roda testes com coverage (Jest, Playwright, Cypress com plugin).
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Framework. Default: detectado automaticamente. |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | |
| status | Yes | |
| message | Yes | |
| coveragePercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond running tests with coverage. It does not mention potential side effects (e.g., writing coverage reports, installing plugins), runtime implications, or permissions needed, leaving the agent without crucial safety information.
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, front-loaded sentence that communicates the core function without wasted words. It is concise, though it could include a bit more detail without becoming verbose, hence a 4 rather than 5.
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 (one optional parameter, output schema present), the description is adequate but not complete. It does not mention the output format (coverage report) or the automatic framework detection behavior (which is only in the schema), so the description is minimally sufficient but lacks contextual richness.
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 fully describes the only parameter 'framework' with an enum and a note about automatic detection (100% coverage). The description adds no additional semantic meaning beyond what the schema already provides, so a baseline score 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 states 'Roda testes com coverage' (runs tests with coverage) and explicitly lists supported frameworks (Jest, Playwright, Cypress), making it clear this tool is for running tests with coverage, distinguishing it from the sibling run_tests tool.
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?
Usage is implied by the word 'coverage' and the frameworks listed, but there is no explicit guidance about when to use this tool instead of alternatives like run_tests or qa_auto. The context suggests coverage-specific testing, but no direct comparison is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_dependenciesInstalar dependênciasA
Roda npm install, yarn install ou pnpm install (detecta automaticamente).
| Name | Required | Description | Default |
|---|---|---|---|
| packageManager | No | Package manager. Default: auto. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | Yes | |
| exitCode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states the commands run, but does not reveal that installing dependencies modifies the project (e.g., node_modules, lock files), may require network access, or can fail if no package manifest exists. The description is too minimal to inform the agent about side effects or prerequisites.
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, concise sentence that front-loads the verb and resource. It contains no filler or repetition, earning full marks for efficiency.
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 tool is simple with one optional parameter, a full input schema, and an output schema (per context signals). The description covers the core action and auto-detection, which is adequate for basic use. However, it lacks any mention of side effects, prerequisite conditions, or error behavior, making it only minimally complete for a mutation tool with no annotations.
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 provides 100% coverage for the single 'packageManager' parameter, including an enum and default description. The description's mention of 'detecta automaticamente' adds no new semantic beyond the schema's 'Default: auto'. With full schema coverage, the baseline is 3, and no additional value is provided.
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 action: 'Roda npm install, yarn install ou pnpm install' (runs npm/yarn/pnpm install). It identifies the verb and resource, and the auto-detection feature is a specific differentiator. No sibling tool overlaps with this install function.
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 dependencies need to be installed, and mentions auto-detection of the package manager. However, it does not explicitly state when to use this tool versus alternatives, nor does it exclude any scenarios (e.g., when package.json is missing). Given no alternative install tool exists among siblings, the implicit guidance is sufficient for a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_test_filesListar arquivos de testeA
Lista TODOS os arquivos de teste (qualquer framework: Cypress, Playwright, WDIO, Robot, pytest, Behave, etc.) com filtro opcional.
| Name | Required | Description | Default |
|---|---|---|---|
| pattern | No | Pattern para filtrar (ex: 'login', 'api'). | |
| framework | No | Filtrar por framework. Default: all. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| files | Yes | |
| total | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the tool's scope ('ALL test files'), framework coverage, and optional filtering, but does not clarify scope boundaries (e.g., project root) or return format details, though an output schema exists.
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 one sentence, front-loads the action, and includes all key information without redundancy.
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 listing tool with an output schema and fully described parameters, the description is adequate. It covers the core purpose and filter options, but could mention scope boundaries (e.g., current project) for full completeness.
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 schema already provides descriptions for both parameters (pattern and framework), with 100% coverage. The description only mentions 'optional filter' without adding syntax or format details, so it adds no extra semantic value beyond 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?
The description uses a specific verb ('Lists') with a clear resource ('all test files'), enumerates supported frameworks, and mentions an optional filter. This clearly distinguishes it from sibling tools like run_tests (execution) and generate_tests (creation).
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 context for when to use the tool (to list test files across frameworks) but does not explicitly mention alternatives or when not to use it. There are no exclusionary statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_mobile_elementsMapear elementos mobile (estrutura para testes)A
Gera estrutura/template de elementos para testes mobile. Aceita deep link, appPackage/appActivity (Android) ou bundleId (iOS). Retorna instruções para mapear elementos (Appium Inspector, uiautomator) e template para usar em generate_tests. Se elementsJsonPath fornecido, lê arquivo e formata para contexto.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | No | iOS: bundle identifier do app. | |
| deepLink | No | Deep link do app (ex: meuapp://login). Indica ambiente mobile. | |
| appPackage | No | Android: package do app (ex: com.example.app). | |
| appActivity | No | Android: activity principal (ex: .MainActivity). | |
| elementsJsonPath | No | Caminho para arquivo JSON com elementos mapeados (id, text, accessibilityId, xpath). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| elements | No | |
| environment | No | |
| instructions | No | |
| contextForGenerate | No | Texto formatado para passar em generate_tests como contexto. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It states the tool generates a template, returns instructions for using Appium Inspector and uiautomator, and optionally reads a JSON file. It does not mention potential edge cases (e.g., conflicting platform parameters) or explicitly state whether it modifies files or executes tests, leaving some ambiguity.
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, front-loaded with the main purpose, and every phrase adds necessary detail. It efficiently covers inputs, outputs, and conditional behavior without unnecessary filler.
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 moderate complexity (5 optional parameters, platform-specific logic) and presence of an output schema, the description is largely complete. It explains the core workflow and the optional file input. It does not cover edge cases like parameter conflicts, but those are not essential for basic 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?
The input schema already has 100% descriptions for all parameters, giving a baseline of 3. The description adds value by linking parameters to platforms: 'Aceita deep link, appPackage/appActivity (Android) ou bundleId (iOS)' and explaining elementsJsonPath's purpose of reading and formatting a file. This goes beyond the schema and helps select the correct 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 opens with a specific verb and resource: 'Gera estrutura/template de elementos para testes mobile' (generates structure/template of elements for mobile tests). It clearly distinguishes this from sibling tools like 'generate_tests' by stating the template is for use in generate_tests, positioning it as a preparatory step.
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 context on when to use the tool: for generating mobile element mapping structures and instructions. It mentions the optional elementsJsonPath for reading existing mapped elements, implying a conditional workflow. However, it does not explicitly state when not to use it or name alternative tools, only implying the relationship with generate_tests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
por_que_falhouPor que falhou? Explicação para junioresB
Traduz stack trace em explicação humana. Recebe output do terminal/log, lê o projeto e o teste (se path dado), e retorna: O que aconteceu, Por que falhou, O que fazer, Sugestão de correção, Conceito. Escalável e procedural.
| Name | Required | Description | Default |
|---|---|---|---|
| errorOutput | No | Output do terminal quando o teste falhou. Se vazio, lê automaticamente de .qa-lab-last-failure.log (capturado pelo run_tests). Cole aqui ou deixe vazio para usar última falha. | |
| testFilePath | No | Caminho do arquivo de teste que falhou (ex: specs/login.spec.js). Se informado, o agente lê o código e dá sugestão mais precisa. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| conceito | No | |
| framework | No | |
| formattedText | No | |
| oQueAconteceu | No | |
| oQueFazerAgora | No | |
| sugestaoCorrecao | No | |
| porQueProvavelmenteFalhou | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and does disclose that the tool reads the project/test and returns a structured explanation. However, it does not mention limitations, potential side effects, or requirements beyond input, and the phrase 'Escalável e procedural' is vague and does not add concrete behavioral detail.
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 compact, front-loaded with the core action, and efficiently lists the output categories. The final phrase 'Escalável e procedural' is somewhat vague and arguably unnecessary, but the overall structure remains tight and 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?
The description covers the main workflow, inputs, and output sections, and the presence of an output schema reduces the need to describe return formats. However, it lacks positioning relative to sibling tools and does not discuss failure scenarios or limitations, which would be valuable given the broad QA tool ecosystem.
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 schema already provides 100% coverage with detailed parameter descriptions, including the fallback to .qa-lab-last-failure.log and the behavior when testFilePath is supplied. The description adds only minimal reinforcement of these points and does not introduce new semantic value beyond 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?
The description uses a specific verb+resource construction ('Traduz stack trace em explicação humana') and clearly lists the structured output sections (O que aconteceu, Por que falhou, etc.), making the purpose evident. However, it does not explicitly compare against sibling tools like analyze_failures or suggest_fix, so differentiation is not fully spelled out.
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 the tool should be used when a stack trace or terminal output needs a human explanation, especially with optional test file context. The parameter descriptions add conditional behavior (auto-reading from log, reading test file), but there is no explicit 'use this instead of X' guidance or exclusion of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_autoModo autônomo: gera, roda, corrige e aprendeA
[AGENTE AUTÔNOMO] Loop completo: detecta projeto → gera teste → roda → se falhar: analisa, corrige, roda de novo → aprende com erros. Repete até passar ou atingir max_retries.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes | O que testar (ex: 'login flow', 'checkout', 'API /users'). | |
| framework | No | Framework (detectado automaticamente se omitido). | |
| maxRetries | No | Máximo de tentativas de correção. Default: 3. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| attempts | Yes | |
| learnings | No | |
| finalStatus | Yes | |
| testFilePath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the loop behavior, retry logic, and learning from errors. However, it doesn't explicitly warn about side effects like modifying files or potentially long execution times, which could be important for an agent to consider.
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 that effectively uses arrows to outline the sequential loop. It is dense but efficient, with no wasted words, and clearly front-loads the autonomous agent concept.
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 tool is complex, but the description covers the essential workflow steps and the stopping condition. An output schema exists, so return values need not be explained. It doesn't mention prerequisites or edge cases (e.g., no project detected), but the description is sufficiently complete for an agent to invoke the tool.
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 the baseline is 3. The description mentions max_retries and auto-detection of framework, but these add no new meaning beyond what the schema already provides. The 'request' parameter is not elaborated further.
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: an autonomous agent that generates, runs, fixes, and learns from tests in a loop. This distinctively differentiates it from siblings like generate_tests or run_tests, which each handle a single step.
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 when to use this tool (for a complete autonomous loop) versus manually calling steps like generate_tests, run_tests, and analyze_failures. However, it doesn't explicitly name alternatives or state exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_compare_with_industryComparar com padrões da indústriaA
[BENCHMARK] Compara as métricas do seu projeto com benchmarks da indústria (cobertura, taxa de sucesso, tempo de execução).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| verdict | Yes | |
| industry | Yes | |
| yourProject | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core action (comparing metrics) but does not explicitly disclose whether it is read-only, how benchmarks are obtained, or any limitations. The non-destructive nature is implied but not stated.
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, well-structured sentence that front-loads the purpose with a helpful [BENCHMARK] tag. It includes the types of metrics compared (coverage, success rate, execution time) without any fluff or repetition.
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 adequately covers the tool's purpose and comparison criteria. Since an output schema exists, return values do not need to be detailed. The tool is simple (no parameters), and the description provides sufficient context for selection and invocation, though it could mention prerequisites like having test metrics available.
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 tool has zero parameters, so the schema trivially covers 100% of the inputs. The description appropriately does not discuss parameters, which is correct given the 0-param count. The baseline for no parameters is 4, and nothing lowers it.
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 compares project metrics against industry benchmarks, specifying coverage, success rate, and execution time. It uses a specific verb and resource, but does not explicitly differentiate from sibling tools beyond the [BENCHMARK] tag.
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 the tool is used for benchmarking project metrics against industry standards, but it does not provide explicit guidance on when to use it versus alternatives or when not to use it. The context is clear enough, but no exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_full_analysisAnálise completa: executor + consultor inteligenteB
[EXECUTOR + CONSULTOR] Análise completa em 1 comando: detecta, executa testes, analisa estabilidade, prevê problemas, calcula riscos por área e gera recomendações acionáveis priorizadas. Combina execução + inteligência.
| Name | Required | Description | Default |
|---|---|---|---|
| executeTests | No | Se true, executa todos os testes antes de analisar. Default: false (usa histórico). |
Output Schema
| Name | Required | Description |
|---|---|---|
| risks | Yes | |
| score | Yes | |
| actions | Yes | |
| summary | Yes | |
| stability | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It lists actions but fails to disclose that test execution is conditional on the executeTests parameter (default false), creating a potential mislead with the phrase 'executa testes'. It also does not mention any side effects of running tests or whether the tool modifies project state.
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 that front-loads the core value ('Análise completa') and then succinctly itemizes the capabilities. It is concise, free of redundancy, and every element contributes to understanding the tool's purpose.
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?
Despite having an output schema, the tool is complex and the description lacks important context: it does not mention prerequisites like a detected project, further defines what exactly is 'detecta', or clarifies how it differs from similar all-in-one siblings like qa_auto. The description is not complete enough for an agent to understand when and how to invoke it.
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 only parameter executeTests is fully documented in the schema with a clear description and default value, so schema coverage is 100%. The tool description adds no additional meaning about the parameter and may even conflict with it by implying tests always run. Baseline 3 is appropriate since the schema does the heavy lifting.
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 performs a complete analysis, listing specific actions: detect, execute tests, analyze stability, predict problems, calculate risks, and generate prioritized recommendations. It also distinguishes itself from siblings by explicitly positioning as a combined executor + consultant, which is unique among the sibling tools.
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 for a comprehensive, one-command analysis that combines execution and intelligence, but it does not explicitly state when to choose this tool over alternatives like run_tests or analyze_failures, nor does it provide exclusions. The guidance is present but only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_health_checkHealth check completo do projetoB
[DIAGNÓSTICO COMPLETO] Analisa tudo: frameworks detectados, testes existentes, cobertura, últimas falhas, aprendizados do agente, e dá uma nota de 0-100 para a saúde do QA.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| score | Yes | |
| frameworks | Yes | |
| totalTests | Yes | |
| learningRate | Yes | |
| lastRunStatus | No | |
| recommendations | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It states the tool analyzes and scores, but does not disclose side effects (e.g., if it runs tests, reads files only, or modifies anything), permissions, or operational constraints such as runtime.
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, dense sentence that front-loads the purpose with a bracketed label and efficiently enumerates the scope. No word is wasted, and it delivers clear value.
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?
With an output schema present and no parameters, the description does not need to explain return values. It lists the main analysis areas and the score, which is sufficient for a high-level diagnostic tool. It lacks deeper context on interpretation or side effects, but remains reasonably complete.
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 tool has zero parameters and an empty schema, so there are no parameter semantics to explain. The description adds no parameter details, which is acceptable given the structure. Baseline of 4 for 0-param tools 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 states a specific action ('Analisa tudo') with a concrete scope (frameworks, tests, coverage, failures, learnings) and a distinctive output (0-100 score). However, it does not explicitly distinguish itself from similar sibling tools like qa_full_analysis, which limits differentiation.
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 usage guidance is provided. The description does not mention when to choose this tool over alternatives, nor any exclusions or prerequisites. With many sibling diagnostic tools, this omission is significant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_learning_statsEstatísticas de aprendizadoA
[MÉTRICAS] Retorna métricas de aprendizado do agente: quantos testes gerados, taxa de sucesso na primeira tentativa, correções aplicadas, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| timingFixes | Yes | |
| selectorFixes | Yes | |
| testsGenerated | Yes | |
| totalLearnings | Yes | |
| successfulFixes | Yes | |
| firstAttemptSuccessRate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It implies a read-only operation ('Retorna') and lists specific metrics, but it does not disclose potential side effects, dependencies, or limitations. Basic transparency is provided, but not deeply.
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, front-loaded sentence with a [MÉTRICAS] tag and concrete examples. It is concise and every element contributes meaning, with no filler.
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 zero-parameter metrics tool with an output schema, the description adequately conveys what is returned. However, it omits usage context and relationships to sibling tools, leaving some gaps in completeness.
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 has zero parameters, so the baseline is 4. The description does not need to explain parameter details, and it doesn't introduce ambiguity. The examples of metrics add context but are not parameter-related.
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 returns agent learning metrics and provides concrete examples (tests generated, first-attempt success rate, corrections). However, it does not explicitly distinguish itself from the sibling tool get_learning_report, which might overlap in purpose.
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 given about when to use this tool versus alternatives like get_learning_report or qa_health_check. The description only states what it does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_predict_flakyPrever quais testes vão ficar flakyA
[PREDIÇÃO] Analisa testes existentes e prevê quais têm maior chance de se tornarem flaky (baseado em padrões: seletores frágeis, waits inadequados, dependências externas).
| Name | Required | Description | Default |
|---|---|---|---|
| testFile | No | Arquivo específico (opcional). Se omitido, analisa todos. |
Output Schema
| Name | Required | Description |
|---|---|---|
| predictions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the analytical nature (predicts flakiness) but does not mention whether the tool is read-only, has side effects, requires specific permissions, or how it handles missing files. For a tool that likely inspects tests, this is a significant gap.
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, focused sentence, front-loaded with the '[PREDIÇÃO]' tag. Every part adds value: purpose, basis, and patterns. No wasted 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 the tool's simplicity (one optional parameter) and that an output schema exists (though not shown), the description need not explain return values. The purpose and analysis basis are clear. It could be more complete by mentioning default behavior (analyzes all when testFile omitted), but the schema covers that.
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%, with the only parameter testFile clearly described as optional and specifying behavior when omitted. The description itself adds no extra parameter semantics, but the schema already provides sufficient meaning, meeting the 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: analyzing existing tests to predict flakiness based on specific patterns (fragile selectors, inadequate waits, external dependencies). It uses a specific verb ('analisa', 'prevê') and resource ('testes existentes'), distinguishing it from other QA tools like run_tests or analyze_failures.
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 for analysis and prediction of flaky tests, but it does not explicitly state when to use this tool versus alternatives like analyze_failures or qa_health_check. It gives context (existing tests, prediction) but no exclusions or explicit alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_route_taskRoteador de tarefas QA (agentes especializados)A
Recebe uma descrição da tarefa e retorna qual agente (conjunto de ferramentas) deve ser usado. Útil para encaminhar a ferramenta certa.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Descrição da tarefa (ex: 'rodar os testes', 'gerar teste de login', 'analisar por que falhou'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| description | Yes | |
| suggestedAgent | Yes | |
| suggestedTools | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool only returns which agent (toolset) to use, not performing the task itself. This is transparent for a simple routing tool, though it lacks details on decision criteria or potential ambiguity.
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, front-loaded with the core action and usage hint, with no redundant content. Every word contributes to understanding.
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 router with one parameter and an output schema, the description sufficiently explains the tool's purpose and usage. It does not need to detail return format (schema exists) or complex behavior, making it complete for this context.
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 already provides a complete description of the single 'task' parameter with examples. The description merely restates that it receives a task description, adding no extra semantic value beyond the schema. Baseline 3 is appropriate given 100% schema coverage.
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 function: 'Recebe uma descrição da tarefa e retorna qual agente (conjunto de ferramentas) deve ser usado.' This specifies the verb (receives and returns) and resource (task description and agent selection), distinguishing it from sibling tools that perform actual QA tasks.
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 includes 'Útil para encaminhar a ferramenta certa,' which implies using this tool when you need to route a task to the appropriate specialized agent. However, it does not explicitly mention when not to use it or provide alternatives, so there is no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_suggest_next_testSugerir próximo teste a criarA
[IA PROATIVA] Analisa o projeto e sugere qual teste criar a seguir (baseado em cobertura, fluxos críticos, gaps detectados).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| suggestions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'analisa' (analyzes) the project, which implies a read-only operation, but it does not explicitly confirm that it has no side effects, nor does it disclose what the suggestion output looks like or whether any project state is required. The description adds some context about criteria (coverage, critical flows, gaps) but not enough for full transparency.
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 that includes a helpful tag ('IA PROATIVA') and a clear explanation of the tool's purpose and reasoning basis. There is no wasted language, and the structure is efficient and front-loaded.
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 that the tool has no parameters and an output schema exists, the description is adequately complete. It explains the tool's core behavior and the criteria used for the suggestion. It could mention a prerequisite (e.g., project detection), but the lack of such is not a significant gap given the simplicity of the tool and the presence of sibling tools that handle project setup.
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 tool has zero parameters, and the schema coverage is 100% (trivially), so the baseline is 4. The description adds context about the analysis criteria, which is useful for understanding what the tool considers, but there are no parameter-specific semantics to clarify. The score reflects the baseline for no-parameter tools.
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 function: it analyzes the project and suggests which test to create next, based on coverage, critical flows, and gaps. This specific verb+resource ('sugere qual teste criar a seguir') distinguishes it from sibling tools like generate_tests (which generates tests) or write_test (which writes a specific 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?
The description implies when to use the tool (when needing a suggestion for the next test) and mentions the basis for the suggestion, but it does not explicitly state when not to use it or provide alternatives. The '[IA PROATIVA]' tag hints at proactive use but lacks elaboration, leaving the guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
qa_time_travelViajar no tempo: ver evolução do agenteA
[VISUALIZAÇÃO] Mostra como o agente evoluiu ao longo do tempo: taxa de sucesso por semana, tipos de erros corrigidos, padrões aprendidos.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Período (default: all). |
Output Schema
| Name | Required | Description |
|---|---|---|
| timeline | Yes | |
| topLearnings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It discloses that this is a visualization ('VISUALIZAÇÃO') and shows historical data aggregated by week, which implies a non-mutating read operation. It doesn't mention auth or performance, but for a simple viewing tool this is sufficient.
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, front-loaded sentence with a clear visual marker and zero filler. It's concise while retaining 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?
The tool has a simple schema (1 optional param) and an output schema exists, so the description doesn't need to explain return values. It covers the main aspects of what the tool shows, making it adequate for selection and invocation. It could be slightly more explicit about the period parameter's effect, but not necessary.
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 schema fully documents the only parameter 'period' with an enum and default, and the description adds no further meaning to it. Baseline is 3 due to high schema coverage, and the description's mention of weekly data indirectly relates to the period selection.
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 uses the verb 'Mostra' (shows) and specifies the resource as the agent's evolution over time, with concrete outputs (success rate per week, error types corrected, learned patterns). This clearly differentiates it from sibling tools like qa_learning_stats by focusing on temporal evolution, deserving a 5.
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 when to use it (when you need to see agent evolution over time) but does not explicitly mention alternatives or exclusions. Given the siblings include related analytics tools, the lack of comparative guidance makes it a 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileLer qualquer arquivoA
Lê o conteúdo de QUALQUER arquivo do projeto por caminho. Use para specs, page objects, componentes, código fonte - qualquer formato.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo ao projeto (ex: cypress/e2e/login.cy.js, src/pages/Login.tsx, tests/login.robot). | |
| encoding | No | Encoding. Default: utf8 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| content | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies read-only behavior with the verb 'Lê' but does not explicitly state that it is non-destructive, nor does it mention error handling, path restrictions, or other behavioral traits. For a tool that reads files, this is insufficient transparency.
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, front-loaded with the purpose, and every word adds value. It is appropriately sized, with no filler or redundant content.
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 tool is simple, and an output schema exists, so return values are covered. The description explains what it does and when to use it. However, it lacks explicit safety context (since annotations are absent) and doesn't mention alternatives, but given the simplicity, it is mostly complete.
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%: both 'path' and 'encoding' have descriptions in the schema, including examples and defaults. The tool description adds no parameter-specific meaning beyond what the schema already provides, so the baseline score 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 states the tool's function: 'Lê o conteúdo de QUALQUER arquivo do projeto por caminho' (reads the content of any project file by path). It names a specific verb and resource. However, it does not differentiate from sibling tools like 'read_project', so it lacks explicit sibling differentiation.
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: 'Use para specs, page objects, componentes, código fonte - qualquer formato.' It tells when to use the tool but does not mention exclusions or alternatives, such as when not to use it or use a different tool like 'read_project'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_projectLer estrutura do projetoA
Lê package.json, specs existentes (qualquer framework: Cypress, Playwright, WDIO, Robot, pytest, etc) e retorna contexto. Use includeContent para trazer código de exemplos.
| Name | Required | Description | Default |
|---|---|---|---|
| maxFiles | No | Máximo de arquivos cujo conteúdo será lido. Default: 3. | |
| includeContent | No | Se true, inclui conteúdo dos primeiros 3 arquivos de teste como referência. Default: false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| summary | Yes | |
| testFiles | No | |
| packageJson | No | |
| testFilesWithContent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It clearly indicates a read-only operation by using 'Lê' and specifies the files it processes, but it leaves 'retorna contexto' vague without describing output structure or potential side effects like recursion limits. The read-only intent is clear, but additional behavioral details are missing.
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 short, front-loaded sentences. The first states the core purpose, and the second gives a usage tip. Every word earns its place, with no extraneous information.
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 tool is simple, and an output schema exists (though not shown) to explain return values. The description covers what files are read and the includeContent option, while the schema covers maxFiles. It could mention whether it scans recursively or ignores certain directories, but overall it is adequate for a read-only project inspection tool.
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 both parameters with descriptions, so the baseline is 3. The description adds minimal extra by explaining includeContent's purpose ('trazer código de exemplos'), but it does not elaborate on maxFiles beyond the schema default. The schema does the heavy lifting for parameter understanding.
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 reads package.json and existing specs for any test framework and returns context. The verb 'Lê' is specific and the resource is well-defined, distinguishing it from read_file which reads arbitrary files. The scope is explicit and unambiguous.
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 using this tool to gather project context and examples, and provides a tip on using includeContent for example code. However, it does not explicitly contrast with sibling tools like detect_project or read_file, nor does it specify when not to use it. Usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_linterExecutar linterA
Roda ESLint, Prettier ou linter configurado no projeto.
| Name | Required | Description | Default |
|---|---|---|---|
| fix | No | Auto-fix (--fix). Default: false. | |
| path | No | Caminho específico (ex: src/). Default: todo o projeto. |
Output Schema
| Name | Required | Description |
|---|---|---|
| output | No | |
| status | Yes | |
| message | Yes | |
| exitCode | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose that running with fix=true may modify files, nor any other behavioral traits such as performance or dependency requirements. Only the basic action is stated.
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 wasted words. It effectively communicates the tool's purpose without unnecessary verbosity.
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 tool is simple, parameters are well-documented in the schema, and an output schema exists, reducing the need for return-value explanations. However, the description lacks behavioral context such as potential file modifications and provides no usage scenarios, leaving some gaps in completeness.
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 already provides complete descriptions for both parameters (fix and path), giving 100% coverage. The description itself adds no additional parameter semantics, so the baseline score 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 states the tool runs ESLint, Prettier, or the project's configured linter. This specific verb+resource makes the purpose unambiguous and distinguishes it from sibling tools like run_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 intended usage is implied from the name and description: use when you need to lint code. However, there is no explicit guidance on when to use this tool versus alternatives, nor any mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_testsExecutar testesA
Roda testes do projeto. Suporta: Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Appium, Detox, Robot Framework, pytest, e mais. Detecta automaticamente.
| Name | Required | Description | Default |
|---|---|---|---|
| spec | No | Caminho do spec (ex: cypress/e2e/test.cy.js). | |
| suite | No | Suite ou pattern (ex: e2e, api). | |
| device | No | Device/configuration para mobile. Se vazio, detecta de qa-lab-agent.config.json, wdio.conf ou .detoxrc. | |
| framework | No | Framework específico ou 'npm' para npm test. | |
| autoFixSelector | No | Se true e falhar por seletor, aplica correção automaticamente e tenta novamente. Requer spec e API key. Default: true para mobile. | |
| explainOnFailure | No | Se true, quando falhar gera automaticamente: O que aconteceu, Por que falhou, O que fazer, Sugestão de correção. Requer API key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | Yes | |
| exitCode | Yes | |
| runOutput | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the tool runs tests and auto-detects frameworks, which is useful, but it omits behavioral traits such as requiring an API key for auto-fix/explain features, potential side effects of test execution, or behavior on detection failure. Not misleading, but incomplete.
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 and front-loaded: it states the core purpose in the first sentence, lists supported frameworks in a compact manner, and adds the key auto-detection detail. Every word earns its place, with no fluff.
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 complexity (many frameworks, six parameters, advanced features like autoFixSelector and explainOnFailure), the description is adequate but thin. It covers the main purpose and auto-detection but does not highlight the advanced capabilities or API key requirements, though an output schema exists to handle return values.
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 the baseline is 3. The description adds no parameter-specific information beyond the schema, but the schema itself already provides detailed descriptions for all six parameters, including enums and defaults.
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 runs project tests with a specific verb and resource, and lists supported frameworks plus auto-detection. This distinguishes it from sibling tools like watch_tests and run_linter by focusing on execution with broad framework support.
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 for running tests with automatic framework detection, but it does not explicitly state when to use this tool versus alternatives like watch_tests or run_linter. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_fixSugerir correção para falhasB
Recebe análise de falhas e sugere correções (patch, refactor, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| failures | Yes | Resultado de analyze_failures. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| suggestions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description must bear the full burden of disclosing behavioral traits. It only states that it 'suggests fixes' without clarifying whether the tool modifies files, requires special permissions, or returns a structured patch. The ambiguous 'etc.' adds further vagueness, leaving side effects and output behavior undisclosed.
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, front-loaded sentence with no redundant words. The 'etc.' is slightly vague but does not add bloat. It is appropriately concise for the tool's simple purpose.
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?
While the tool is simple (one parameter, output schema exists), the description lacks workflow context such as the expected input source (analyze_failures) or any constraints on use. It is adequate but leaves clear gaps in how and when the tool fits into a larger QA pipeline.
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 schema already provides 100% coverage for the single 'failures' parameter, describing it as 'Resultado de analyze_failures.' The description does not add any parameter-specific semantics, so it stays at the baseline level without exceeding the schema's detail.
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 identifies the action ('sugere correções' – suggests fixes) and the resource (failure analysis), making the purpose evident. However, it does not differentiate itself from the sibling tool 'suggest_selector_fix' or other fix-related tools, earning a 4 rather than 5.
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 that this tool should be used after analyzing failures, but it does not explicitly state when to use it over alternatives. No exclusions or comparisons are provided, so the guidance remains implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_selector_fixSugerir correção de seletor (Self-healing)A
Quando um teste falha por elemento não encontrado (seletor quebrado após mudança de UI), usa LLM para sugerir seletor alternativo mais resiliente. Prioriza data-testid, role, texto acessível.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Framework do teste. Detectado automaticamente se omitido. | |
| errorOutput | No | Output do terminal da falha. Se vazio, lê de .qa-lab-last-failure.log. | |
| testFilePath | Yes | Caminho do arquivo de teste que falhou (ex: specs/login.spec.js). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| explicacao | No | |
| codigoCorrigido | No | |
| selectorSugerido | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that an LLM is used and the selector prioritization strategy, which is useful. But it does not state whether the tool modifies files, requires network access, or has side effects; the non-destructive nature is only implied by 'sugerir' (suggest).
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 that is front-loaded with the primary purpose and includes the key heuristic (priority order). No redundant phrases or unnecessary details, making it highly concise.
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 tool has an output schema (per context signals) and schema descriptions cover all parameters, so return values and parameter meaning are documented. The description adds trigger condition and priority heuristic. It misses alternative tool mentions and explicit safety behavior, but overall it is fairly complete for a focused suggestion tool.
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 schema provides 100% coverage with each parameter having a description, so the baseline is 3. The tool description adds no additional parameter-specific details beyond the schema, and it does not explain how parameters like 'framework' or 'errorOutput' influence the suggestion logic beyond what schema already says.
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: when a test fails due to a broken selector, it uses an LLM to suggest a more resilient alternative. It specifies the context (element not found after UI change) and the priority order (data-testid, role, accessible text), which distinguishes it from siblings like 'suggest_fix' or 'analyze_failures'.
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 trigger condition is explicit ('Quando um teste falha por elemento não encontrado'), giving clear guidance on when to use this tool. However, it does not mention situations when it should not be used or compare itself to alternatives like 'suggest_fix', leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_testsRodar testes em modo watchB
Inicia testes em watch mode (Jest, Vitest). Útil para desenvolvimento.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Framework. Default: detectado. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It fails to mention that watch mode is a long-running process that blocks until interrupted, which is critical for an agent to avoid hanging. The description only mentions starting watch mode, not the lifecycle or side effects.
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 brief with two sentences, the first stating the core purpose and the second adding a generic development context. It's efficient, though the second sentence adds limited value and could be more specific.
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?
With no annotations and an output schema not detailed, the description carries the burden of context. It lacks key information about the tool's blocking behavior and how it relates to run_tests, making it incomplete for an agent to safely invoke.
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 only parameter 'framework' has a description in the schema with a default detection behavior, achieving 100% schema coverage. The tool description adds no additional parameter information, so it meets the baseline for high schema coverage but doesn't enhance understanding.
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 'Inicia testes em watch mode (Jest, Vitest)', identifying the specific action (starting tests), the mode (watch), and the supported frameworks. This distinguishes it from sibling tool run_tests, which likely runs tests once.
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 phrase 'Útil para desenvolvimento' provides some context about when to use it, but it's vague and doesn't explicitly contrast with run_tests or other alternatives. No exclusions or specific scenarios are given, leaving the agent to infer usage from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_eval_browserAvaliar app no browser (screenshots, network, console)A
[Agente especializado: Browser] Abre a URL no navegador, captura screenshot, erros de console e requisições de rede. Inspirado em web-eval-agent. Requer: npm install playwright
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL para avaliar (ex: http://localhost:3000, https://exemplo.com). | |
| captureConsole | No | Capturar logs e erros do console. Default: true | |
| captureNetwork | No | Capturar requisições de rede. Default: true | |
| screenshotPath | No | Caminho para salvar screenshot. Default: .qa-lab-screenshot.png |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| error | No | |
| consoleLogs | No | |
| consoleErrors | No | |
| screenshotPath | No | |
| networkRequests | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It does disclose the Playwright dependency ('Requer: npm install playwright') and the capture scope, but it omits details about file side-effects (e.g., screenshot creation) and failure 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 very concise: two short sentences that front-load the agent role and list actions, followed by a critical prerequisite. No unnecessary words or redundancy.
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 output schema exists, and all parameters are documented, so the description only needs to cover core function and prerequisites. It does so effectively, including the Playwright install requirement. Missing usage alternatives, but for a simple browser-eval tool this is adequate.
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 all four parameters well-described. The description's mention of capturing console/network restates the parameter descriptions without adding extra syntax, format, or usage nuances, so baseline 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 states it opens a URL in the browser and captures screenshots, console errors, and network requests. This specific verb-resource pair distinguishes it from sibling testing and file tools.
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 browser-evaluation usage via '[Agente especializado: Browser]' and lists the capture capabilities, but it does not explicitly say when to use this tool versus alternatives like run_tests or qa_auto. No exclusions or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
write_testEscrever arquivo de testeB
Grava spec no disco. Suporta QUALQUER framework (Cypress, Playwright, WDIO, Appium, Robot, pytest, etc.). Detecta automaticamente pasta e extensão.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Nome do arquivo (ex: login-test, logout_spec). | |
| subdir | No | Subpasta (ex: e2e, api). Default: raiz da pasta de testes. | |
| content | Yes | Conteúdo do spec. | |
| framework | No | Framework (detectado automaticamente se omitido). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| path | No | |
| error | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses that it writes to disk and auto-detects path, but omits critical side effects such as whether it overwrites existing files, creates missing directories, or what happens on error. The return value is not described, though an output schema may cover that.
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 three short sentences, each adding valuable information: the core action, framework flexibility, and automatic path detection. There is no redundancy or unnecessary detail.
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?
While the schema covers parameter documentation, the description lacks essential behavioral context for a write operation, specifically overwrite semantics and directory creation. Since an output schema exists, return values are handled, but the side effects remain undocumented, leaving the tool only minimally complete.
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 provides full descriptions for all four parameters (100% coverage), so the baseline is 3. The description does not add any extra meaning or usage details beyond what the schema already includes.
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 uses the specific verb 'Grava' (writes) with the resource 'spec' (test file), and adds that it supports any framework and auto-detects folder and extension. This clearly distinguishes it from sibling tools like read_file or run_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?
Usage is implied: use this when you need to write a test spec file. However, it does not explicitly state when not to use it, nor does it mention alternative tools like generate_tests or create_test_template. It also lacks context on prerequisites like needing an existing project.
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.
31 tool updates
v2.3.1- First observed
analyze_failures - First observed
analyze_file_methods - First observed
create_bug_report - First observed
create_test_template - First observed
detect_project - First observed
generate_tests - First observed
get_business_metrics - First observed
get_learning_report - First observed
get_test_coverage - First observed
install_dependencies - First observed
list_test_files - First observed
map_mobile_elements - First observed
por_que_falhou - First observed
qa_auto - First observed
qa_compare_with_industry - First observed
qa_full_analysis - First observed
qa_health_check - First observed
qa_learning_stats - First observed
qa_predict_flaky - First observed
qa_route_task - First observed
qa_suggest_next_test - First observed
qa_time_travel - First observed
read_file - First observed
read_project - First observed
run_linter - First observed
run_tests - First observed
suggest_fix - First observed
suggest_selector_fix - First observed
watch_tests - First observed
web_eval_browser - First observed
write_test
TDQS
Scored across 31 tools
Multiple tools overlap significantly: run_tests/watch_tests/get_test_coverage all execute tests, generate_tests/create_test_template/write_test all create test content, and qa_full_analysis, qa_health_check, and qa_auto all perform broad analysis. Detailed descriptions help but boundaries remain unclear, risking misselection.
Naming is inconsistent: most tools use verb_noun (run_tests, read_file), but many use a qa_ prefix for meta-tools (qa_health_check, qa_learning_stats), and one tool is in Portuguese (por_que_falhou). The mix of imperative verbs and descriptive noun phrases creates no clear pattern.
At 31 tools, the set is heavy for the apparent scope. Many tools are meta-analytical (qa_time_travel, qa_learning_stats, get_learning_report) and could be consolidated. While some breadth is justified for a QA agent, the count feels inflated with redundancy.
The core QA lifecycle is covered: test creation (generate_tests, write_test), execution (run_tests), failure analysis (analyze_failures, por_que_falhou), fixing (suggest_fix), and reporting (create_bug_report). Minor gaps such as test deletion or explicit test versioning exist but are not critical for typical workflows.
Maintenance
Related MCP Connectors
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.
MCP server for Mint — AI-powered QA that runs your app in a real browser on every PR.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI coding assistants QA superpowers, enabling users to report bugs by pointing, clicking, or typing while automatically capturing diagnostic data for AI-driven test-feedback-fix loops.31 npm4MIT
- AlicenseAqualityAmaintenanceAn MCP server that brings senior-QA discipline to AI coding assistants, enabling test planning, TDD, mutation testing, and code review.486Apache 2.0
- AlicenseAqualityBmaintenanceAn MCP server that enables autonomous code development by pulling GitHub issues, fixing them in a sandboxed environment, running tests, opening PRs, and promoting to production upon human approval.3AGPL 3.0
- FlicenseAqualityDmaintenanceAutomated Playwright E2E test repair powered by a self-improving, governed MCP server that runs failing tests, collects failure artifacts, reasons about root causes, validates and applies fixes, and re-runs to verify.12-