缓存
概述
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 update或swag2mcp clean之外,无法绕过远程 URL 的缓存 - 缓存是本地的 — 存储在磁盘上,不会在机器之间同步。使用
swag2mcp export和swag2mcp import在机器之间传输规范