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: Swagger 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

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

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/dcolley/swagger-mcp'

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