Skip to main content
Glama
dcolley
by dcolley

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 или выше)

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

  • Машинопись

Установка

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

-
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