Quality
БесплатноНе проверенAutomates repository analysis, test planning, and generation of end-to-end tests with Playwright, acting as an intelligent quality assistant.
Описание
Automates repository analysis, test planning, and generation of end-to-end tests with Playwright, acting as an intelligent quality assistant.
README
Quality CLI é um servidor MCP (Model Context Protocol) que automatiza a análise de repositórios e a geração de testes E2E com Playwright. Ele funciona como um assistente inteligente de qualidade que analisa seu código, detecta padrões, gera planos de teste e cria estruturas completas de automação.
🎬 Como Funciona na Prática
Imagine que você tem um projeto e quer implementar testes automatizados. Tradicionalmente você precisaria:
- ⏰ Manualmente analisar todas as rotas e endpoints
- ⏰ Manualmente planejar quais testes criar
- ⏰ Manualmente estruturar os arquivos de teste
- ⏰ Manualmente configurar Playwright, Jest, etc.
- ⏰ Manualmente escrever cada teste do zero
✨ Com o Quality MCP:
# Um único comando faz TUDO automaticamente:
quality auto --repo . --product "MyApp"
O que acontece em segundos:
🔍 Detectando linguagem... ✅ TypeScript + Next.js
📦 Analisando código... ✅ 23 rotas, 15 endpoints, 8 eventos
🎯 Recomendando estratégia... ✅ 70% unit, 20% integration, 10% E2E
📋 Gerando plano... ✅ 45 cenários organizados por domínio
🏗️ Criando estrutura... ✅ Templates + configs + fixtures
🧪 Executando testes... ✅ 12 testes passando, 85% cobertura
📊 Gerando relatórios... ✅ Dashboard HTML + resumo executivo
📁 Resultado: Estrutura completa e organizada
qa/MyApp/ # 🎯 TUDO em um único diretório!
├── mcp-settings.json # ⚙️ Configurações do projeto
├── tests/
│ ├── analyses/ # 📊 Dados brutos (JSON)
│ │ ├── analyze.json # Mapeamento de código
│ │ ├── coverage-analysis.json
│ │ ├── risk-map.json
│ │ └── TEST-QUALITY-LOGICAL.json
│ ├── reports/ # � Relatórios legíveis
│ │ ├── QUALITY-REPORT.md # Resumo executivo
│ │ ├── PLAN.md # Plano de testes
│ │ ├── PYRAMID.md # Análise de pirâmide
│ │ ├── PYRAMID.html # Dashboard pirâmide
│ │ ├── COVERAGE-REPORT.md
│ │ ├── DIFF-COVERAGE.md
│ │ └── SELF-CHECK.md # Validação de ambiente
│ ├── unit/ # 🔬 Testes unitários
│ ├── integration/ # 🔗 Testes de integração
│ └── e2e/ # 🎭 Testes E2E Playwright
├── dashboards/
│ └── dashboard.html # 📈 Dashboard interativo
└── fixtures/
└── auth/
└── storageState.json # Sessões autenticadas
🚦 Quality Gates & DORA Metrics (NEW v0.4.0!)
O MCP Quality CLI agora inclui Quality Gates completos para garantir que seu código atenda aos padrões de qualidade antes de ir para produção!
🎯 O que são Quality Gates?
São portas de qualidade que validam métricas críticas e bloqueiam deploys arriscados automaticamente:
# Executar pipeline completo + Quality Gates
npx quality-cli analyze --mode full
# Aplicar quality gates (exit code 0/1/2)
npx quality-cli release-quality-gate
📊 Métricas Monitoradas
| Categoria | Métricas | Threshold | Bloqueante? |
|---|---|---|---|
| Coverage | Lines, Branches, Functions | ≥80%, ≥75%, ≥80% | ⚠️ Warning |
| Mutation | Overall, Critical Modules | ≥50%, ≥60% | ❌ Yes (critical) |
| Contracts | CDC Verification, Breaking Changes | ≥95%, 0 | ❌ Yes (breaking) |
| Suite Health | Flakiness, Runtime, Parallelism | ≤3%, ≤12min, ≥4 | ⚠️ Warning |
| Portfolio | E2E%, Unit% | ≤15%, ≥60% | ⚠️ Warning |
| Production | CFR, MTTR, Deploy Freq | ≤15%, ≤60min, ≥1/month | ❌ Yes (CFR) |
🚨 Exit Codes para CI/CD
0 → ✅ All gates passed (deploy allowed)
1 → ❌ BLOCKED (blocking violations - stop deploy!)
2 → ⚠️ WARNINGS (non-blocking - allow with caution)
📈 DORA Metrics (Production)
Colete métricas DORA automaticamente de Sentry, Datadog, Grafana, Jira:
# Configurar credenciais
export SENTRY_DSN="..."
export DD_API_KEY="..."
# Coletar metrics
npx quality-cli prod-metrics-ingest --repo . --product MyApp
# Comparar vs SLOs
npx quality-cli slo-canary-check --repo . --product MyApp
Métricas DORA calculadas:
- 🚀 Deployment Frequency: Quantos deploys/mês
- ⏱️ Lead Time for Changes: Tempo médio de commit→deploy
- 🔥 Change Failure Rate: % de deploys que falharam
- 🛠️ MTTR: Tempo médio para resolver incidents
Classificação DORA Tier:
- 🏆 Elite: Deploy on-demand, LT < 1h, CFR < 5%, MTTR < 1h
- 🥇 High: Deploy 1x/dia-1x/semana, LT < 1 dia, CFR 5-15%, MTTR < 1 dia
- 🥈 Medium: Deploy 1x/semana-1x/mês, LT < 1 semana, CFR 16-30%, MTTR < 1 semana
- 🥉 Low: Deploy < 1x/mês, LT > 1 semana, CFR > 30%, MTTR > 1 semana
🔗 Integração CI/CD
GitHub Actions:
- name: Apply Quality Gates
run: npx quality-cli release-quality-gate
- name: Fail if blocked
if: failure()
run: exit 1
GitLab CI:
quality_gates:
script:
- npx quality-cli release-quality-gate
allow_failure:
exit_codes: 2 # Warnings OK
Jenkins:
def exitCode = sh(script: 'npx quality-cli release-quality-gate', returnStatus: true)
if (exitCode == 1) { error('BLOCKED') }
📚 Guia Completo de Quality Gates | Exemplos CI/CD
✨ Novidade v0.3.1: Retorno estruturado!
O comando auto agora retorna um objeto organizado com todos os paths gerados:
{
"ok": true,
"outputs": {
"root": "qa/MyApp",
"reports": [
"tests/reports/QUALITY-REPORT.md",
"tests/reports/PLAN.md",
"tests/reports/PYRAMID.html"
],
"analyses": [
"tests/analyses/analyze.json",
"tests/analyses/coverage-analysis.json"
],
"dashboard": "dashboards/dashboard.html",
"tests": {
"unit": "tests/unit",
"integration": "tests/integration",
"e2e": "tests/e2e"
}
},
"duration": 45230
}
⚡ Quickstart (v0.3.0 - One-Shot com Linguagem Natural)
🧠 Comandos em Linguagem Natural
A forma mais fácil de usar é através de comandos em português ou inglês. O Quality MCP entende o que você quer fazer:
// No seu cliente MCP (Claude, Cline, etc):
{
"tool": "nl_command",
"params": {
"query": "analise meu repositório e crie tudo automaticamente"
}
}
Exemplos de comandos que funcionam:
// 🚀 Análise completa (recomendado para começar)
"analise meu repositório"
"auditar o projeto completo"
"create full quality analysis"
"run everything automatically"
// 🔍 Apenas análise do código
"só analisar o código"
"mapear endpoints e rotas"
"scan the codebase only"
// 📋 Criar plano de testes
"criar plano de testes detalhado"
"gerar estratégia de qualidade"
"create comprehensive test plan"
// 🏗️ Gerar estrutura de testes
"gerar templates de testes"
"scaffold test structures"
"create unit test boilerplate"
// 🧪 Executar testes + cobertura
"rodar todos os testes"
"executar testes com cobertura"
"run tests and generate coverage report"
🎯 Exemplo Real: Análise de um projeto Next.js
Input:
quality auto --repo . --product "E-commerce"
Output esperado:
🚀 Iniciando análise mágica de qualidade...
🔍 Detectando linguagem e framework...
✅ Detectado: TypeScript + Next.js + Prisma
📊 Analisando código...
✅ 34 rotas API detectadas (/api/products, /api/users, etc.)
✅ 12 páginas Next.js encontradas
✅ 8 eventos de analytics identificados
✅ 3 domínios mapeados: auth, products, checkout
🎯 Recomendando estratégia...
✅ Tipo detectado: E-commerce Platform
📝 RECOMENDAÇÃO:
Unit: 70% (50-80 testes) 🔴 ALTA prioridade
Integration: 20% (15-25 testes) 🟡 MÉDIA prioridade
E2E: 10% (8-12 testes) 🟢 BAIXA prioridade
📋 Gerando plano de testes...
✅ 52 cenários organizados por domínio:
- Auth: login, registro, recuperação (8 cenários)
- Products: busca, filtros, detalhes (18 cenários)
- Checkout: carrinho, pagamento, confirmação (12 cenários)
- Admin: gestão produtos, pedidos (14 cenários)
🏗️ Criando estrutura de testes...
✅ 45 arquivos de teste gerados
✅ Playwright configurado (3 browsers)
✅ Jest configurado para unit tests
✅ Fixtures e mocks criados
🧪 Executando testes...
✅ Unit: 23/23 passing (100%)
✅ Integration: 8/8 passing (100%)
✅ E2E: 6/6 passing (100%)
📊 Cobertura: 78% (target: 70% ✅)
📊 Gerando relatórios...
✅ Dashboard: qa/E-commerce/tests/analyses/dashboard.html
✅ Resumo: qa/E-commerce/tests/analyses/SUMMARY.md
============================================================
✅ ANÁLISE COMPLETA FINALIZADA!
============================================================
🎉 Seu projeto agora tem 37 testes automatizados e 78% de cobertura!
🚀 Orquestrador Auto - Modos Detalhados
Para controle mais fino, use a tool auto diretamente:
{
"tool": "auto",
"params": {
"mode": "full" // ou: analyze, plan, scaffold, run
}
}
Modos disponíveis e o que cada um faz:
🔍 Mode: analyze
Tempo: ~30 segundos
quality auto --mode analyze
O que faz:
- Escaneia todo o código fonte
- Detecta rotas, endpoints, eventos
- Mapeia arquitetura e dependências
- Identifica domínios de negócio
- Gera:
analyze.jsoncom mapeamento completo
Ideal para: Entender a arquitetura antes de planejar testes
📋 Mode: plan
Tempo: ~1 minuto
quality auto --mode plan
O que faz:
- Tudo do
analyze+ - Recomenda estratégia de testes (% unit/integration/e2e)
- Gera plano detalhado com cenários
- Organiza por domínios e prioridades
- Gera:
TEST-PLAN.mdcom 30-50 cenários
Ideal para: Revisar estratégia antes de criar testes
🏗️ Mode: scaffold
Tempo: ~2 minutos
quality auto --mode scaffold
O que faz:
- Tudo do
plan+ - Cria estrutura completa de arquivos
- Gera templates de unit/integration/e2e
- Configura Playwright, Jest, fixtures
- Gera: 20-50 arquivos de teste prontos
Ideal para: Ter base sólida para desenvolver testes
🧪 Mode: run
Tempo: ~3-5 minutos
quality auto --mode run
O que faz:
- Executa todos os testes existentes
- Calcula cobertura total e diff
- Gera relatórios HTML/JSON
- Cria dashboard interativo
- Gera: Relatórios de execução e cobertura
Ideal para: Validar qualidade atual do projeto
🎯 Mode: full (RECOMENDADO)
Tempo: ~5-8 minutos
quality auto --mode full # ou só: quality auto
O que faz:
- TUDO: analyze → plan → scaffold → run
- Processo completo do zero ao dashboard
- Gera: Estrutura completa + relatórios + métricas
Ideal para: Setup completo de qualidade em projeto novo/existente
🎛️ Exemplos de Uso por Cenário
🆕 Projeto Novo (nunca teve testes)
# 1. Análise completa automática
quality auto --repo . --product "MinhaApp"
# Resultado: 0 → 30+ testes em 5 minutos
🔄 Projeto Existente (já tem alguns testes)
# 1. Só analisar gaps atuais
quality auto --mode analyze
# 2. Revisar plano gerado
# 3. Decidir se quer scaffold ou só rodar existentes
quality auto --mode run # só executar atuais
🚀 CI/CD Pipeline
# Gate de qualidade rápido
quality auto --mode run --skip-scaffold
# Análise de PR
quality diff-coverage --repo . --target-min 80
👥 Review de Arquitetura
# Gerar documentação da arquitetura atual
quality auto --mode plan --include-examples
# Compartilhar: qa/produto/tests/analyses/TEST-PLAN.md
🎯 O que o One-Shot faz automaticamente:
- Detecta o repositório (busca por
.gitoupackage.json) - Infere o produto do
package.json(ou usa nome da pasta) - Cria
qa/<product>/mcp-settings.json(se não existir) - Analisa código (endpoints, eventos, testes existentes)
- Recomenda estratégia (% unit/integration/e2e ideal)
- Gera plano de testes estruturado
- Cria scaffolds (unit, integration, e2e)
- Executa testes com cobertura
- Calcula cobertura total + diff vs branch base
- Gera relatório executivo em
SUMMARY.md
📄 Artifacts Gerados - Estrutura Detalhada
Depois de executar quality auto, você terá uma estrutura completa em qa/<produto>/:
qa/
└── MinhaApp/ # 📁 Pasta do produto
├── mcp-settings.json # ⚙️ Configurações (auto-geradas)
│ ├── product: "MinhaApp"
│ ├── domains: ["auth", "user"] # 🎯 Detectados automaticamente
│ └── targets: coverage, flaky % # 📊 Métricas de qualidade
│
└── tests/ # 📁 Pasta de testes
├── unit/ # 🔬 Testes unitários
│ ├── auth.test.ts # ✅ Login, logout, validações
│ ├── user.test.ts # ✅ CRUD usuários
│ └── utils.test.ts # ✅ Funções auxiliares
│
├── integration/ # 🔗 Testes de integração
│ ├── api/
│ │ ├── auth.test.ts # ✅ API auth + DB
│ │ └── users.test.ts # ✅ API users + DB
│ └── components/
│ └── forms.test.ts # ✅ Componentes + props
│
├── e2e/ # 🎭 Testes End-to-End
│ ├── playwright.config.ts # ⚙️ Config Playwright
│ ├── fixtures/
│ │ ├── auth.ts # 🔑 Login automatizado
│ │ └── data.ts # 📝 Dados de teste
│ ├── pages/ # 📄 Page Object Models
│ │ ├── login.page.ts
│ │ └── dashboard.page.ts
│ └── specs/ # 🧪 Cenários de teste
│ ├── auth/
│ │ ├── login.spec.ts # ✅ Login válido/inválido
│ │ └── recovery.spec.ts # ✅ Recuperação senha
│ └── user/
│ ├── profile.spec.ts # ✅ Edição perfil
│ └── settings.spec.ts # ✅ Configurações
│
└── analyses/ # 📊 Relatórios e análises
├── analyze.json # 🔍 Mapeamento código fonte
│ ├── routes: [...] # 🛣️ 34 rotas detectadas
│ ├── endpoints: [...] # 🔌 23 endpoints API
│ └── events: [...] # 📡 12 eventos analytics
│
├── TEST-PLAN.md # 📋 Plano detalhado de testes
│ ├── 📊 Estratégia (70% unit, 20% integ, 10% e2e)
│ ├── 🎯 52 cenários por domínio
│ ├── 🔄 Fluxos críticos prioritários
│ └── 📝 Exemplos de implementação
│
├── coverage-analysis.json # 📈 Análise de cobertura
│ ├── total: 78% # 📊 Cobertura geral
│ ├── by_file: {...} # 📄 Por arquivo
│ └── gaps: [...] # ⚠️ Arquivos sem cobertura
│
├── COVERAGE-REPORT.md # 📋 Relatório cobertura
│ ├── 🎯 Status vs targets (78% vs 70% ✅)
│ ├── 📉 Gaps críticos identificados
│ └── 💡 Recomendações específicas
│
├── PYRAMID-REPORT.md # 🔺 Pirâmide de testes
│ ├── Unit: 42 testes (70%) ✅
│ ├── Integration: 12 testes (20%) ✅
│ ├── E2E: 6 testes (10%) ✅
│ └── Status: 🟢 SAUDÁVEL
│
├── dashboard.html # 📊 Dashboard interativo
│ ├── 📈 Gráficos de cobertura
│ ├── 🔺 Visualização da pirâmide
│ ├── 📉 Trends históricos
│ └── 🎯 Métricas de qualidade
│
└── SUMMARY.md # 📝 Resumo executivo
├── ✅ 60 testes criados (42+12+6)
├── 📊 78% cobertura (target: 70%)
├── 🎯 Status: APROVADO para release
└── 🔄 Próximos passos recomendados
📊 Exemplo de Relatórios Gerados
📋 TEST-PLAN.md - Preview
# Plano de Testes - MinhaApp
## 📊 Estratégia Recomendada
- **Unit Tests:** 70% (42 testes) - Lógica de negócio
- **Integration:** 20% (12 testes) - APIs + Database
- **E2E Tests:** 10% (6 testes) - Fluxos críticos
## 🎯 Cenários por Domínio
### 🔑 Autenticação (8 cenários)
1. ✅ Login com credenciais válidas
2. ❌ Login com credenciais inválidas
3. 🔄 Recuperação de senha
4. 🚪 Logout e limpeza de sessão
[...]
### 👤 Usuários (12 cenários)
1. ✅ Cadastro novo usuário
2. 📝 Edição de perfil
3. 🗑️ Exclusão de conta
[...]
📊 SUMMARY.md - Preview
# Resumo Executivo - MinhaApp
## 🎯 Status Geral: ✅ APROVADO
### 📈 Métricas de Qualidade
- **Cobertura Total:** 78% (target: 70% ✅)
- **Testes Criados:** 60 (42 unit + 12 integration + 6 e2e)
- **Flaky Rate:** 0% (target: <5% ✅)
- **Tempo CI:** 4.2min (target: <10min ✅)
### 🚀 Pronto para Release
✅ Todos os targets atingidos
✅ Fluxos críticos cobertos
✅ Zero testes flakey
✅ CI/CD configurado
� Antes vs Depois - Transformação do Projeto
❌ ANTES - Projeto sem testes
meu-projeto/
├── src/
│ ├── pages/ # 15 páginas Next.js
│ ├── api/ # 23 endpoints API
│ ├── components/ # 45 componentes
│ └── utils/ # 12 funções utilitárias
├── package.json # Dependências básicas
└── README.md
❌ 0 testes
❌ 0% cobertura
❌ Sem validação de qualidade
❌ Deploy manual arriscado
❌ Bugs em produção
✅ DEPOIS - Projeto com Quality MCP
meu-projeto/
├── src/ # ✅ Código original intocado
│ ├── pages/
│ ├── api/
│ ├── components/
│ └── utils/
├── qa/MeuProjeto/ # 🆕 Estrutura de qualidade completa
│ ├── mcp-settings.json
│ └── tests/
│ ├── unit/ # 🔬 35 testes unitários
│ ├── integration/ # 🔗 15 testes integração
│ ├── e2e/ # 🎭 8 testes E2E
│ └── analyses/ # 📊 Relatórios detalhados
├── package.json # ✅ Scripts de teste adicionados
├── playwright.config.ts # ✅ Config E2E
├── jest.config.js # ✅ Config unit tests
└── README.md # ✅ Documentação atualizada
✅ 58 testes automatizados
✅ 82% cobertura (target: 70%)
✅ CI/CD com gates de qualidade
✅ Deploy seguro com validação
✅ Bugs detectados antes da produção
📊 Impacto em Números
| Métrica | Antes | Depois | Melhoria |
|---|---|---|---|
| Testes | 0 | 58 | +∞ |
| Cobertura | 0% | 82% | +82% |
| Bugs em Prod | ~15/mês | ~2/mês | -87% |
| Tempo Deploy | 45min | 12min | -73% |
| Confiança Deploy | 20% | 95% | +375% |
| Setup Time | ~40h | ~8min | -99.7% |
�🚀 Funcionalidades
- 🧠 Linguagem Natural: Comandos em PT/EN ("analise meu repositório")
- 🚀 Orquestrador One-Shot: Zero-setup, detecta tudo automaticamente
- Análise Automática: Detecta rotas, endpoints, eventos e riscos no seu código
- Geração de Plano: Cria plano de testes estruturado por domínio/produto
- Scaffold Inteligente: Gera estrutura completa de testes Playwright
- Execução com Cobertura: Roda testes com relatórios HTML, JUnit, JSON
- Relatório Executivo: Consolida resultados para aprovação de QA/Release
🏃♂️ Como Começar - Passo a Passo
🎯 Setup Rápido (5 minutos)
1️⃣ Clone e Configure o MCP
# Clone o repositório
git clone https://github.com/jorgsouza/mcp-Quality-CLI
cd mcp-Quality-CLI
# Instale e compile
npm install && npm run build
# Teste se funcionou
node dist/cli.js --help
2️⃣ Configure no seu Cliente MCP
Para Claude Desktop, edite ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"quality": {
"command": "node",
"args": ["/caminho/completo/para/mcp-Quality-CLI/dist/server.js"],
"env": {
"E2E_BASE_URL": "http://localhost:3000"
}
}
}
}
Para Cline (VS Code), edite .vscode/settings.json:
{
"cline.mcpServerConfig": {
"quality": {
"command": "node",
"args": ["/caminho/completo/para/mcp-Quality-CLI/dist/server.js"]
}
}
}
3️⃣ Execute a Mágica ✨
# No terminal do seu projeto:
cd /caminho/do/seu/projeto
# Execute a análise completa
node /caminho/para/mcp-Quality-CLI/dist/cli.js auto --repo . --product "MeuApp"
Ou via Cliente MCP:
{
"tool": "auto",
"params": {
"repo": ".",
"product": "MeuApp",
"mode": "full"
}
}
🎬 Exemplo Prático: Projeto Next.js
# Vamos dizer que você tem um e-commerce Next.js
cd meu-ecommerce-nextjs
# Execute o comando mágico
quality auto --repo . --product "E-commerce"
# ⏱️ Aguarde 3-5 minutos...
# ✅ Pronto! Seu projeto agora tem:
# - 45 testes unitários
# - 18 testes de integração
# - 12 testes E2E
# - 84% de cobertura
# - Dashboard interativo
# - Relatório executivo
🔧 Customização (Opcional)
Depois da primeira execução, você pode ajustar as configurações:
# Edite o arquivo gerado
vim qa/E-commerce/mcp-settings.json
# Ajuste domínios, fluxos críticos, targets, etc.
{
"domains": ["auth", "catalog", "cart", "checkout"],
"critical_flows": ["login", "add_to_cart", "purchase"],
"targets": {
"diff_coverage_min": 85, // Mais rigoroso
"flaky_pct_max": 2 // Menos tolerância
}
}
# Execute novamente para aplicar mudanças
quality auto --repo . --product "E-commerce"
📋 Pré-requisitos
- Node.js 20+ (recomendado: 20.11.0 ou superior)
- npm ou yarn
- Git (para análise de diff coverage)
✅ Verificar Pré-requisitos
node --version # Deve ser v20.x.x+
npm --version # Qualquer versão recente
git --version # Qualquer versão recente
🔧 Instalação Detalhada
Método 1: Desenvolvimento (Recomendado)
# 1. Clone o repositório
git clone https://github.com/jorgsouza/mcp-Quality-CLI.git
cd mcp-Quality-CLI
# 2. Instale dependências
npm install
# 3. Compile TypeScript
npm run build
# 4. Teste a instalação
node dist/cli.js --version
node dist/cli.js --help
# 5. Configure no seu cliente MCP (ver seção "Como Começar")
Método 2: Global (Para uso direto no terminal)
# 1. Clone e instale globalmente
git clone https://github.com/jorgsouza/mcp-Quality-CLI.git
cd mcp-Quality-CLI
npm install && npm run build
npm link
# 2. Agora você pode usar em qualquer lugar
cd /caminho/do/seu/projeto
quality auto --repo . --product "MeuApp"
Método 3: Via NPM (Futuro)
# Em breve estará disponível:
npm install -g quality-mcp # 🚧 Em desenvolvimento
🎮 Uso
Como MCP Server
Configure no seu mcp-settings.json (Claude Desktop, Cline, etc):
{
"mcpServers": {
"quality": {
"command": "node",
"args": ["/path/to/mcp-Quality-CLI/dist/server.js"],
"env": {
"E2E_BASE_URL": "https://staging.example.com",
"E2E_USER": "[email protected]",
"E2E_PASS": "your-password"
}
}
}
}
Como CLI
1. Análise do Repositório
quality analyze \
--repo . \
--product "MyApp" \
--domains "auth,user,search" \
--critical-flows "login,registration,search" \
--targets '{"ci_p95_min":15,"flaky_pct_max":3,"diff_coverage_min":60}' \
--base-url "https://staging.example.com"
Saída: plan/analyze.json com rotas, endpoints, eventos e mapa de riscos.
2. Geração do Plano de Testes
quality plan \
--repo . \
--product "MyApp" \
--base-url "https://staging.example.com" \
--include-examples
Saída: plan/TEST-PLAN.md com plano estruturado e exemplos.
3. Scaffold dos Testes Playwright
quality scaffold \
--repo . \
--plan plan/TEST-PLAN.md \
--out packages/product-e2e
Saída: Estrutura completa em packages/product-e2e/ com:
playwright.config.ts- Testes organizados por domínio
- Fixtures e utilitários
- README com instruções
4. Execução dos Testes
# Configure variáveis de ambiente
export E2E_BASE_URL="https://staging.example.com"
export E2E_USER="[email protected]"
export E2E_PASS="secure-password"
# Execute
quality run \
--repo . \
--e2e packages/product-e2e \
--report reports
Saída: Relatórios em reports/ (HTML, JUnit, JSON).
5. Relatório Consolidado
quality report \
--in reports \
--out SUMMARY.md \
--thresholds '{"flaky_pct_max":3,"diff_coverage_min":60}' \
--ci
Saída: SUMMARY.md pronto para PR/Release.
Pipeline Completo
Execute todas as etapas de uma vez:
quality full \
--repo . \
--product "MyApp" \
--base-url "https://staging.example.com" \
--domains "auth,user,search" \
--critical-flows "login,registration,search" \
--targets '{"ci_p95_min":15,"flaky_pct_max":3,"diff_coverage_min":60}'
🛠️ Tools MCP Disponíveis
1. analyze_codebase
Analisa o repositório para detectar rotas, endpoints, eventos e riscos.
Parâmetros:
{
repo: string; // Caminho do repositório
product: string; // Nome do produto
domains?: string[]; // ex: ["auth","user"]
critical_flows?: string[]; // ex: ["login","registration"]
targets?: {
ci_p95_min?: number;
flaky_pct_max?: number;
diff_coverage_min?: number;
};
base_url?: string;
}
2. generate_test_plan
Gera plano de testes Playwright em Markdown.
Parâmetros:
{
repo: string;
product: string;
base_url: string;
include_examples?: boolean;
out_dir?: string; // default: "plan"
}
3. scaffold_playwright
Cria estrutura de testes Playwright com specs e configurações.
Parâmetros:
{
repo: string;
plan_file: string;
out_dir?: string; // default: "packages/product-e2e"
}
4. run_playwright
Executa testes Playwright com cobertura e relatórios.
Parâmetros:
{
repo: string;
e2e_dir: string;
report_dir?: string; // default: "reports"
headless?: boolean; // default: true
}
5. build_report
Consolida relatórios em Markdown para aprovação de QA.
Parâmetros:
{
in_dir: string;
out_file?: string; // default: "SUMMARY.md"
thresholds?: {
flaky_pct_max?: number;
diff_coverage_min?: number;
};
}
📊 Métricas e Gates
Targets Recomendados
- CI p95: ≤ 15 minutos (percentil 95 do tempo de CI)
- Flaky Rate: ≤ 3% (testes instáveis)
- Diff Coverage: ≥ 60% (cobertura nas mudanças)
Política de Flaky Tests
- Quarentena automática (skip temporário)
- Criar issue para investigação
- SLA de 7 dias para correção
- Se não corrigido em 14 dias, remover o teste
🔄 CI/CD
GitHub Actions
Dois workflows prontos:
1. CI para Pull Requests (.github/workflows/ci.yml)
Executa:
- Análise do código
- Geração de plano
- Scaffold dos testes
- Execução da suite smoke
- Comentário no PR com resultados
2. Nightly Full Suite (.github/workflows/nightly.yml)
Executa:
- Suite completa em 3 browsers (Chromium, Firefox, WebKit)
- Agregação de resultados
- Notificação no Slack em caso de falha
- Criação automática de issues
Variáveis de Ambiente Necessárias
Configure no GitHub Secrets:
E2E_BASE_URL # URL do ambiente de testes
E2E_BASE_URL_STAGING # URL do staging (nightly)
E2E_USER # Usuário de teste
E2E_PASS # Senha de teste
SLACK_WEBHOOK_URL # Webhook do Slack (opcional)
📁 Estrutura do Projeto
mcp-Quality-CLI/
├── src/
│ ├── server.ts # MCP server principal
│ ├── cli.ts # CLI wrapper
│ ├── tools/
│ │ ├── analyze.ts # Análise de código
│ │ ├── plan.ts # Geração de plano
│ │ ├── scaffold.ts # Scaffold de testes
│ │ ├── run.ts # Executor de testes
│ │ └── report.ts # Gerador de relatórios
│ ├── detectors/
│ │ ├── next.ts # Detector de rotas Next.js
│ │ ├── express.ts # Detector de rotas Express/Fastify
│ │ └── events.ts # Detector de eventos
│ └── utils/
│ └── fs.ts # Utilitários de filesystem
├── .github/
│ └── workflows/
│ ├── ci.yml # Workflow de CI
│ └── nightly.yml # Workflow nightly
├── package.json
├── tsconfig.json
└── README.md
🎯 Casos de Uso
1. Novo Projeto
# 1. Instale globalmente
npm install -g quality-mcp
# 2. Execute o pipeline completo
quality full --repo . --product "MyApp" --base-url "http://localhost:3000"
# 3. Revise os arquivos gerados
# 4. Ajuste os testes conforme necessário
# 5. Execute novamente
quality run --repo . --e2e packages/product-e2e
2. Projeto Existente
# 1. Analise o código existente
quality analyze --repo . --product "MyApp"
# 2. Gere o plano
quality plan --repo . --product "MyApp" --base-url "http://localhost:3000"
# 3. Revise o plano (plan/TEST-PLAN.md)
# 4. Ajuste conforme necessário
# 5. Crie os testes
quality scaffold --repo . --plan plan/TEST-PLAN.md
3. CI/CD
# Adicione ao seu workflow
- name: Run E2E Quality Check
run: |
npm install -g quality-mcp
quality full \
--repo . \
--product "${{ github.repository }}" \
--base-url "${{ secrets.E2E_BASE_URL }}"
🤝 Contribuindo
Contribuições são bem-vindas! Por favor:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
❓ FAQ - Perguntas Frequentes
Q: O comando falha com "command not found"
A: Verifique se compilou corretamente:
cd mcp-Quality-CLI
npm run build
node dist/cli.js --help # Deve mostrar ajuda
Q: Não detectou minha linguagem/framework
A: Atualmente suportamos:
- ✅ JavaScript/TypeScript (Node.js, Next.js, React)
- ✅ Go (gin, echo, gorilla/mux)
- ✅ Python (FastAPI, Django, Flask)
- ✅ Java (Spring Boot, Maven, Gradle)
- ✅ C# (.NET Core, ASP.NET)
- ✅ PHP (Laravel, Symfony)
- ✅ Ruby (Rails, Sinatra)
Q: Posso usar em projetos privados/comerciais?
A: Sim! Licença MIT permite uso comercial. Todos os dados ficam locais.
Q: Como personalizar os templates gerados?
A: Edite os arquivos em src/tools/templates/ e recompile:
# Personalize templates
vim src/tools/templates/playwright.config.template.ts
npm run build
Q: Dá para integrar com meu CI/CD?
A: Sim! Exemplos:
GitHub Actions:
- name: Quality Gate
run: |
npx quality-mcp auto --mode run
npx quality-mcp diff-coverage --target-min 80
GitLab CI:
quality_check:
script:
- npm install -g quality-mcp
- quality auto --mode run --repo .
Q: Onde ficam salvos os dados?
A: Tudo fica local no seu projeto em qa/<produto>/. Nada é enviado para servidores externos.
Q: Como desinstalar?
A:
# Se instalou globalmente
npm unlink quality-mcp
# Remover pasta
rm -rf /caminho/para/mcp-Quality-CLI
# Remover do config MCP
# Edite seu claude_desktop_config.json ou settings.json
🚨 Troubleshooting
❌ Erro: "Cannot find module"
# Solução: Reinstale dependências
rm -rf node_modules package-lock.json
npm install
npm run build
❌ Erro: "Permission denied"
# Solução: Ajuste permissões
chmod +x dist/cli.js
# Ou use: node dist/cli.js em vez de ./dist/cli.js
❌ Erro: "Git not found"
# Solução: Instale git ou pule diff coverage
quality auto --skip-run # Pula execução que precisa de git
❌ Testes E2E falhando
# Solução: Verifique variáveis de ambiente
export E2E_BASE_URL="http://localhost:3000"
export E2E_USER="[email protected]"
export E2E_PASS="password123"
# Ou rode sem E2E
quality auto --mode scaffold # Só cria estrutura
🔍 Debug Mode
# Para mais logs detalhados
DEBUG=quality:* quality auto --repo .
🌐 Suporte Multi-Linguagem
O Quality MCP oferece suporte END-TO-END para múltiplas linguagens com adapters nativos!
| Linguagem | Analyze | Coverage | Mutation | Scaffold | Status |
|---|---|---|---|---|---|
| TypeScript | ✅ | ✅ | ✅ | ✅ | 🟢 Completo |
| JavaScript | ✅ | ✅ | ✅ | ✅ | 🟢 Completo |
| Python | ✅ | ✅ | ✅ | ✅ | 🟢 Completo |
| Go | ✅ | ✅ | ✅ | ✅ | 🟢 Completo |
| Java | ✅ | ✅ | ✅ | ✅ | 🟢 Completo |
| Ruby | ⚪ | ⚪ | ⚪ | ⚪ | ⚪ Planejado Q2 2026 |
Legenda
- ✅ Suportado - Funcional e testado
- 🟡 Parcial - Funcional mas não testado extensivamente
- ⚪ Planejado - Em desenvolvimento
Detalhes por Linguagem
TypeScript/JavaScript
- Frameworks: Vitest, Jest, Mocha
- Coverage: Coverage-v8, istanbul/nyc
- Mutation: Stryker
- Formats: LCOV, JSON (Istanbul)
- Status: ✅ Produção
Python
- Frameworks: pytest, unittest
- Coverage: coverage.py, pytest-cov
- Mutation: mutmut
- Formats: Cobertura XML
- Status: ✅ Produção
Go
- Frameworks: go test
- Coverage: go test -cover
- Mutation: go-mutesting
- Formats: coverage.out
- Status: ✅ Produção
Java
- Frameworks: JUnit 5, JUnit 4, TestNG
- Build Tools: Maven, Gradle
- Coverage: JaCoCo
- Mutation: PIT (PITest)
- Formats: JaCoCo XML/CSV/HTML
- Status: ✅ Produção
Setup Rápido por Linguagem
Para instruções detalhadas de setup, veja: SETUP-BY-LANGUAGE.md
TypeScript/JavaScript:
npm install -D vitest @vitest/coverage-v8 @stryker-mutator/core
Python:
pip install pytest pytest-cov mutmut hypothesis
Go:
go install gotest.tools/gotestsum@latest
go install github.com/zimmski/go-mutesting/cmd/go-mutesting@latest
📝 Licença
MIT License - veja o arquivo LICENSE para detalhes.
🔗 Links Úteis
💡 Roadmap
- Suporte a testes de API (REST/GraphQL)
- Integração com Cypress
- Suporte a testes de mutação
- Dashboard web para visualização de métricas
- Integração com Jira/Linear para tracking de flaky tests
- Suporte a múltiplos ambientes (dev, staging, prod)
- Geração de mocks automáticos
📞 Suporte
Para dúvidas ou problemas:
Desenvolvido com ❤️ para melhorar a qualidade do seu software
Установить Quality в Claude Desktop, Claude Code, Cursor
unyly install quality-mcpСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add quality-mcp -- npx -y quality-mcpFAQ
Quality MCP бесплатный?
Да, Quality MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Quality?
Нет, Quality работает без API-ключей и переменных окружения.
Quality — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Quality в Claude Desktop, Claude Code или Cursor?
Открой Quality на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Playwright
Browser automation, scraping, screenshots
автор: MicrosoftPuppeteer
Browser automation and web scraping.
автор: modelcontextprotocolopentabs-dev/opentabs
Plugin-based MCP server + Chrome extension that gives AI agents access to web applications through the user's authenticated browser session. 100+ plugins with a
автор: opentabs-devrobhunter/agentdeals
1,500+ developer infrastructure deals, free tiers, and startup programs across 54 categories. Search deals, compare vendors, plan stacks, and track pricing chan
автор: robhunterCompare Quality with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории browse
