Skip to main content
Glama

Quality MCP 🎯

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:

  1. ⏰ Manualmente analisar todas as rotas e endpoints

  2. ⏰ Manualmente planejar quais testes criar

  3. ⏰ Manualmente estruturar os arquivos de teste

  4. ⏰ Manualmente configurar Playwright, Jest, etc.

  5. ⏰ 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

Related MCP server: Limetest MCP Server

🚩 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.json com 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.md com 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:

  1. Detecta o repositĂłrio (busca por .git ou package.json)

  2. Infere o produto do package.json (ou usa nome da pasta)

  3. Cria qa/<product>/mcp-settings.json (se nĂŁo existir)

  4. Analisa cĂłdigo (endpoints, eventos, testes existentes)

  5. Recomenda estratégia (% unit/integration/e2e ideal)

  6. Gera plano de testes estruturado

  7. Cria scaffolds (unit, integration, e2e)

  8. Executa testes com cobertura

  9. Calcula cobertura total + diff vs branch base

  10. 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": "test@example.com",
        "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="test@example.com"
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

  1. Quarentena automĂĄtica (skip temporĂĄrio)

  2. Criar issue para investigação

  3. SLA de 7 dias para correção

  4. 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:

  1. Fork o projeto

  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)

  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')

  4. Push para a branch (git push origin feature/AmazingFeature)

  5. 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="test@example.com" 
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.

💡 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:

  1. Abra uma issue

  2. Entre em contato via email


Desenvolvido com ❀ para melhorar a qualidade do seu software

Related MCP Connectors

Related MCP Servers