Skip to main content
Glama
dcolley
by dcolley

Servidor Swagger MCP

Un servidor que ingiere y sirve especificaciones Swagger/OpenAPI a través del Protocolo de Contexto de Modelo (MCP).

Características

  • Carga las especificaciones Swagger/OpenAPI

  • Admite múltiples métodos de autenticación:

    • Autorización básica

    • Token al portador

    • Clave API (encabezado o consulta)

    • OAuth2

  • Genera automáticamente herramientas MCP desde puntos finales de API

  • Compatibilidad con eventos enviados por el servidor (SSE) para comunicación en tiempo real

  • Compatibilidad con TypeScript

Related MCP server: OpenAPI to MCP Server

Seguridad

¡Este es un servidor personal! No lo exponga a internet. Si la API subyacente requiere autenticación, no debe exponer el servidor MCP a internet.

HACER

  • secretos: el servidor MCP debe poder usar secretos del usuario para autenticar solicitudes a la API

  • Conjunto completo de pruebas

Prerrequisitos

  • Node.js (v18 o superior)

  • Administrador de paquetes de hilo

  • Mecanografiado

Instalación

  1. Clonar el repositorio:

git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
  1. Instalar dependencias:

yarn install
  1. Cree un archivo .env basado en el ejemplo:

cp .env.example .env
  1. Configure su especificación Swagger/OpenAPI:

    • Coloque su archivo Swagger en el proyecto (por ejemplo, swagger.json )

    • O proporcione una URL a su especificación Swagger

  2. Actualice la configuración en config.json con la configuración de su servidor:

{
  "server": {
    "host": "localhost",
    "port": 3000
  },
  "swagger": {
    "url": "url-or-path/to/your/swagger.json",
    "apiBaseUrl": "https://api.example.com",  // Fallback if not specified in Swagger
    "defaultAuth": {  // Fallback if not specified in Swagger
      "type": "apiKey",
      "apiKey": "your-api-key",
      "apiKeyName": "api_key",
      "apiKeyIn": "header"
    }
  }
}

Nota: El servidor prioriza las configuraciones de la especificación Swagger sobre el archivo de configuración:

  • Si el archivo Swagger contiene una matriz servers , la URL del primer servidor se utilizará como URL base

  • Si el archivo Swagger define esquemas de seguridad, se utilizarán para la autenticación.

  • Las configuraciones del archivo de configuración sirven como respaldo cuando no se especifican en el archivo Swagger

Uso

  1. Inicie el servidor de desarrollo:

yarn dev
  1. Construir para producción:

yarn build
  1. Inicie el servidor de producción:

yarn start

Puntos finales de API

  • GET /health - Verificar el estado de salud del servidor

  • GET /sse - Establecer conexión de eventos enviados por el servidor

  • POST /messages - Envía mensajes al servidor MCP

Pruebas

Ejecute el conjunto de pruebas:

# Run tests once
yarn test

# Run tests in watch mode
yarn test:watch

# Run tests with coverage report
yarn test:coverage

Autenticación

El servidor admite varios métodos de autenticación. Configúrelos en el archivo config.json como respaldo si no se especifican en el archivo Swagger:

Autorización básica

{
  "defaultAuth": {
    "type": "basic",
    "username": "your-username",
    "password": "your-password"
  }
}

Token al portador

{
  "defaultAuth": {
    "type": "bearer",
    "token": "your-bearer-token"
  }
}

Clave API

{
  "defaultAuth": {
    "type": "apiKey",
    "apiKey": "your-api-key",
    "apiKeyName": "X-API-Key",
    "apiKeyIn": "header"
  }
}

OAuth2

{
  "defaultAuth": {
    "type": "oauth2",
    "token": "your-oauth-token"
  }
}

Desarrollo

  1. Inicie el servidor de desarrollo:

yarn dev

Licencia

Este proyecto está licenciado bajo la licencia Apache 2.0.

Variables de entorno

  • PORT : Puerto del servidor (predeterminado: 3000)

  • API_USERNAME : Nombre de usuario para la autenticación de API (respaldo)

  • API_PASSWORD : Contraseña para la autenticación de API (alternativa)

  • API_TOKEN : token de API para autenticación (respaldo)

  • DEFAULT_API_BASE_URL : URL base predeterminada para los puntos finales de API (respaldo)

  • DEFAULT_SWAGGER_URL : URL de especificación de Swagger predeterminada

Related MCP Connectors

Related MCP Servers