Skip to main content
Glama

MCP-QA: Analizador de Contratos Swagger/OpenAPI

MCP Server para análisis completo de contratos Swagger/OpenAPI con exportación a JSON y generación automática de documentación.

🎯 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

  • Exportación a JSON con toda la información estructurada

  • Generación de README con documentación estilo Swagger UI

🏗️ Arquitectura

El proyecto sigue arquitectura limpia y principios SOLID con estructura modular donde cada herramienta es completamente autónoma:

mcp-qa/ ├── tools/ # Herramientas de QA (una por subdirectorio) │ └── swagger_analyzer/ # Analizador de contratos Swagger/OpenAPI │ ├── src/ # Código fuente de la herramienta │ │ ├── domain/ # Capa de dominio │ │ │ ├── models.py # Entidades del dominio │ │ │ ├── interfaces.py # Abstracciones (Fetcher, Parser, Analyzer) │ │ │ └── exporters.py # Interfaces de exportación │ │ ├── application/ # Capa de aplicación (casos de uso) │ │ │ ├── swagger_analyzer.py # Analizador de contratos │ │ │ ├── complete_analysis_use_case.py # Orquestador principal │ │ │ └── export_use_cases.py # Casos de uso de exportación │ │ └── infrastructure/ # Capa de infraestructura │ │ ├── http_fetcher.py # Obtención HTTP │ │ ├── contract_parser.py # Parser YAML/JSON │ │ ├── json_exporter.py # Exportador JSON │ │ └── markdown_generator.py # Generador de Markdown │ ├── __init__.py │ ├── config.py # Configuración de la herramienta │ └── tool.py # Facade de la herramienta ├── output/ # Salidas generadas (por herramienta) │ └── swagger_analyzer/ # Salidas del analizador Swagger │ ├── swagger-analysis.json │ └── API-README.md └── main.py # Punto de entrada MCP

Principios SOLID aplicados:

  • S (Single Responsibility): Cada clase tiene una única responsabilidad bien definida

  • O (Open/Closed): Fácil agregar nuevas herramientas sin modificar las existentes

  • L (Liskov Substitution): Las implementaciones son intercambiables vía interfaces

  • I (Interface Segregation): Interfaces específicas y focalizadas

  • D (Dependency Inversion): Dependencias de abstracciones mediante inyección

Estructura modular y escalable:

  • Cada herramienta es autónoma: Tiene su propio src/ con arquitectura limpia completa

  • Alta cohesión, bajo acoplamiento: No hay dependencias entre herramientas

  • Estructura homóloga: Todas las herramientas siguen el mismo patrón arquitectónico

  • Salidas organizadas: Por herramienta en output/

  • Fácil de mantener: Cambios en una herramienta NO afectan a otras

  • Fácil de escalar: Agregar nuevas herramientas es simplemente duplicar la estructura

📦 Instalación

# Instalar dependencias pip install -e .

🚀 Uso principal:

Análisis completo de contrato Swagger (una herramienta, todo incluido)

# Análisis completo: texto + JSON + README analizar_contrato_swagger("http://localhost:8080/v3/api-docs") # Con URL de Swagger UI para incluir en README analizar_contrato_swagger( "http://localhost:8080/v3/api-docs", swagger_ui_url="http://localhost:8080/swagger-ui/index.html" ) # Solo texto, sin generar archivos analizar_contrato_swagger( "https://petstore.swagger.io/v2/swagger.json", generar_json=False, generar_readme=False ) # Solo JSON analizar_contrato_swagger( "http://localhost:8080/v3/api-docs", generar_readme=False )

Salidas generadas:

Todos los archivos se guardan automáticamente en output/swagger_analyzer/:

  • swagger-analysis.json: Análisis completo en JSON estructurado

  • API-README.md: Documentación estilo Swagger UI Esto genera un README.md profesional con:

  • Tabla de contenidos

  • Resumen y estadísticas

  • Links a Swagger UI

  • Documentación completa de endpoints

  • Tablas de schemas y propiedades

  • Códigos de estado HTTP

🔍 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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qa-reysser/mcp-qa'

If you have feedback or need assistance with the MCP directory API, please join our Discord server