Skip to main content
Glama
dcolley
by dcolley

Swagger MCP-сервер

Сервер, который принимает и обслуживает спецификации Swagger/OpenAPI через протокол контекста модели (MCP).

Функции

  • Загружает спецификации Swagger/OpenAPI

  • Поддерживает несколько методов аутентификации:

    • Базовая аутентификация

    • Токен на предъявителя

    • Ключ API (заголовок или запрос)

    • OAuth2

  • Автоматически генерирует инструменты MCP из конечных точек API

  • Поддержка событий, отправленных сервером (SSE), для связи в реальном времени

  • Поддержка TypeScript

Related MCP server: OpenAPI to MCP Server

Безопасность

Это персональный сервер!! Не выставляйте его в публичный интернет. Если базовый API требует аутентификации, вы не должны выставлять сервер MCP в публичный интернет.

ДЕЛО

  • секреты — сервер MCP должен иметь возможность использовать секреты пользователя для аутентификации запросов к API.

  • Комплексный набор тестов

Предпосылки

  • Node.js (v18 или выше)

  • Менеджер по упаковке пряжи

  • Машинопись

Установка

  1. Клонируйте репозиторий:

git clone https://github.com/dcolley/swagger-mcp.git
cd swagger-mcp
  1. Установить зависимости:

yarn install
  1. Создайте файл .env на основе примера:

cp .env.example .env
  1. Настройте спецификацию Swagger/OpenAPI:

    • Поместите ваш файл Swagger в проект (например, swagger.json )

    • Или укажите URL-адрес вашей спецификации Swagger

  2. Обновите конфигурацию в 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.

Использование

  1. Запустите сервер разработки:

yarn dev
  1. Сборка для производства:

yarn build
  1. Запустите производственный сервер:

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"
  }
}

Разработка

  1. Запустите сервер разработки:

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 по умолчанию

Related MCP Connectors

Related MCP Servers