はじめに
こんにちは、久保です。
2025年度初頭から認知も利用も増加し様々なベンダーやサービスからMCP(Model Context Protocol)サーバーが提供されています。
AWSも以下ページで様々なMCPサーバを提供しており、ご利用されている方も多いかもしれません。
Welcome to AWS MCP Servers | AWS MCP Servers
今回私がMacのローカルでMCPサーバーを利用していて意図せずストレージ逼迫の憂き目にあったため、皆様が同じ目に遭わない様に情報共有いたします。
起こったこと
Macのストレージで、uvのキャッシュ(/Users/<username>/.cache/uv
) が約80GBにも達していました。
結論
- 定期的に
uv cache prune
を実行して不要なキャッシュを掃除する
or - キャッシュが溜まらないよう
@latest
を使わない
原因
AWSが提供してくださっているMCPサーバはPython製が多く、ほとんどが uvx
を利用して起動するものとなっています。
例えばAWSのドキュメントを参照するためのMCPサーバーの場合以下のように設定するかと思います。
{ "mcpServers" : { "awslabs.aws-documentation-mcp-server" : { "command" : "uvx", "args" : [ "awslabs.aws-documentation-mcp-server@latest" ], "env" : { "AWS_DOCUMENTATION_PARTITION" : "aws", "FASTMCP_LOG_LEVEL" : "ERROR" } } } }
uvx
はパッケージをインストールすることなく実行ができる便利なコマンドで、実行時には自動的に仮想環境が作成され、キャッシュディレクトリに作成・保存します。
これは再実行時の起動コストを下げるためなのですが、実は @latest
でバージョン指定している場合はキャッシュが再利用されず、毎回キャッシュが作成されます。
そのため、ローカルMCPサーバーが起動するたびに(例えば毎日Macを起動する度に自動起動するならば毎日)、キャッシュが生成されます。
このキャッシュサイズは例えば上記のMCPですと約30MBになります。
これが蓄積することで、私のMacでは80GBものキャッシュが残存しておりました。
確認方法
uv cache dir
を実行することでキャッシュ場所を確認できます。
(<username>
の箇所はMacのユーザ名となります。)
Macの場合の例
% uv cache dir /Users/<username>/.cache/uv
Windowsでも同様に確認可能と思われます。
(%LOCALAPPDATA%\uv\cache
のはずです。)
対処
- 定期的に
uv cache prune
を実行して不要なキャッシュを掃除する
or - キャッシュが溜まらないよう
@latest
を使わない
となります。
@latestを使わず、バージョンを指定すればキャッシュが再利用されるのですが、毎回バージョンを追随するのも大変なので、私は定期的にキャッシュを掃除するようにしました。
なお、uv cache prune
は未使用のキャッシュを消します。
uv cache clean
とするとすべてのキャッシュを削除できます。
定期的に uv cache prune
を実行して不要なキャッシュを掃除する
crontabで1時間に1回定期実行
1 * * * * /path/to/uv cache prune
私はmiseでpythonやuvを管理しており、フルパスを直接指定できないため、以下のようなスクリプトを作って設定しております。
/Users/<username>/scripts/uv_prune.sh
#!/bin/zsh source ~/.zshrc uv cache prune
% chmod +x /Users/<username>/scripts/uv_prune.sh % crontab -e
1 * * * * /Users/<username>/scripts/uv_prune.sh
キャッシュが溜まらないよう @latest
を使わない
以下のようにバージョンを明示するだけです。
{ "mcpServers" : { "awslabs.aws-documentation-mcp-server" : { "command" : "uvx", "args" : [ "awslabs.aws-documentation-mcp-server@1.1.8" ], "env" : { "AWS_DOCUMENTATION_PARTITION" : "aws", "FASTMCP_LOG_LEVEL" : "ERROR" } } } }
おわりに
MCPサーバーに限りませんがuvxをご利用の場合はキャッシュの定期的なお掃除が必要なことにご注意いただければと思います。
※DockerでMCPサーバーをご利用の場合は定期的に docker system prune
などでお掃除されるのがよいと思います。
久保 賢二(執筆記事の一覧)
猫とAWSが好きです。