API Tester
Este servidor MCP aceita documentos swagger/postman como entrada. Em seguida, gera cenários de teste de API e carga, executa os testes e gera o relatório de execução.
Documentação
Servidor MCP API Tester
Um servidor abrangente do Model Context Protocol (MCP) para engenheiros de QA/SDET que fornece recursos de teste de API com suporte a Swagger/OpenAPI e coleções do Postman.
🎉 Agora disponível no NPM! Instale com
npx @kirti676/api-tester-mcp@latest
🆕 Novidades
- ✅ Rastreamento de Progresso Aprimorado - Progresso em tempo real com percentuais de conclusão e ETA
- ✅ Barras de Progresso Visuais - Barras de progresso ASCII com notificações de marcos
- ✅ Métricas de Desempenho - Cálculos de throughput e resumos de execução
- ✅ Publicado no NPM - Instale instantaneamente com NPX
- ✅ Integração com VS Code - Botões de instalação com um clique
- ✅ Configuração Simplificada - Sem necessidade de instalação manual do Python
- ✅ Multiplataforma - Funciona em Windows, macOS e Linux
- ✅ Atualizações Automáticas - Sempre obtenha a versão mais recente com
@latest
🚀 Primeiros Passos
📦 Instalação
O servidor MCP API Tester pode ser usado diretamente com npx sem qualquer instalação:
npx @kirti676/api-tester-mcp@latest
⚡ Instalação Rápida:
🤖 Claude Desktop
Siga o guia de instalação do MCP, use a configuração padrão abaixo:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
🔗 Outros Clientes MCP
A configuração padrão funciona com a maioria dos clientes MCP:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
🖥️ Clientes Suportados:
- 🤖 Claude Desktop
- 💻 VS Code com extensão MCP
- ⚡ Cursor
- 🌊 Windsurf
- 🪿 Goose
- 🔧 Qualquer outro cliente compatível com MCP
🐍 Instalação com Python (Alternativa)
pip install api-tester-mcp
💻 A partir do Código Fonte
git clone https://github.com/kirti676/api_tester_mcp.git
cd api_tester_mcp
npm install
⚡ Início Rápido
Experimente o servidor MCP API Tester imediatamente:
# Run the server
npx @kirti676/api-tester-mcp@latest
# Check version
npx @kirti676/api-tester-mcp@latest --version
# Get help
npx @kirti676/api-tester-mcp@latest --help
Para clientes MCP como Claude Desktop, use esta configuração:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
✨ Recursos
- 📥 Suporte a Entrada: Documentos OpenAPI/Swagger, coleções do Postman e esquemas GraphQL
- 🔄 Geração de Testes: Geração automática de cenários de teste de API e carga
- 🌐 Suporte Multilíngue: Gere testes em TypeScript/Playwright, JavaScript/Jest, Python/pytest e mais
- ⚡ Execução de Testes: Execute testes gerados com relatórios detalhados
- 🔐 Detecção Inteligente de Autenticação: Análise automática de variáveis de ambiente e orientação de configuração
- 🔐 Autenticação: Suporte a token Bearer e chave de API via
set_env_vars - 📊 Relatórios HTML: Relatórios bonitos e acessíveis via recursos MCP
- 📈 Progresso em Tempo Real: Atualizações ao vivo com barras de progresso e percentuais de conclusão
- ⏱️ Cálculos de ETA: Tempo estimado para conclusão de todas as operações
- 🎯 Rastreamento de Marcos: Notificações especiais em marcos importantes de progresso (25%, 50%, 75%, etc.)
- 📊 Métricas de Desempenho: Cálculos de throughput e resumos de execução
- ✅ Validação de Esquema: Geração de corpo de requisição a partir de exemplos de esquema
- 🎯 Asserções: Asserções de código de status por endpoint (2xx, 4xx, 5xx)
- 📦 Geração de Projetos: Estrutura completa de projetos com dependências e configuração
🌐 Geração de Testes Multilíngue
O MCP API Tester agora suporta a geração de código de teste em vários idiomas de programação e frameworks de teste:
🔧 Combinações de Idioma/Framework Suportadas
| Idioma | Framework | Descrição | Caso de Uso |
|---|---|---|---|
| 📘 TypeScript | 🎭 Playwright | Testes E2E modernos com excelente suporte a API | 🏢 Aplicações web empresariais |
| 📘 TypeScript | 🚀 Supertest | Testes de API focados em Express.js | 🟢 Serviços backend Node.js |
| 📙 JavaScript | 🃏 Jest | Framework de teste popular com bom ecossistema | 🔧 Testes de API gerais |
| 📙 JavaScript | 🌲 Cypress | Testes E2E com ótima experiência de desenvolvedor | 🌐 Aplicações full-stack |
| 🐍 Python | 🧪 pytest | Testes abrangentes com fixtures e plugins | 📊 APIs com muitos dados e serviços de ML |
| 🐍 Python | 📡 requests | Testes HTTP simples para validação rápida | ⚡ Prototipagem rápida e scripts |
🎯 Fluxo de Trabalho de Seleção de Idioma
// 1. Get available languages and frameworks
const languages = await mcp.call("get_supported_languages");
// 2. Choose your preferred combination
await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./path/to/your/api-spec.json",
preferred_language: "typescript", // python, typescript, javascript
preferred_framework: "playwright" // varies by language
});
// 3. Generate test cases with code
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
// 4. Get complete project setup
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
📁 Estrutura de Projeto Gerada
A ferramenta generate_project_files cria um projeto completo e pronto para execução:
📘 TypeScript + Playwright:
my-api-tests/
├── 📦 package.json # Dependencies & scripts
├── ⚙️ playwright.config.ts # Playwright configuration
├── 📂 tests/
│ └── 🧪 api.spec.ts # Generated test code
└── 📖 README.md # Setup instructions
🐍 Python + pytest:
my-api-tests/
├── 📋 requirements.txt # Python dependencies
├── ⚙️ pytest.ini # pytest configuration
├── 📂 tests/
│ └── 🧪 test_api.py # Generated test code
└── 📖 README.md # Setup instructions
📙 JavaScript + Jest:
my-api-tests/
├── 📦 package.json # Dependencies & scripts
├── ⚙️ jest.config.js # Jest configuration
├── 📂 tests/
│ └── 🧪 api.test.js # Generated test code
└── 📖 README.md # Setup instructions
🎯 Recursos Específicos do Framework
- 🎭 Playwright: Automação de navegador, execução paralela, relatórios detalhados
- 🃏 Jest: Testes de snapshot, mocks, modo de observação para desenvolvimento
- 🧪 pytest: Fixtures, testes parametrizados, ecossistema extenso de plugins
- 🌲 Cypress: Depuração interativa, depuração com viagem no tempo, testes em navegador real
- 🚀 Supertest: Integração com Express.js, testes de middleware
- 📡 requests: Chamadas de API simples, gerenciamento de sessão, auxiliares de autenticação
📈 Rastreamento de Progresso
O MCP API Tester inclui rastreamento abrangente de progresso para todas as operações:
📊 Indicadores Visuais de Progresso
🎯 API Test Execution: [██████████░░░░░░░░░░] 50.0% (5/10) | ETA: 2.5s - GET /api/users ✅
🔥 Recursos:
- 📊 Barras de Progresso: Barras de progresso ASCII com indicadores preenchidos/vazios
- 📈 Percentuais de Conclusão: Percentual de conclusão em tempo real
- ⏰ Cálculos de ETA: Tempo estimado para conclusão com base no desempenho atual
- 🎯 Notificações de Marcos: Destaque especial em pontos-chave de progresso
- ⚡ Métricas de Desempenho: Estatísticas de throughput e tempo
- 📋 Contexto da Operação: Informações detalhadas sobre a etapa atual em execução
✅ Disponível para:
- 🎬 Geração de cenários
- 🧪 Geração de casos de teste
- 🚀 Execução de testes de API
- ⚡ Execução de testes de carga
- 🔄 Todas as operações de longa duração
🛠️ Ferramentas MCP
O servidor fornece 11 ferramentas MCP abrangentes com especificações detalhadas de parâmetros:
1. 📥 ingest_spec - Carregar Especificações de API
Carregue OpenAPI/Swagger, coleções do Postman ou esquemas GraphQL com preferências de idioma/framework
{
"spec_type": "openapi", // openapi, swagger, postman, graphql (optional, auto-detected)
"file_path": "./api-spec.json", // Path to JSON, YAML, or GraphQL schema file (required)
"preferred_language": "python", // python, typescript, javascript (optional, default: python)
"preferred_framework": "requests" // pytest, requests, playwright, jest, cypress, supertest (optional, default: requests)
}
2. 🔧 set_env_vars - Configurar Autenticação e Ambiente
Defina variáveis de ambiente com validação automática e orientação
{
"variables": {}, // Dictionary of custom environment variables (optional)
"baseUrl": null, // API base URL (optional)
"auth_bearer": null, // Bearer/JWT token (optional)
"auth_apikey": null, // API key (optional)
"auth_basic": null, // Base64 encoded credentials (optional)
"auth_username": null, // Username for basic auth (optional)
"auth_password": null // Password for basic auth (optional)
}
3. 🎬 generate_scenarios - Criar Cenários de Teste
Gere cenários de teste a partir de especificações ingeridas
{
"include_negative_tests": true, // Generate failure scenarios (default: true)
"include_edge_cases": true // Generate boundary conditions (default: true)
}
4. 🧪 generate_test_cases - Converter em Testes Executáveis
Converta cenários em casos de teste executáveis no idioma/framework preferido
{
"scenario_ids": null // Array of scenario IDs or null for all (optional)
}
5. 🚀 run_api_tests - Executar Testes de API
Execute testes de API com resultados detalhados e relatórios
{
"test_case_ids": null, // Array of test case IDs or null for all (optional)
"max_concurrent": 10 // Number of concurrent requests 1-50 (default: 10)
}
6. ⚡ run_load_tests - Executar Testes de Desempenho
Execute testes de carga/desempenho com parâmetros configuráveis
{
"test_case_ids": null, // Array of test case IDs or null for all (optional)
"duration": 60, // Test duration in seconds (default: 60)
"users": 10, // Number of concurrent virtual users (default: 10)
"ramp_up": 10 // Ramp up time in seconds (default: 10)
}
7. 🌐 get_supported_languages - Listar Opções de Idioma/Framework
Obtenha a lista de idiomas de programação e frameworks de teste suportados
// No parameters required
{}
8. 📦 generate_project_files - Gerar Projetos Completos
Gere estrutura completa de projetos com dependências e configuração
{
"project_name": null, // Project folder name (optional, auto-generated if null)
"include_examples": true // Include example test files (default: true)
}
9. 📁 get_workspace_info - Informações do Workspace
Obtenha informações sobre o diretório do workspace e locais de geração de arquivos
// No parameters required
{}
10. 🔍 debug_file_system - Diagnóstico do Sistema de Arquivos
Obtenha informações abrangentes do workspace e diagnóstico do sistema de arquivos
// No parameters required
{}
11. 📊 get_session_status - Status da Sessão e Progresso
Recupere informações atuais da sessão com detalhes de progresso
// No parameters required
{}
📚 Recursos MCP
file://reports- Liste todos os relatórios de teste disponíveisfile://reports/{report_id}- Acesse relatórios de teste HTML individuais
💡 Prompts MCP
create_api_test_plan- Gere planos abrangentes de teste de APIanalyze_test_failures- Analise falhas de teste e forneça recomendações
🔍 Análise Inteligente de Variáveis de Ambiente
O MCP API Tester agora analisa automaticamente suas especificações de API para detectar variáveis de ambiente necessárias e fornece orientação útil de configuração:
🎯 Detecção Automática
- 🔐 Esquemas de Autenticação: Tokens Bearer, chaves de API, autenticação básica, OAuth2
- 🌐 URLs Base: Extraídas de servidores/hosts da especificação
- 🔗 Variáveis de Template: Variáveis de coleção do Postman como
{{baseUrl}},{{authToken}} - 📍 Parâmetros de Caminho: Valores dinâmicos em caminhos como
/users/{userId}
💡 Sugestões Inteligentes
// 1. Ingest specification - automatic analysis included
const result = await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./api-specification.json"
});
// Check the setup message for immediate guidance
console.log(result.setup_message);
// "⚠️ 2 required environment variable(s) detected..."
// 2. Get detailed setup instructions
const suggestions = await mcp.call("get_env_var_suggestions");
console.log(suggestions.setup_instructions);
// Provides copy-paste ready configuration examples
🎯 Chaves de Parâmetros Padrão
Todas as ferramentas MCP agora fornecem chaves de parâmetros padrão úteis para orientar os usuários sobre quais valores podem definir:
🔧 Variáveis de Ambiente (set_env_vars)
🔑 TODOS OS PARÂMETROS SÃO OPCIONAIS - Forneça apenas o que precisar:
// Option 1: Just the base URL
await mcp.call("set_env_vars", {
baseUrl: "https://api.example.com/v1"
});
// Option 2: Just authentication
await mcp.call("set_env_vars", {
auth_bearer: "your-jwt-token-here"
});
// Option 3: Multiple parameters
await mcp.call("set_env_vars", {
baseUrl: "https://api.example.com/v1",
auth_bearer: "your-jwt-token",
auth_apikey: "your-api-key"
});
// Option 4: Using variables dict for custom values
await mcp.call("set_env_vars", {
variables: {
"baseUrl": "https://api.example.com/v1",
"custom_header": "custom-value"
}
});
🌐 Seleção de Idioma e Framework
Valores padrão ajudam você a entender as opções disponíveis:
// Ingest with defaults shown
await mcp.call("ingest_spec", {
spec_type: "openapi", // openapi, swagger, postman
file_path: "./api-spec.json", // Path to JSON or YAML specification file
preferred_language: "python", // python, typescript, javascript
preferred_framework: "requests" // pytest, requests, playwright, jest, cypress, supertest
});
// Project generation with defaults
await mcp.call("generate_project_files", {
language: "python", // python, typescript, javascript
framework: "requests", // Framework matching the language
project_name: "api-tests", // Project folder name
include_examples: true // Include example test files
});
⚡ Parâmetros de Execução de Testes
Padrões claros para ajuste de desempenho:
// API tests with concurrency control
await mcp.call("run_api_tests", {
test_case_ids: null, // ["test_1", "test_2"] or null for all
max_concurrent: 10 // Number of concurrent requests (1-50)
});
// Load tests with performance parameters
await mcp.call("run_load_tests", {
test_case_ids: null, // ["test_1", "test_2"] or null for all
duration: 60, // Test duration in seconds
users: 10, // Number of concurrent virtual users
ramp_up: 10 // Ramp up time in seconds
});
🔧 Exemplo de Configuração
// NEW: Check supported languages and frameworks
const languages = await mcp.call("get_supported_languages");
console.log(languages.supported_combinations);
// Ingest specification with language preferences
await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./openapi-specification.json",
preferred_language: "typescript",
preferred_framework: "playwright"
});
// Set environment variables for authentication
await mcp.call("set_env_vars", {
variables: {
"baseUrl": "https://api.example.com",
"auth_bearer": "your-bearer-token",
"auth_apikey": "your-api-key"
}
});
// Generate test scenarios
await mcp.call("generate_scenarios", {
include_negative_tests: true,
include_edge_cases: true
});
// Generate test cases in TypeScript/Playwright
await mcp.call("generate_test_cases", {
language: "typescript",
framework: "playwright"
});
// Generate complete project files
await mcp.call("generate_project_files", {
language: "typescript",
framework: "playwright",
project_name: "my-api-tests",
include_examples: true
});
// Run API tests (still works with existing execution engine)
await mcp.call("run_api_tests", {
max_concurrent: 5
});
🚀 Exemplo Completo de Fluxo de Trabalho
Aqui está um exemplo completo de teste da API Petstore:
# 1. Start the MCP server
npx @kirti676/api-tester-mcp@latest
Depois, no seu cliente MCP (como Claude Desktop):
// 1. Load the Petstore OpenAPI spec
await mcp.call("ingest_spec", {
spec_type: "openapi",
file_path: "./examples/petstore_openapi.json"
});
// 2. Set environment variables
await mcp.call("set_env_vars", {
pairs: {
"baseUrl": "https://petstore.swagger.io/v2",
"auth_apikey": "special-key"
}
});
// 3. Generate test cases
const tests = await mcp.call("get_generated_tests");
// 4. Run API tests
const result = await mcp.call("run_api_tests");
// 5. View results in HTML report
const reports = await mcp.call("list_resources", {
uri: "file://reports"
});
📖 Exemplos de Uso
🔄 Fluxo de Trabalho Básico de Teste de API
-
📥 Ingerir Especificação de API
{ "tool": "ingest_spec", "params": { "spec_type": "openapi", "content": "{ ... your OpenAPI spec ... }" } } -
🔐 Configurar Autenticação
{ "tool": "set_env_vars", "params": { "variables": { "auth_bearer": "your-token", "baseUrl": "https://api.example.com" } } } -
🚀 Gerar e Executar Testes
{ "tool": "generate_scenarios", "params": { "include_negative_tests": true } } -
📊 Visualizar Resultados
- 📄 Acesse relatórios HTML via recursos MCP
- 📈 Obtenha status da sessão e estatísticas
🚀 Fluxo de Trabalho de Teste de API GraphQL
-
📥 Ingerir Esquema GraphQL
{ "tool": "ingest_spec", "params": { "spec_type": "graphql", "file_path": "./schema.graphql" } } -
🔐 Configurar Endpoint GraphQL
{ "tool": "set_env_vars", "params": { "graphqlEndpoint": "https://api.example.com/graphql", "auth_bearer": "your-jwt-token" } } -
🧪 Gerar Testes GraphQL
{ "tool": "generate_test_cases", "params": { "preferred_language": "python", "preferred_framework": "pytest" } } -
📊 Executar Testes GraphQL
{ "tool": "run_api_tests", "params": { "max_concurrent": 5 } }
⚡ Teste de Carga
{
"tool": "run_load_tests",
"params": {
"users": 10,
"duration": 60,
"ramp_up": 10
}
}
🔍 Recursos de Geração de Testes
- ✅ Testes Positivos: Requisições válidas com respostas 2xx esperadas
- ❌ Testes Negativos: Autenticação inválida (401), métodos errados (405)
- 🎯 Casos de Borda: Payloads grandes, condições de limite
- 🏗️ Corpos Baseados em Esquema: Geração automática de corpo de requisição a partir de esquemas OpenAPI
- 🔍 Asserções Abrangentes: Códigos de status, tempos de resposta, validação de conteúdo
📊 Relatórios HTML
Os relatórios gerados incluem:
- 📈 Resumo de execução de testes com estatísticas de aprovação/reprovação
- ⏱️ Resultados detalhados de testes com informações de tempo
- 🔍 Detalhamento de asserções e detalhes de erros
- 👁️ Pré-visualizações de resposta e informações de depuração
- 📱 Design responsivo compatível com dispositivos móveis
🔒 Suporte a Autenticação
- 🎫 Tokens Bearer: Variável de ambiente
auth_bearer - 🔑 Chaves de API: Variável de ambiente
auth_apikey(enviada como cabeçalho X-API-Key) - 👤 Autenticação Básica: Variável de ambiente
auth_basic
🔧 Requisitos
- 🐍 Python: 3.8 ou superior
- 🟢 Node.js: 14 ou superior (para instalação via npm)
📦 Dependências
🐍 Dependências Python
- 🚀 fastmcp>=0.2.0
- 📊 pydantic>=2.0.0
- 🌐 requests>=2.28.0
- ✅ jsonschema>=4.0.0
- 📝 pyyaml>=6.0
- 🎨 jinja2>=3.1.0
- ⚡ aiohttp>=3.8.0
- 🎭 faker>=19.0.0
🟢 Dependências Node.js
- ✨ Nenhuma (pacote autocontido)
🔧 Solução de Problemas
❗ Problemas Comuns
📦 Comando NPX Não Funcionando
# If npx command fails, try:
npm install -g @kirti676/api-tester-mcp@latest
# Or run directly:
node ./node_modules/@kirti676/api-tester-mcp/cli.js
🐍 Python Não Encontrado
# Make sure Python 3.8+ is installed and in PATH
python --version
# Install Python dependencies manually if needed:
pip install fastmcp>=0.2.0 pydantic>=2.0.0 requests>=2.28.0
🔗 Problemas de Conexão com Cliente MCP
- ✅ Certifique-se de que o servidor MCP está rodando no transporte stdio (padrão)
- 🔄 Verifique se o seu cliente MCP suporta a versão mais recente do protocolo MCP
- 📝 Verifique se a sintaxe JSON da configuração está correta
🆘 Obtendo Ajuda
- 📖 Verifique o diretório de Exemplos para configurações funcionais
- 🔍 Execute com o sinalizador
--verbosepara registro detalhado - 🐛 Reporte problemas em GitHub Issues
🤝 Contribuindo
- Faça um fork do repositório
- Crie sua branch de recurso (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
📄 Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para detalhes.
🐛 Problemas e Suporte
- Pacote NPM: @kirti676/api-tester-mcp
- Reporte bugs: GitHub Issues
📈 Roadmap
- Geração de Testes Multi-Linguagem - Suporte a TypeScript/Playwright, JavaScript/Jest, Python/pytest ✨ NOVO!
- Geração Completa de Projetos - Estrutura completa de projeto com dependências e configuração ✨ NOVO!
- Suporte a API GraphQL - Suporta Schemas GraphQL ✨ NOVO!
- Métodos adicionais de autenticação (OAuth2, JWT)
- Geração de testes em Go/Golang (com testify/ginkgo)
- Geração de testes em C#/.NET (com NUnit/xUnit)
- Monitoramento de desempenho e alertas
- Integração com pipelines de CI/CD (GitHub Actions, Jenkins)
- Geração avançada de dados de teste a partir de exemplos e schemas
- Testes de contrato de API com suporte a Pact
- Geração de servidor mock para desenvolvimento
📄 Direitos Autorais e Uso
© 2025 kirti676. Todos os direitos reservados.
Este repositório e seu conteúdo são protegidos por leis de direitos autorais. Para permissão de reutilização, referência ou redistribuição de qualquer parte deste projeto, entre em contato com o proprietário em kirti676@outlook.com.
✅ Permitido sem permissão:
- Aprendizado pessoal e experimentação
- Contribuição de volta a este repositório via Pull Requests
❓ Requer permissão:
- Uso comercial ou integração
- Redistribuição em forma modificada
- Publicação de trabalhos derivados
Para consultas de licenciamento, oportunidades de colaboração ou solicitações de permissão, entre em contato com kirti676@outlook.com.