Skip to content

Глобальные настройки

Глобальные настройки — это блоки конфигурации верхнего уровня в swag2mcp.yaml. Они применяются ко всем спецификациям, если не переопределены на уровне спецификации или коллекции.

Структура

yaml
http_client:
  # Настройки HTTP-клиента для всех вызовов API

mcp:
  # Настройки MCP-сервера

mock_enabled: false
mock_auth:
  oauth2_port: 9090
  digest_port: 9091
  hmac_port: 9092

disable_ratelimiter: false
rate_limit_interval: 10s

HTTP-клиент

Управляет тем, как swag2mcp выполняет HTTP-запросы к API: таймаут, лимит размера ответа, прокси, заголовки, куки, перенаправления и user-agent. Эти настройки каскадируются на спецификации и коллекции.

Подробнее: HTTP-клиент — все параметры и примеры.

MCP-сервер

Управляет тем, как MCP-сервер взаимодействует с LLM-агентами: тип транспорта (stdio, SSE, Streamable HTTP), адрес, путь и опциональный bearer-токен аутентификации.

Подробнее: MCP-сервер — все параметры, транспорты и флаги запуска.

Mock-сервер

Mock-сервер генерирует фиктивные ответы API на основе OpenAPI-схем. Полезен для тестирования без обращения к реальным API.

yaml
mock_enabled: true
mock_auth:
  oauth2_port: 9090
  digest_port: 9091
  hmac_port: 9092

mock_enabled

  • Тип: bool
  • По умолчанию: false
  • Эффект: Если true, swag2mcp запускает mock-серверы для всех спецификаций, у которых настроен base_mock_url. Коллекции без base_mock_url пропускаются.
  • Когда включать: Вы хотите протестировать интеграцию API без выполнения реальных HTTP-вызовов. Mock-серверы возвращают фиктивные данные на основе OpenAPI-схемы.

mock_auth

Конфигурация портов для mock-серверов аутентификации. Используются при тестировании методов auth (OAuth2, Digest, HMAC) с mock-сервером.

ПолеТипПо умолчаниюОписание
oauth2_portint9090Порт для mock-сервера OAuth2-токенов (1024-65535)
digest_portint9091Порт для mock-сервера Digest-аутентификации (1024-65535)
hmac_portint9092Порт для mock-сервера HMAC-аутентификации (1024-65535)

Ограничитель запросов

Ограничитель запросов предотвращает слишком частые вызовы одного и того же эндпоинта API со стороны LLM. По умолчанию каждый эндпоинт можно вызывать не чаще одного раза в 10 секунд.

yaml
disable_ratelimiter: false
rate_limit_interval: 10s

disable_ratelimiter

  • Тип: bool
  • По умолчанию: false
  • Эффект: Если true, ограничитель запросов для каждого эндпоинта полностью отключается. LLM может вызывать один и тот же эндпоинт повторно без ожидания.
  • Когда включать: Тестирование, отладка или когда нужно вызывать один и тот же эндпоинт несколько раз подряд.
  • Когда оставлять выключенным (рекомендуется): Продакшен. Ограничитель предотвращает случайное злоупотребление и соблюдает лимиты API.

rate_limit_interval

  • Тип: duration (Go-формат: 10s, 30s, 1m)
  • По умолчанию: 10s
  • Эффект: Устанавливает, как долго LLM должен ждать между вызовами одного и того же эндпоинта.
  • Когда изменять: Увеличьте для API со строгими лимитами. Уменьшите для внутренних API, где вы контролируете нагрузку.
  • Диапазон: Любая валидная длительность (например, 5s, 30s, 1m, 2m).

Каскад

Глобальные настройки могут быть переопределены на уровне спецификации и коллекции. Все настройки http_client (таймаут, прокси, user-agent, перенаправления, размер ответа, рандомизатор, заголовки, куки) могут быть переопределены на обоих уровнях.

Global (http_client, mock_enabled, disable_ratelimiter, rate_limit_interval)
    ↓ переопределяет (только http_client)
Spec (specs[].http_client)
    ↓ переопределяет (только http_client)
Collection (specs[].collections[].http_client)

Подробнее: Каскад конфигурации.