Quality MCP
by jorgsouza
README.md
# 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:
```bash
# 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:
```bash
# 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
```bash
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:
```bash
# 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:**
```yaml
- name: Apply Quality Gates
run: npx quality-cli release-quality-gate
- name: Fail if blocked
if: failure()
run: exit 1
```
**GitLab CI:**
```yaml
quality_gates:
script:
- npx quality-cli release-quality-gate
allow_failure:
exit_codes: 2 # Warnings OK
```
**Jenkins:**
```groovy
def exitCode = sh(script: 'npx quality-cli release-quality-gate', returnStatus: true)
if (exitCode == 1) { error('BLOCKED') }
```
đ **[Guia Completo de Quality Gates](docs/QUALITY-GATES-GUIDE.md)** | **[Exemplos CI/CD](docs/ci-cd/)**
---
**âš Novidade v0.3.1:** Retorno estruturado!
O comando `auto` agora retorna um objeto organizado com todos os paths gerados:
```json
{
"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:
```json
// 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:**
```javascript
// đ 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:**
```bash
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:
```json
{
"tool": "auto",
"params": {
"mode": "full" // ou: analyze, plan, scaffold, run
}
}
```
**Modos disponĂveis e o que cada um faz:**
#### đ **Mode: `analyze`**
*Tempo: ~30 segundos*
```bash
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*
```bash
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*
```bash
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*
```bash
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*
```bash
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)**
```bash
# 1. AnĂĄlise completa automĂĄtica
quality auto --repo . --product "MinhaApp"
# Resultado: 0 â 30+ testes em 5 minutos
```
#### đ **Projeto Existente (jĂĄ tem alguns testes)**
```bash
# 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**
```bash
# 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**
```bash
# 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
```markdown
# 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
```markdown
# 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**
```bash
# 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`:
```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`:
```json
{
"cline.mcpServerConfig": {
"quality": {
"command": "node",
"args": ["/caminho/completo/para/mcp-Quality-CLI/dist/server.js"]
}
}
}
```
#### 3ïžâŁ **Execute a MĂĄgica** âš
```bash
# 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:**
```json
{
"tool": "auto",
"params": {
"repo": ".",
"product": "MeuApp",
"mode": "full"
}
}
```
### đŹ **Exemplo PrĂĄtico: Projeto Next.js**
```bash
# 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:
```bash
# 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**
```bash
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)**
```bash
# 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)**
```bash
# 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)**
```bash
# 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):
```json
{
"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
```bash
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
```bash
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
```bash
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
```bash
# 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
```bash
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:
```bash
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**:
```typescript
{
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**:
```typescript
{
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**:
```typescript
{
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**:
```typescript
{
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**:
```typescript
{
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:
```bash
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
```bash
# 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
```bash
# 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
```yaml
# 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:
```bash
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:
```bash
# 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:**
```yaml
- name: Quality Gate
run: |
npx quality-mcp auto --mode run
npx quality-mcp diff-coverage --target-min 80
```
**GitLab CI:**
```yaml
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:**
```bash
# 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"**
```bash
# Solução: Reinstale dependĂȘncias
rm -rf node_modules package-lock.json
npm install
npm run build
```
### **â Erro: "Permission denied"**
```bash
# 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"**
```bash
# Solução: Instale git ou pule diff coverage
quality auto --skip-run # Pula execução que precisa de git
```
### **â Testes E2E falhando**
```bash
# 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**
```bash
# 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](docs/SETUP-BY-LANGUAGE.md)
**TypeScript/JavaScript:**
```bash
npm install -D vitest @vitest/coverage-v8 @stryker-mutator/core
```
**Python:**
```bash
pip install pytest pytest-cov mutmut hypothesis
```
**Go:**
```bash
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](LICENSE) para detalhes.
## đ Links Ăteis
- [Playwright Documentation](https://playwright.dev)
- [Model Context Protocol](https://modelcontextprotocol.io)
- [GitHub Actions](https://docs.github.com/en/actions)
## đĄ 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](https://github.com/seu-usuario/mcp-Quality-CLI/issues)
2. Entre em contato via [email](mailto:seu-email@example.com)
---
**Desenvolvido com â€ïž para melhorar a qualidade do seu software**
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo recent community issues