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
Clonar el repositorio:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcpInstalar dependencias:
yarn installCree un archivo
.envbasado en el ejemplo:
cp .env.example .envConfigure 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
Actualice la configuración en
config.jsoncon 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 baseSi 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
Inicie el servidor de desarrollo:
yarn devConstruir para producción:
yarn buildInicie el servidor de producción:
yarn startPuntos finales de API
GET /health- Verificar el estado de salud del servidorGET /sse- Establecer conexión de eventos enviados por el servidorPOST /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:coverageAutenticació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
Inicie el servidor de desarrollo:
yarn devLicencia
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
This server cannot be installed
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.