Swagger MCP-сервер
Сервер, который принимает и обслуживает спецификации Swagger/OpenAPI через протокол контекста модели (MCP).
Функции
Загружает спецификации Swagger/OpenAPI
Поддерживает несколько методов аутентификации:
Базовая аутентификация
Токен на предъявителя
Ключ API (заголовок или запрос)
OAuth2
Автоматически генерирует инструменты MCP из конечных точек API
Поддержка событий, отправленных сервером (SSE), для связи в реальном времени
Поддержка TypeScript
Related MCP server: Swagger MCP Server
Безопасность
Это персональный сервер!! Не выставляйте его в публичный интернет. Если базовый API требует аутентификации, вы не должны выставлять сервер MCP в публичный интернет.
ДЕЛО
секреты — сервер MCP должен иметь возможность использовать секреты пользователя для аутентификации запросов к API.
Комплексный набор тестов
Предпосылки
Node.js (v18 или выше)
Менеджер по упаковке пряжи
Машинопись
Установка
Клонируйте репозиторий:
git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcpУстановить зависимости:
yarn installСоздайте файл
.envна основе примера:
cp .env.example .envНастройте спецификацию Swagger/OpenAPI:
Поместите ваш файл Swagger в проект (например,
swagger.json)Или укажите URL-адрес вашей спецификации Swagger
Обновите конфигурацию в
config.json, указав настройки вашего сервера:
{
"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"
}
}
}Примечание: сервер отдает приоритет настройкам из спецификации Swagger, а не настройкам файла конфигурации:
Если файл Swagger содержит массив
servers, в качестве базового URL будет использоваться первый URL-адрес сервера.Если файл Swagger определяет схемы безопасности, они будут использоваться для аутентификации.
Настройки файла конфигурации служат резервными, если они не указаны в файле Swagger.
Использование
Запустите сервер разработки:
yarn devСборка для производства:
yarn buildЗапустите производственный сервер:
yarn startКонечные точки API
GET /health- Проверить состояние работоспособности сервераGET /sse— Установить соединение «События, отправленные сервером»POST /messages— отправка сообщений на сервер MCP
Тестирование
Запустите тестовый набор:
# Run tests once
yarn test
# Run tests in watch mode
yarn test:watch
# Run tests with coverage report
yarn test:coverageАутентификация
Сервер поддерживает различные методы аутентификации. Настройте их в файле config.json как запасные, если они не указаны в файле Swagger:
Базовая аутентификация
{
"defaultAuth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}Токен на предъявителя
{
"defaultAuth": {
"type": "bearer",
"token": "your-bearer-token"
}
}API-ключ
{
"defaultAuth": {
"type": "apiKey",
"apiKey": "your-api-key",
"apiKeyName": "X-API-Key",
"apiKeyIn": "header"
}
}OAuth2
{
"defaultAuth": {
"type": "oauth2",
"token": "your-oauth-token"
}
}Разработка
Запустите сервер разработки:
yarn devЛицензия
Данный проект лицензирован по лицензии Apache 2.0.
Переменные среды
PORT: Порт сервера (по умолчанию: 3000)API_USERNAME: Имя пользователя для аутентификации API (резервный вариант)API_PASSWORD: Пароль для аутентификации API (запасной вариант)API_TOKEN: API-токен для аутентификации (запасной вариант)DEFAULT_API_BASE_URL: Базовый URL-адрес по умолчанию для конечных точек API (резервный вариант)DEFAULT_SWAGGER_URL: URL спецификации Swagger по умолчанию
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.