Skip to content

Кэширование

Обзор

swag2mcp кэширует скачанные файлы спецификаций, чтобы MCP-сервер запускался быстрее при последующих запусках. Вместо загрузки одного и того же файла спецификации каждый раз используется кэшированная копия.

Как работает кэширование

Когда вы добавляете спецификацию с удалённым URL, swag2mcp скачивает её и сохраняет в директорию cache/. При следующем запуске он проверяет, актуальна ли кэшированная копия. Если да, загрузка пропускается.

Что кэшируется

ИсточникПоведение
Удалённый URL (http/https)Всегда кэшируется. Скачивается один раз, используется повторно до истечения кэша.
Локальный файл в specs/Используется напрямую из директории specs/. Никогда не кэшируется — изменения видны сразу.
Локальный файл вне specs/Копируется в кэш. Если исходный файл изменяется (время модификации), кэш аннулируется.

Истечение кэша (TTL)

Каждый кэшированный файл получает случайное время истечения от 1 часа до 48 часов. Случайность предотвращает одновременное истечение всех кэшированных файлов (что вызвало бы "толпящееся стадо" загрузок).

  • TTL фиксируется во время кэширования и не изменяется при перезапуске сервера
  • Если кэшированный файл всё ещё в пределах TTL, он используется повторно
  • Если TTL истёк, файл загружается снова

Структура кэша

~/.swag2mcp/cache/
├── a1b2c3d4e5f6a7b8.spec    # Кэшированный файл спецификации
├── a1b2c3d4e5f6a7b8.meta    # Метаданные (источник, TTL, время кэширования)
├── b2c3d4e5f6a7b8c9.spec
├── b2c3d4e5f6a7b8c9.meta
└── ...

Ключ кэша формируется из URL или пути файла спецификации. Каждый кэшированный файл имеет сопутствующий файл .meta, в котором хранится время кэширования и истечения.

Управление кэшем

Принудительное обновление

Выполните swag2mcp update, чтобы очистить весь кэш и перезагрузить все файлы спецификаций:

bash
swag2mcp update

Это проверяет конфиг, очищает кэш и загружает всё заново.

Ручная очистка кэша

bash
swag2mcp clean

Это удаляет все кэшированные файлы спецификаций и сохранённые ответы API. При следующем запуске MCP-сервера все спецификации будут загружены снова.

Автоматическая очистка

При запуске MCP-сервера (swag2mcp mcp) сохранённые ответы API старше 48 часов автоматически удаляются. Это предотвращает бесконечный рост директории responses/.

Важные замечания

  • Локальные файлы в specs/ никогда не кэшируются — если вы редактируете файл спецификации напрямую в директории specs/, изменения видны сразу без очистки кэша
  • Удалённые URL всегда кэшируются — нет способа обойти кэш для удалённых URL, кроме выполнения swag2mcp update или swag2mcp clean
  • Кэш локальный — он хранится на диске и не синхронизируется между машинами. Используйте swag2mcp export и swag2mcp import для переноса спецификаций между машинами