Quality MCP

Quality MCP

Automates repository analysis, test planning, and generation of end-to-end tests with Playwright, acting as an intelligent quality assistant.

Category
Visit Server

README

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

🚩 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.

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

  1. Abra uma issue
  2. Entre em contato via email

Desenvolvido com ❀ para melhorar a qualidade do seu software

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured