Swagger MCP Server
Ein Server, der Swagger/OpenAPI-Spezifikationen über das Model Context Protocol (MCP) aufnimmt und bereitstellt.
Merkmale
Lädt Swagger/OpenAPI-Spezifikationen
Unterstützt mehrere Authentifizierungsmethoden:
Grundlegende Authentifizierung
Inhabertoken
API-Schlüssel (Header oder Abfrage)
OAuth2
Generiert automatisch MCP-Tools aus API-Endpunkten
Server-Sent Events (SSE)-Unterstützung für Echtzeitkommunikation
TypeScript-Unterstützung
Related MCP server: Swagger MCP Server
Sicherheit
Dies ist ein persönlicher Server! Stellen Sie ihn nicht dem öffentlichen Internet zur Verfügung. Wenn die zugrunde liegende API eine Authentifizierung erfordert, sollten Sie den MCP-Server nicht dem öffentlichen Internet zur Verfügung stellen.
ZU TUN
Geheimnisse - der MCP-Server sollte in der Lage sein, Geheimnisse des Benutzers zu verwenden, um Anfragen an die API zu authentifizieren
Umfassende Testsuite
Voraussetzungen
Node.js (v18 oder höher)
Garnpaketmanager
Typoskript
Installation
Klonen Sie das Repository:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcpInstallieren Sie Abhängigkeiten:
yarn installErstellen Sie eine
.envDatei basierend auf dem Beispiel:
cp .env.example .envKonfigurieren Sie Ihre Swagger/OpenAPI-Spezifikation:
Platzieren Sie Ihre Swagger-Datei im Projekt (z. B.
swagger.json).Oder geben Sie eine URL zu Ihrer Swagger-Spezifikation an
Aktualisieren Sie die Konfiguration in
config.jsonmit Ihren Servereinstellungen:
{
"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"
}
}
}Hinweis: Der Server priorisiert Einstellungen aus der Swagger-Spezifikation gegenüber der Konfigurationsdatei:
Wenn die Swagger-Datei ein
serversArray enthält, wird die erste Server-URL als Basis-URL verwendet.Wenn die Swagger-Datei Sicherheitsschemata definiert, werden diese zur Authentifizierung verwendet
Die Einstellungen der Konfigurationsdatei dienen als Fallback, wenn sie nicht in der Swagger-Datei angegeben sind
Verwendung
Starten Sie den Entwicklungsserver:
yarn devFür die Produktion erstellen:
yarn buildStarten Sie den Produktionsserver:
yarn startAPI-Endpunkte
GET /health- Server-Gesundheitsstatus prüfenGET /sse- Server-Sent Events-Verbindung herstellenPOST /messages- Senden Sie Nachrichten an den MCP-Server
Testen
Führen Sie die Testsuite aus:
# Run tests once
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage report
yarn test:coverageAuthentifizierung
Der Server unterstützt verschiedene Authentifizierungsmethoden. Konfigurieren Sie diese in der Datei config.json als Fallbacks, sofern sie nicht in der Swagger-Datei angegeben sind:
Grundlegende Authentifizierung
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}Inhabertoken
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}API-Schlüssel
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}OAuth2
{
"defaultAuth": {
"type": "oauth2",
"token": "your-oauth-token"
}
}Entwicklung
Starten Sie den Entwicklungsserver:
yarn devLizenz
Dieses Projekt ist unter der Apache 2.0-Lizenz lizenziert.
Umgebungsvariablen
PORT: Server-Port (Standard: 3000)API_USERNAME: Benutzername für die API-Authentifizierung (Fallback)API_PASSWORD: Passwort für die API-Authentifizierung (Fallback)API_TOKEN: API-Token zur Authentifizierung (Fallback)DEFAULT_API_BASE_URL: Standard-Basis-URL für API-Endpunkte (Fallback)DEFAULT_SWAGGER_URL: Standard-Swagger-Spezifikations-URL
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.