Skip to main content
Glama
README.md
# MCP QA Engineer SDET

Servidor MCP com ferramentas especializadas em QA de software. Conecte em qualquer IDE ou cliente compatível com o Model Context Protocol e tenha acesso a análise de User Stories, estratégia de testes, BDD/Gherkin, testes de contrato (Pact), integração (Testcontainers), performance (k6), segurança (OWASP) e CI/CD.

---

## Pré-requisitos

- [Node.js 18+](https://nodejs.org/)
- npm 9+
- Git

---

## Instalação

```bash
# 1. Clonar ou entrar na pasta
cd mcp-testing

# 2. Instalar dependências
npm install

# 3. Compilar TypeScript
npm run build
```

Após o build, o servidor estará disponível em `dist/index.js`.

Para desenvolvimento sem build:

```bash
npm run dev   # usa tsx — não requer compilação
```

---

## Ferramentas disponíveis (tools)

| Tool | Descrição |
|------|-----------|
| `analyze_user_story` | Análise completa de User Story: decomposição, critérios, cenários por camada, mapa de riscos, dados de teste, checklist |
| `generate_test_strategy` | Estratégia de testes para o sistema: pirâmide adaptada, ferramentas, CI/CD, metas de cobertura, roadmap |
| `create_gherkin_scenarios` | Cenários BDD em Gherkin: happy path, negativos, edge cases, Esquema do Cenário, tabelas de dados |
| `design_contract_tests` | Contratos Pact (CDC): interações, provider states, matchers, versionamento, can-i-deploy |
| `design_integration_tests` | Testes de integração: Testcontainers, WireMock, setup/teardown, concorrência, observabilidade |
| `generate_performance_plan` | Plano k6 completo: smoke/load/stress/spike/soak, thresholds, análise de resultados |
| `security_test_checklist` | Checklist OWASP Top 10 por tipo de feature + headers, SAST/DAST, critérios de aceitação |
| `review_test_code` | Revisão de código de teste: anti-patterns, isolamento, asserções, mocks, cobertura |
| `troubleshoot_flaky_test` | Diagnóstico de flaky tests: hipóteses, passos, correções com código, política de prevenção |
| `generate_ci_pipeline` | Pipeline CI/CD com stages, paralelismo, cache, cobertura mínima, gates de qualidade |
| `quality_checklist` | Checklists por artefato: user story, plano, caso de teste, código, contrato, suíte, bug report |
| `generate_test_data` | Dados de teste sintéticos: válidos, inválidos, boundary, ausentes, PII mascarada, por categoria |
| `design_api_tests` | Testes funcionais, negativos e de segurança (OWASP API Top 10) para um endpoint específico |
| `generate_automation_code` | Scaffold de código de automação com boas práticas (seletores resilientes, waits, isolamento) |
| `optimize_test_suite` | Matriz de decisão para manter/mesclar/remover testes e priorização por risco |
| `self_healing_test_strategy` | Hierarquia de seletores, fallback chain e detecção de drift para automação resiliente |
| `manual_test_artifact_standard` | Define uma pasta e um único arquivo por User Story, com caso de teste, bugs, ajustes e evidências no mesmo documento |

### Padrão de artefatos manuais

Resultados de testes manuais devem ser criados em uma pasta por User Story, nunca na raiz:

```text
qa-artifacts/manual-tests/
  US-001-gerenciar-contatos-financeiros/
    US-001-gerenciar-contatos-financeiros.md
    evidencias/
```

Use o formato `US-001-<slug-da-historia>/US-001-<slug-da-historia>.md`. O arquivo deve conter `## Objetivo do teste`, `## Caso de teste`, `## Bugs encontrados` e `## Ajustes encontrados`. Bugs e ajustes são subseções do mesmo documento, e não arquivos separados. A tool `manual_test_artifact_standard` retorna o caminho, o nome e o template correto para cada nova User Story.

### Mapeamento com categorias de "agentes de IA para QA"

| Categoria | Cobertura no MCP |
|-----------|-------------------|
| AI Test Case Generation | `analyze_user_story`, `create_gherkin_scenarios` |
| AI Test Case Optimization | `optimize_test_suite` |
| AI-Assisted Automation Coding | `generate_automation_code`, `review_test_code` |
| AI Test Data Generation | `generate_test_data` |
| AI API Testing | `design_api_tests`, `design_contract_tests` |
| AI Test Failure Analysis | `troubleshoot_flaky_test` |
| QA Workflow Automation | `generate_ci_pipeline`, `generate_test_strategy` |
| AI Risk-Based Testing | `analyze_user_story` (mapa de riscos), `generate_test_strategy` |
| Self-Healing Test Automation | `self_healing_test_strategy` |
| Autonomous QA Agent | prompt `autonomous-qa-agent` (orquestra todas as tools acima em sequência) |

## Recursos disponíveis (resources)

| URI | Descrição |
|-----|-----------|
| `qa://pyramid` | Pirâmide de testes: distribuição, objetivos, anti-patterns |
| `qa://tool-matrix` | Matriz de seleção de ferramentas por linguagem e necessidade |
| `qa://gherkin-template` | Template completo de Feature File BDD |
| `qa://k6-templates` | Scripts k6 prontos: smoke, load, stress, spike, soak |
| `qa://glossary` | Glossário de termos QA/SDET |

## Prompts disponíveis

| Prompt | Descrição |
|--------|-----------|
| `analyze-story` | Sessão de análise de User Story |
| `start-tdd` | Sessão TDD guiada (Red → Green → Refactor) |
| `write-test-plan` | Elaboração de plano de testes |
| `debug-failure` | Diagnóstico de falha em teste ou ambiente |
| `autonomous-qa-agent` | Orquestra todas as tools em sequência: história → estratégia → dados → API → automação → CI |

---

## Configuração por IDE

### VS Code (GitHub Copilot Agent)

Crie ou edite `.vscode/mcp.json` na raiz do seu workspace:

```json
{
  "servers": {
    "qa-sdet": {
      "type": "stdio",
      "command": "node",
      "args": ["${workspaceFolder}/mcp-testing/dist/index.js"]
    }
  }
}
```

> Requer GitHub Copilot com suporte a MCP (VS Code 1.99+). Ative em **Settings → GitHub Copilot → MCP**.

Alternativa via `settings.json` do usuário (escopo global):

```json
{
  "mcp": {
    "servers": {
      "qa-sdet": {
        "type": "stdio",
        "command": "node",
        "args": ["C:/caminho/absoluto/mcp-testing/dist/index.js"]
      }
    }
  }
}
```

---

### Cursor

Crie `.cursor/mcp.json` na raiz do projeto:

```json
{
  "mcpServers": {
    "qa-sdet": {
      "command": "node",
      "args": ["./mcp-testing/dist/index.js"]
    }
  }
}
```

Ou configure globalmente em **Cursor → Settings → MCP** via interface gráfica.

---

### Claude Desktop

**Windows** — edite `%APPDATA%\Claude\claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "qa-sdet": {
      "command": "node",
      "args": ["C:\\Users\\SeuUsuario\\caminho\\mcp-testing\\dist\\index.js"]
    }
  }
}
```

**macOS** — edite `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "qa-sdet": {
      "command": "node",
      "args": ["/Users/seuusuario/caminho/mcp-testing/dist/index.js"]
    }
  }
}
```

**Linux** — edite `~/.config/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "qa-sdet": {
      "command": "node",
      "args": ["/home/seuusuario/caminho/mcp-testing/dist/index.js"]
    }
  }
}
```

> Reinicie o Claude Desktop após editar o arquivo.

---

### Windsurf (Codeium)

Edite `~/.codeium/windsurf/mcp_config.json`:

```json
{
  "mcpServers": {
    "qa-sdet": {
      "command": "node",
      "args": ["/caminho/absoluto/mcp-testing/dist/index.js"]
    }
  }
}
```

---

### Continue.dev

Edite `~/.continue/config.json` (ou `config.yaml`):

```json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "node",
          "args": ["/caminho/absoluto/mcp-testing/dist/index.js"]
        }
      }
    ]
  }
}
```

---

### Zed

Edite o arquivo de configuração do Zed (`~/.config/zed/settings.json`):

```json
{
  "context_servers": {
    "qa-sdet": {
      "command": {
        "path": "node",
        "args": ["/caminho/absoluto/mcp-testing/dist/index.js"]
      }
    }
  }
}
```

---

### Qualquer cliente MCP (genérico)

O servidor usa transporte **stdio** padrão. Configure com:

```json
{
  "command": "node",
  "args": ["/caminho/absoluto/para/mcp-testing/dist/index.js"],
  "transport": "stdio"
}
```

---

## Exemplos de uso

### No chat do IDE

```
Analise esta User Story:
"Como usuário, quero resetar minha senha para recuperar acesso à conta"
```

O assistente chamará `analyze_user_story` automaticamente e retornará a análise estruturada.

```
Crie cenários Gherkin para o fluxo de checkout com os critérios:
- Usuário com carrinho não vazio pode finalizar compra
- Pagamento com cartão inválido é rejeitado com mensagem
- Frete é calculado pelo CEP do endereço de entrega
```

```
Gere um plano de performance para POST /api/orders com SLA p95 < 400ms
```

```
Revise este código de teste:
[colar o código]
```

### Usando os prompts pré-construídos

Em IDEs que suportam prompts MCP (como Claude Desktop e Cursor):

- `/analyze-story` — análise de User Story
- `/start-tdd` — sessão TDD
- `/write-test-plan` — plano de testes
- `/debug-failure` — diagnóstico de falha

---

## Verificar se o servidor está funcionando

```bash
# Executar diretamente e verificar output de inicialização
node dist/index.js
# Deve exibir em stderr: "MCP QA SDET Server v2.0.0 pronto."

# Ou via npm
npm start
```

---

## Desenvolvimento

```bash
# Modo desenvolvimento (sem compilação)
npm run dev

# Compilar para produção
npm run build

# Watch mode (recompila ao salvar)
npx tsc --watch
```

---

## Troubleshooting

### "Cannot find module" ao executar

Execute `npm run build` antes de `npm start`. O diretório `dist/` precisa existir.

### Servidor não aparece no IDE

1. Verifique o caminho absoluto no arquivo de configuração
2. Confirme que Node.js 18+ está instalado: `node --version`
3. Confirme que o build foi gerado: `ls dist/index.js`
4. Reinicie o IDE após alterar a configuração

### Erros de TypeScript no build

```bash
npx tsc --noEmit   # verificar erros sem gerar arquivos
```

### Timeout ao conectar

Adicione `timeout` na configuração do cliente:

```json
{
  "command": "node",
  "args": ["/caminho/dist/index.js"],
  "timeout": 10000
}
```

---

## Estrutura do projeto

```
mcp-testing/
├── src/
│   └── index.ts          # Servidor MCP completo
├── dist/                 # Gerado pelo build (não versionar)
│   └── index.js
├── package.json
├── tsconfig.json
├── SYSTEM_PROMPT.md      # Prompt de sistema QA SDET Senior
└── README.md
```

---

## Tecnologias

- [Model Context Protocol SDK](https://github.com/modelcontextprotocol/typescript-sdk)
- TypeScript 5
- Node.js 18+

---

Desenvolvido por **Michael Maia** — QA Engineer SDET  
[LinkedIn](https://www.linkedin.com/in/qamichael/) · [GitHub](https://github.com/qamichaelmaia) · [QA Playground](https://playground-for-qa.vercel.app/)

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation4/5

Each tool has a clearly defined primary purpose, spanning story analysis, test design, strategy, performance, security, CI, and code review. A few tools overlap conceptually—analyze_user_story and quality_checklist both cover user story criteria, and generate_test_strategy mentions CI/CD while generate_ci_pipeline produces actual config—but descriptions are specific enough to guide an agent to the right tool.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern like analyze_user_story, generate_test_strategy, and review_test_code. However, security_test_checklist and quality_checklist are noun phrases without a clear verb, which breaks the pattern slightly. Overall naming remains predictable and readable.

Tool Count5/5

With 11 tools, the server is well-scoped for a QA/SDET engineering domain. Each tool covers a distinct part of the QA lifecycle, from story analysis through test design, review, and CI/CD, without unnecessary redundancy or bloat.

Completeness4/5

The toolkit covers a broad QA workflow: strategy, BDD scenarios, contract/inetegration/performance/security testing, code review, flaky diagnosis, CI/CD, and checklists. Minor gaps exist—such as no dedicated unit test generation or accessibility testing—but these can be worked around using the existing tools. no critical dead ends are obvious.

Maintenance

ActivityMaintained
ResponsivenessNo issues