API Tester
Este servidor MCP acepta documentos swagger/postman como entrada. Luego genera escenarios de prueba de API y carga, ejecuta las pruebas y genera el informe de ejecución.
Documentación
Servidor MCP de API Tester
Un servidor integral del Protocolo de Contexto de Modelos (MCP) para ingenieros de QA/SDET que proporciona capacidades de prueba de API con soporte para Swagger/OpenAPI y colecciones de Postman.
🎉 ¡Ahora disponible en NPM! Instala con
npx @kirti676/api-tester-mcp@latest
🆕 Novedades
- ✅ Seguimiento de Progreso Mejorado - Progreso en tiempo real con porcentajes de finalización y ETA
- ✅ Barras de Progreso Visuales - Barras de progreso ASCII con notificaciones de hitos
- ✅ Métricas de Rendimiento - Cálculos de rendimiento y resúmenes de ejecución
- ✅ Publicado en NPM - Instala al instante con NPX
- ✅ Integración con VS Code - Botones de instalación con un clic
- ✅ Configuración Simplificada - No se requiere instalación manual de Python
- ✅ Multiplataforma - Funciona en Windows, macOS y Linux
- ✅ Actualizaciones Automáticas - Siempre obtén la última versión con
@latest
🚀 Primeros Pasos
📦 Instalación
El servidor MCP de API Tester se puede usar directamente con npx sin ninguna instalación:
npx @kirti676/api-tester-mcp@latest
⚡ Instalación Rápida:
🤖 Claude Desktop
Sigue la guía de instalación de MCP, usa la configuración estándar a continuación:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
🔗 Otros Clientes MCP
La configuración estándar funciona con la mayoría de los clientes MCP:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
🖥️ Clientes Compatibles:
- 🤖 Claude Desktop
- 💻 VS Code con la extensión MCP
- ⚡ Cursor
- 🌊 Windsurf
- 🪿 Goose
- 🔧 Cualquier otro cliente compatible con MCP
🐍 Instalación con Python (Alternativa)
pip install api-tester-mcp
💻 Desde el Código Fuente
git clone https://github.com/kirti676/api_tester_mcp.git
cd api_tester_mcp
npm install
⚡ Inicio Rápido
Prueba el servidor MCP de API Tester inmediatamente:
# 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, usa esta configuración:
{
"mcpServers": {
"api-tester": {
"command": "npx",
"args": ["@kirti676/api-tester-mcp@latest"]
}
}
}
✨ Características
- 📥 Soporte de Entrada: Documentos OpenAPI/Swagger, colecciones de Postman y esquemas GraphQL
- 🔄 Generación de Pruebas: Generación automática de escenarios de prueba de API y de carga
- 🌐 Soporte Multilenguaje: Genera pruebas en TypeScript/Playwright, JavaScript/Jest, Python/pytest y más
- ⚡ Ejecución de Pruebas: Ejecuta pruebas generadas con informes detallados
- 🔐 Detección Inteligente de Autenticación: Análisis automático de variables de entorno y guía de configuración
- 🔐 Autenticación: Soporte de tokens Bearer y claves de API mediante
set_env_vars - 📊 Informes HTML: Informes hermosos y accesibles a través de recursos MCP
- 📈 Progreso en Tiempo Real: Actualizaciones en vivo con barras de progreso y porcentajes de finalización
- ⏱️ Cálculos de ETA: Tiempo estimado de finalización para todas las operaciones
- 🎯 Seguimiento de Hitos: Notificaciones especiales en hitos clave de progreso (25%, 50%, 75%, etc.)
- 📊 Métricas de Rendimiento: Cálculos de rendimiento y resúmenes de ejecución
- ✅ Validación de Esquemas: Generación de cuerpos de solicitud a partir de ejemplos de esquemas
- 🎯 Aserciones: Aserciones de código de estado por punto final (2xx, 4xx, 5xx)
- 📦 Generación de Proyectos: Andamiaje completo de proyectos con dependencias y configuración
🌐 Generación de Pruebas Multilenguaje
El MCP de API Tester ahora admite la generación de código de prueba en múltiples lenguajes de programación y marcos de prueba:
🔧 Combinaciones de Lenguaje/Marco Compatibles
| Lenguaje | Marco | Descripción | Caso de Uso |
|---|---|---|---|
| 📘 TypeScript | 🎭 Playwright | Pruebas E2E modernas con excelente soporte de API | 🏢 Aplicaciones web empresariales |
| 📘 TypeScript | 🚀 Supertest | Pruebas de API enfocadas en Express.js | 🟢 Servicios backend de Node.js |
| 📙 JavaScript | 🃏 Jest | Marco de pruebas popular con buen ecosistema | 🔧 Pruebas de API generales |
| 📙 JavaScript | 🌲 Cypress | Pruebas E2E con excelente experiencia de desarrollador | 🌐 Aplicaciones full-stack |
| 🐍 Python | 🧪 pytest | Pruebas integrales con fixtures y complementos | 📊 APIs con muchos datos y servicios de ML |
| 🐍 Python | 📡 requests | Pruebas HTTP simples para validación rápida | ⚡ Prototipado rápido y scripts |
🎯 Flujo de Trabajo de Selección de Lenguaje
// 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
});
📁 Estructura de Proyecto Generada
La herramienta generate_project_files crea un proyecto completo y listo para ejecutar:
📘 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
🎯 Características Específicas del Marco
- 🎭 Playwright: Automatización de navegador, ejecución paralela, informes detallados
- 🃏 Jest: Pruebas de instantáneas, simulación, modo de observación para desarrollo
- 🧪 pytest: Fixtures, pruebas parametrizadas, ecosistema extenso de complementos
- 🌲 Cypress: Depuración interactiva, depuración de viaje en el tiempo, pruebas en navegador real
- 🚀 Supertest: Integración con Express.js, pruebas de middleware
- 📡 requests: Llamadas API simples, gestión de sesiones, ayudantes de autenticación
📈 Seguimiento de Progreso
El MCP de API Tester incluye seguimiento integral de progreso para todas las operaciones:
📊 Indicadores Visuales de Progreso
🎯 API Test Execution: [██████████░░░░░░░░░░] 50.0% (5/10) | ETA: 2.5s - GET /api/users ✅
🔥 Características:
- 📊 Barras de Progreso: Barras de progreso ASCII con indicadores llenos/vacíos
- 📈 Porcentajes de Finalización: Porcentaje de finalización en tiempo real
- ⏰ Cálculos de ETA: Tiempo estimado de finalización basado en el rendimiento actual
- 🎯 Notificaciones de Hitos: Resaltado especial en puntos clave de progreso
- ⚡ Métricas de Rendimiento: Estadísticas de rendimiento y tiempo
- 📋 Contexto de Operación: Información detallada sobre el paso actual que se está ejecutando
✅ Disponible para:
- 🎬 Generación de escenarios
- 🧪 Generación de casos de prueba
- 🚀 Ejecución de pruebas de API
- ⚡ Ejecución de pruebas de carga
- 🔄 Todas las operaciones de larga duración
🛠️ Herramientas MCP
El servidor proporciona 11 herramientas MCP integrales con especificaciones detalladas de parámetros:
1. 📥 ingest_spec - Cargar Especificaciones de API
Carga colecciones de OpenAPI/Swagger, Postman o esquemas GraphQL con preferencias de lenguaje/marco
{
"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 Autenticación y Entorno
Establece variables de entorno con validación automática y orientación
{
"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 - Crear Escenarios de Prueba
Genera escenarios de prueba a partir de especificaciones ingeridas
{
"include_negative_tests": true, // Generate failure scenarios (default: true)
"include_edge_cases": true // Generate boundary conditions (default: true)
}
4. 🧪 generate_test_cases - Convertir a Pruebas Ejecutables
Convierte escenarios en casos de prueba ejecutables en el lenguaje/marco preferido
{
"scenario_ids": null // Array of scenario IDs or null for all (optional)
}
5. 🚀 run_api_tests - Ejecutar Pruebas de API
Ejecuta pruebas de API con resultados detallados e informes
{
"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 - Ejecutar Pruebas de Rendimiento
Ejecuta pruebas de carga/rendimiento con parámetros configurables
{
"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 Opciones de Lenguaje/Marco
Obtén la lista de lenguajes de programación y marcos de prueba compatibles
// No parameters required
{}
8. 📦 generate_project_files - Generar Proyectos Completos
Genera la estructura completa del proyecto con dependencias y configuración
{
"project_name": null, // Project folder name (optional, auto-generated if null)
"include_examples": true // Include example test files (default: true)
}
9. 📁 get_workspace_info - Información del Espacio de Trabajo
Obtén información sobre el directorio del espacio de trabajo y las ubicaciones de generación de archivos
// No parameters required
{}
10. 🔍 debug_file_system - Diagnósticos del Sistema de Archivos
Obtén información integral del espacio de trabajo y diagnósticos del sistema de archivos
// No parameters required
{}
11. 📊 get_session_status - Estado de Sesión y Progreso
Recupera información de la sesión actual con detalles de progreso
// No parameters required
{}
📚 Recursos MCP
file://reports- Lista todos los informes de prueba disponiblesfile://reports/{report_id}- Accede a informes de prueba HTML individuales
💡 Prompts MCP
create_api_test_plan- Genera planes integrales de prueba de APIanalyze_test_failures- Analiza fallos de prueba y proporciona recomendaciones
🔍 Análisis Inteligente de Variables de Entorno
El MCP de API Tester ahora analiza automáticamente tus especificaciones de API para detectar variables de entorno requeridas y proporciona orientación útil de configuración:
🎯 Detección Automática
- 🔐 Esquemas de Autenticación: Tokens Bearer, claves de API, autenticación básica, OAuth2
- 🌐 URLs Base: Extraídas de servidores/hosts de especificaciones
- 🔗 Variables de Plantilla: Variables de colección de Postman como
{{baseUrl}},{{authToken}} - 📍 Parámetros de Ruta: Valores dinámicos en rutas como
/users/{userId}
💡 Sugerencias 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
🎯 Claves de Parámetros Predeterminadas
Todas las herramientas MCP ahora proporcionan claves de parámetros predeterminadas útiles para guiar a los usuarios sobre qué valores pueden establecer:
🔧 Variables de Entorno (set_env_vars)
🔑 TODOS LOS PARÁMETROS SON OPCIONALES - Proporciona solo lo que necesites:
// 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"
}
});
🌐 Selección de Lenguaje y Marco
Los valores predeterminados te ayudan a comprender las opciones disponibles:
// 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 Ejecución de Pruebas
Valores predeterminados claros para el ajuste de rendimiento:
// 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
});
🔧 Ejemplo de Configuración
// 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
});
🚀 Ejemplo Completo de Flujo de Trabajo
Aquí hay un ejemplo completo de prueba de la API de Petstore:
# 1. Start the MCP server
npx @kirti676/api-tester-mcp@latest
Luego en tu 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"
});
📖 Ejemplos de Uso
🔄 Flujo de Trabajo Básico de Pruebas de API
-
📥 Ingerir Especificación de API
{ "tool": "ingest_spec", "params": { "spec_type": "openapi", "content": "{ ... your OpenAPI spec ... }" } } -
🔐 Configurar Autenticación
{ "tool": "set_env_vars", "params": { "variables": { "auth_bearer": "your-token", "baseUrl": "https://api.example.com" } } } -
🚀 Generar y Ejecutar Pruebas
{ "tool": "generate_scenarios", "params": { "include_negative_tests": true } } -
📊 Ver Resultados
- 📄 Accede a informes HTML a través de recursos MCP
- 📈 Obtén estado de sesión y estadísticas
🚀 Flujo de Trabajo de Pruebas de API GraphQL
-
📥 Ingerir Esquema GraphQL
{ "tool": "ingest_spec", "params": { "spec_type": "graphql", "file_path": "./schema.graphql" } } -
🔐 Configurar Punto Final GraphQL
{ "tool": "set_env_vars", "params": { "graphqlEndpoint": "https://api.example.com/graphql", "auth_bearer": "your-jwt-token" } } -
🧪 Generar Pruebas GraphQL
{ "tool": "generate_test_cases", "params": { "preferred_language": "python", "preferred_framework": "pytest" } } -
📊 Ejecutar Pruebas GraphQL
{ "tool": "run_api_tests", "params": { "max_concurrent": 5 } }
⚡ Pruebas de Carga
{
"tool": "run_load_tests",
"params": {
"users": 10,
"duration": 60,
"ramp_up": 10
}
}
🔍 Características de Generación de Pruebas
- ✅ Pruebas Positivas: Solicitudes válidas con respuestas 2xx esperadas
- ❌ Pruebas Negativas: Autenticación inválida (401), métodos incorrectos (405)
- 🎯 Casos Límite: Cargas útiles grandes, condiciones de frontera
- 🏗️ Cuerpos Basados en Esquemas: Generación automática de cuerpos de solicitud a partir de esquemas OpenAPI
- 🔍 Aserciones Integrales: Códigos de estado, tiempos de respuesta, validación de contenido
📊 Informes HTML
Los informes generados incluyen:
- 📈 Resumen de ejecución de pruebas con estadísticas de aprobados/fallidos
- ⏱️ Resultados detallados de pruebas con información de tiempo
- 🔍 Desgloses de aserciones y detalles de errores
- 👁️ Vistas previas de respuestas e información de depuración
- 📱 Diseño receptivo compatible con dispositivos móviles
🔒 Soporte de Autenticación
- 🎫 Tokens Bearer: Variable de entorno
auth_bearer - 🔑 Claves de API: Variable de entorno
auth_apikey(enviada como encabezado X-API-Key) - 👤 Autenticación Básica: Variable de entorno
auth_basic
🔧 Requisitos
- 🐍 Python: 3.8 o superior
- 🟢 Node.js: 14 o superior (para instalación npm)
📦 Dependencias
🐍 Dependencias de 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
🟢 Dependencias de Node.js
- ✨ Ninguna (paquete autocontenido)
🔧 Solución de Problemas
❗ Problemas Comunes
📦 El Comando NPX No Funciona
# 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 No 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 Conexión del Cliente MCP
- ✅ Asegúrate de que el servidor MCP se esté ejecutando en el transporte stdio (predeterminado)
- 🔄 Verifica que tu cliente MCP admita la última versión del protocolo MCP
- 📝 Verifica que la sintaxis JSON de configuración sea correcta
🆘 Obtener Ayuda
- 📖 Consulta el directorio de Ejemplos para configuraciones funcionales
- 🔍 Ejecuta con el indicador
--verbosepara registro detallado - 🐛 Reporta problemas en GitHub Issues
🤝 Contribuciones
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Realiza tus cambios (
git commit -m 'Add some amazing feature') - Empuja a la rama (
git push origin feature/amazing-feature) - Abre una Solicitud de Extracción
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
🐛 Problemas y Soporte
- Paquete NPM: @kirti676/api-tester-mcp
- Reportar errores: GitHub Issues
📈 Hoja de Ruta
- Generación de pruebas multi-lenguaje - Soporte para TypeScript/Playwright, JavaScript/Jest, Python/pytest ✨ ¡NUEVO!
- Generación completa de proyectos - Estructura completa del proyecto con dependencias y configuración ✨ ¡NUEVO!
- Soporte para API GraphQL - Compatible con esquemas GraphQL ✨ ¡NUEVO!
- Métodos de autenticación adicionales (OAuth2, JWT)
- Generación de pruebas en Go/Golang (con testify/ginkgo)
- Generación de pruebas en C#/.NET (con NUnit/xUnit)
- Monitoreo de rendimiento y alertas
- Integración con pipelines de CI/CD (GitHub Actions, Jenkins)
- Generación avanzada de datos de prueba a partir de ejemplos y esquemas
- Pruebas de contratos de API con soporte para Pact
- Generación de servidores mock para desarrollo
📄 Derechos de autor y uso
© 2025 kirti676. Todos los derechos reservados.
Este repositorio y su contenido están protegidos por la ley de derechos de autor. Para obtener permiso para reutilizar, hacer referencia o redistribuir cualquier parte de este proyecto, comuníquese con el propietario en kirti676@outlook.com.
✅ Permitido sin permiso:
- Aprendizaje personal y experimentación
- Contribuir a este repositorio mediante Pull Requests
❓ Requiere permiso:
- Uso comercial o integración
- Redistribución en forma modificada
- Publicación de trabajos derivados
Para consultas sobre licencias, oportunidades de colaboración o solicitudes de permiso, comuníquese con kirti676@outlook.com.