Swagger MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Uses .ENV files for configuration management, allowing users to set server parameters and authentication credentials through environment variables.

  • Ingests Swagger/OpenAPI specifications and automatically generates MCP tools from API endpoints, supporting multiple authentication methods including Basic Auth, Bearer Token, API Key, and OAuth2.

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

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
-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor que permite la interacción con cualquier API que tenga una especificación Swagger/OpenAPI a través del Protocolo de Contexto de Modelo (MCP), generando automáticamente herramientas desde los puntos finales de la API y admitiendo múltiples métodos de autenticación.

  1. Features
    1. Security
      1. TODO
        1. Prerequisites
          1. Installation
            1. Usage
              1. API Endpoints
                1. Testing
                  1. Authentication
                    1. Basic Auth
                    2. Bearer Token
                    3. API Key
                    4. OAuth2
                  2. Development
                    1. License
                      1. Environment Variables
                        ID: ekf8s6cdjk