Skip to content

キャッシュ

概要

swag2mcp はダウンロードした spec ファイルをキャッシュするため、MCP サーバーが次回以降より速く起動します。毎回同じ spec ファイルをダウンロードする代わりに、キャッシュされたコピーを再利用します。

キャッシュの仕組み

リモート URL で spec を追加すると、swag2mcp はそれをダウンロードして cache/ ディレクトリに保存します。次回の起動時に、キャッシュされたコピーがまだ有効かどうかを確認します。有効な場合、ダウンロードはスキップされます。

キャッシュされるもの

ソース動作
リモート URL (http/https)常にキャッシュ。一度ダウンロードされ、キャッシュが期限切れになるまで再利用。
specs/ 内のローカルファイルspecs/ ディレクトリから直接使用。キャッシュされない — 変更は即座に反映。
specs/ 外のローカルファイルキャッシュにコピー。ソースファイルが変更されると(更新日時)、キャッシュは無効化。

キャッシュの有効期限(TTL)

各キャッシュファイルには 1 時間から 48 時間 の間でランダムな有効期限が設定されます。ランダム性により、すべてのキャッシュファイルが同時に期限切れになるのを防ぎます(ダウンロードの雪崩を防止)。

  • TTL はキャッシュ時に固定され、サーバー起動時に変更されません
  • キャッシュファイルが TTL 内にある場合、再利用されます
  • TTL が期限切れの場合、ファイルは再ダウンロードされます

キャッシュ構造

~/.swag2mcp/cache/
├── a1b2c3d4e5f6a7b8.spec    # キャッシュされた spec ファイル
├── a1b2c3d4e5f6a7b8.meta    # メタデータ(ソース、TTL、キャッシュ日時)
├── b2c3d4e5f6a7b8c9.spec
├── b2c3d4e5f6a7b8c9.meta
└── ...

キャッシュキーは spec ファイルの URL またはパスから導出されます。各キャッシュファイルには、キャッシュ日時と有効期限を保存する .meta ファイルが付属します。

キャッシュの管理

強制リフレッシュ

swag2mcp update を実行してキャッシュ全体をクリアし、すべての spec ファイルを再ダウンロードします:

bash
swag2mcp update

設定を検証し、キャッシュをクリアし、すべてを新しくダウンロードします。

手動でキャッシュをクリア

bash
swag2mcp clean

キャッシュされたすべての spec ファイルと保存された API レスポンスを削除します。次回 MCP サーバーを起動すると、すべての spec が再ダウンロードされます。

自動クリーンアップ

MCP サーバーが起動するとき(swag2mcp mcp)、48 時間以上経過した保存済み API レスポンスが自動的に削除されます。これにより responses/ ディレクトリが無制限に増大するのを防ぎます。

重要な注意点

  • specs/ 内のローカルファイルはキャッシュされませんspecs/ ディレクトリ内の spec ファイルを直接編集した場合、キャッシュをクリアしなくても変更は即座に反映されます
  • リモート URL は常にキャッシュされますswag2mcp update または swag2mcp clean を実行する以外に、リモート URL のキャッシュをバイパスする方法はありません
  • キャッシュはローカルです — ディスクに保存され、マシン間で同期されません。マシン間で spec を転送するには swag2mcp exportswag2mcp import を使用してください