MCP-QA: Analizador de Contratos Swagger/OpenAPI
MCP Server para análisis completo de contratos Swagger/OpenAPI.
🎯 Características
- ✅ Soporta Swagger 2.0 y OpenAPI 3.x
- ✅ Análisis completo de endpoints (paths, métodos HTTP)
- ✅ Extracción de parámetros (path, query, header, cookie)
- ✅ Análisis de request bodies con schemas
- ✅ Análisis de responses (códigos HTTP, schemas, headers)
- ✅ Extracción de schemas con propiedades, tipos y formatos
- ✅ Validaciones (obligatoriedad, tipos, formatos UUID/fecha/etc)
- ✅ Información de servidores y seguridad
- ✅ Tags y documentación
🏗️ Arquitectura
El proyecto sigue arquitectura limpia y principios SOLID:
mcp-qa/
├── src/
│ ├── domain/ # Capa de dominio (entidades e interfaces)
│ │ ├── models.py # Modelos de dominio
│ │ └── interfaces.py # Abstracciones (IContractFetcher, IContractParser, IContractAnalyzer)
│ ├── application/ # Capa de aplicación (casos de uso)
│ │ ├── swagger_analyzer.py # Analizador de contratos
│ │ └── use_cases.py # Orquestación del flujo
│ └── infrastructure/ # Capa de infraestructura (implementaciones)
│ ├── http_fetcher.py # Obtención de contratos HTTP
│ └── contract_parser.py # Parser YAML/JSON
└── main.py # Punto de entrada MCP
Principios SOLID aplicados:
- S (Single Responsibility): Cada clase tiene una única responsabilidad
- O (Open/Closed): Extensible sin modificar código existente
- L (Liskov Substitution): Las implementaciones son intercambiables
- I (Interface Segregation): Interfaces específicas y focalizadas
- D (Dependency Inversion): Dependencias de abstracciones, no de concreciones
📦 Instalación
# Instalar dependencias
pip install -e .
🚀 Uso
# Ejecutar el servidor MCP
python main.py
Ejemplo de análisis:
# Analizar el contrato de Petstore
analizar_contrato_swagger("https://petstore.swagger.io/v2/swagger.json")
🔍 Información extraída
El analizador extrae:
- Información general: título, versión, descripción
- Servidores: URLs y configuraciones
- Endpoints:
- Path y método HTTP
- Parámetros (ubicación, tipo, obligatoriedad)
- Request body (content types, schemas)
- Responses (códigos, schemas, headers)
- Schemas:
- Propiedades con tipos y formatos
- Validaciones (min/max length, pattern, enum)
- Obligatoriedad de campos
- Formatos especiales (UUID, date, email, etc)
- Seguridad: esquemas de autenticación
- Estadísticas: resumen de métodos, códigos HTTP, content types
📄 Licencia
MIT