Skip to content

缓存

概述

swag2mcp 会缓存下载的规范文件,以便 MCP 服务器在后续启动时更快。它不会每次都下载相同的规范文件,而是重用缓存的副本。

缓存工作原理

当你添加带有远程 URL 的 spec 时,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)时,超过 48 小时的保存的 API 响应会自动删除。这防止 responses/ 目录无限增长。

重要说明

  • specs/ 中的本地文件从不缓存 — 如果你直接在 specs/ 目录中编辑规范文件,更改立即可见,无需清除缓存
  • 远程 URL 始终缓存 — 除了运行 swag2mcp updateswag2mcp clean 之外,无法绕过远程 URL 的缓存
  • 缓存是本地的 — 存储在磁盘上,不会在机器之间同步。使用 swag2mcp exportswag2mcp import 在机器之间传输规范