0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Claude Code 2.1.121】ついにMCPの自動読み込みが来た — `alwaysLoad`で「毎回MCP読み込ませる作業」が消える

0
Posted at

対象読者: Claude Codeユーザー、MCP連携でエージェント運用している開発者、医療・業務システムでローカルLLM+MCPを検討中の方
読了時間: 約7分


この記事のポイント(3行要約)

  • Claude Code v2.1.121(2026年4月28日リリース)で、MCPサーバーの設定に alwaysLoad オプションが追加された
  • alwaysLoad: true にすると、そのMCPサーバーのツールがtool-search deferral(遅延読み込み)をスキップして常時利用可能になる
  • VSCode拡張で /context がネイティブのトークン使用量ダイアログで開けるようになり、コンテキスト(AIが一度に覚えていられる情報量)が今どれくらい埋まっているかが見えるようになった

はじめに

筆者は普段、医療現場向けのローカルLLM環境(Ollama+Qwen2.5系)と、業務側のMCPサーバー(GoogleドライブやNotionなどのコネクタ)を組み合わせた開発をClaude Codeで進めている。

そこで地味に手間だったのが、**MCPサーバーのツールが「使うときに都度読み込まれる」**仕様だった。たとえばコード編集中に「あ、Notionの仕様書を見たい」と思ったタイミングで、Claude側がまずツール検索(tool-search)を挟む。これは遅延読み込みでトークン消費を抑える設計のため理にかなっているのだが、毎回MCPを呼び出す前提の運用では明確にオーバーヘッドになっていた。

このストレスを直接解消するのが、今回の alwaysLoad オプションだ。


🔰 そもそも「コンテキスト」って何?(初心者向け)

今回のアップデートを理解するうえで、もう1つだけ知っておきたい言葉が「コンテキスト(context)」だ。

LLM(ChatGPTやClaudeのような大規模言語モデル)には、一度に処理できる情報量に上限がある。これを「コンテキストウィンドウ」と呼ぶ。

身近なたとえで言うと「作業机の広さ」に近い。

  • 机が広ければ、参考書も資料もメモも全部広げて作業できる
  • 机が狭いと、何かを置くたびに別のものをしまわないといけない

LLMにとっての「机の上」が、まさにコンテキストだ。ここに乗っているのは、たとえば次のようなものになる。

コンテキストに乗るもの たとえ
システムプロンプト(AIへの基本指示) 仕事のマニュアル
あなたの過去のメッセージ これまでの会話メモ
Claudeの過去の返答 自分が書いた下書き
開いているファイルの内容 参考書
MCPツールの定義 道具一覧表
CLAUDE.md などのプロジェクト設定 社内ルールブック

これらすべてを足したものがそのセッションのコンテキスト使用量で、上限に近づくと「もう新しい情報は乗りません」となり、AIが過去の会話を忘れたり、応答が劣化したりする。

数字で言うとどれくらい?

Claudeのモデルによってサイズは異なるが、たとえば最新の Claude Opus 4.7 は最大100万トークンのコンテキストウィンドウに対応している(出典:WotAI解説、URL:https://wotai.co/blog/claude-code-2-1-121 )。

「トークン」は文字数とほぼ同じ感覚で捉えてOKで、英語だとざっくり1単語=1トークン、日本語だと1文字あたり1〜2トークン程度を消費する。100万トークンというのは、大型の書籍を丸ごと数冊読み込ませるくらいの容量だ。

/context コマンドで「机の埋まり具合」が見える

Claude Codeには、現在のコンテキスト使用量を確認するための /context コマンドが用意されている。これを実行すると、

  • 全体のうち何%が埋まっているか
  • どの種類の情報(システム、会話履歴、ツール定義など)がどれくらい占めているか

が表示される。

そして今回のv2.1.121では、VSCode拡張で /context がネイティブのトークン使用量ダイアログとして開くようになった(出典:公式リリースノート v2.1.121)。これまでテキストで返ってきていた情報が、VSCode上の専用UIで見られるようになったということだ。

補足:ターミナル版のClaude Codeでも /context は引き続き利用可能。VSCode版の表示が刷新された、と理解してOK。

コンテキストとMCPの関係

ここで本題に戻る。MCPサーバーのツール定義もコンテキストに乗るのがポイントだ。

たとえば「Notion操作用MCP」を接続すると、そのMCPが提供する全ツールの「名前・説明・引数定義」がコンテキストに常駐する。これが意外とトークンを食う。

そのため Claude Code は、起動時にすべてのMCPツール定義を読み込むのではなく、必要なときだけ検索して呼び出す仕組み(tool-search deferral=遅延読み込み)を採用してきた。

しかし、頻繁に使うMCPまで毎回検索するのは逆に非効率 — というのが今回の alwaysLoad 追加の背景だ。

つまり今回のアップデートは、**「コンテキストを節約するために遅延読み込みする」という従来の方針に対して、「ユーザーが用途別に節約 vs 常時利用を選べるようにする」**という設計変更だと理解すると腑に落ちる。


🔰 そもそも「MCP」って何?(初心者向け)

MCP(Model Context Protocol)は、AnthropicがオープンソースとしてリリースしたAIエージェント向けのプロトコルで、ChatGPT・Claudeなどの大規模言語モデル(LLM)と外部のサービス(Slack、Notion、GitHubなど)を共通のインターフェースでつなぐ仕組みだ。

身近なたとえで言うと「USBの規格」に近い。各メーカーが独自の充電端子を作っていた時代から、USB-Cで統一された世界に変わったのと同じように、MCPは**LLMから外部ツールを呼び出すときの「共通端子」**を定義している。

これによって、開発者は「Claude専用のNotion連携プラグイン」「Cursor専用のNotion連携プラグイン」を別々に作る必要がなくなり、MCPサーバーを1個書けば多くのLLMクライアントから使えるようになる。

「tool-search deferral」(遅延読み込み)って何?

Claude Codeは、起動時にすべてのMCPツールを読み込むのではなく、ユーザーの指示内容に応じて必要そうなツールだけをその場で検索(tool-search)して読み込む仕組みを持っている。

これはコンテキストウィンドウ(LLMが一度に処理できる情報量)の節約のために設計された仕組みで、ツール定義は意外とトークンを食うため、合理的な選択だった。

ただし、ほぼ毎回呼ぶようなMCPサーバー(例:自分のNotionワークスペース、社内のRAGエンドポイント等)の場合は、毎回検索フェーズを挟むほうがむしろ無駄になっていた。


🔧 alwaysLoad の使い方(中級者向け)

公式リリースノートから引用すると、このアップデートは次のように記述されている。

Added alwaysLoad option to MCP server config — when true, all tools from that server skip tool-search deferral and are always available

出典:Release v2.1.121 · anthropics/claude-code(2026年4月28日リリース)
URL:https://github.com/anthropics/claude-code/releases/tag/v2.1.121

つまり、MCPサーバーごとに「常時ロード」するか「必要時に検索でロード」するかを選べるようになった、ということだ。

設定例(イメージ)

.mcp.json または ~/.claude/settings.json のMCP設定部分に、以下のようにオプションを追加する形になる。

{
  "mcpServers": {
    "my-notion": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "alwaysLoad": true
    },
    "github-rare-use": {
      "command": "...",
      "args": ["..."]
    }
  }
}

上記の例では、my-notion は毎回必ず読み込まれ、github-rare-use は従来どおり必要時にtool-searchで呼び出される。

⚠️ 注意:実際のキー名・スキーマは公式ドキュメントのアップデートを確認してから本番環境に適用してください。本記事執筆時点(2026年4月29日)でリリースされたばかりのオプションであり、.claude/settings.json のフォーマットは今後変わる可能性があります。

トレードオフを正しく理解する

この機能は「便利そうだから全部 alwaysLoad: true にしよう」と判断するのは推奨されない。なぜなら:

設定 メリット デメリット
alwaysLoad: true tool-searchの待ち時間がゼロ。エージェントの応答が速い コンテキストウィンドウ(トークン)を常に消費する
デフォルト(遅延読み込み) 必要なときだけロードされ、トークン効率が良い 呼び出し時に検索のオーバーヘッドが発生する

筆者の見解として、「ほぼ毎セッション呼ぶサーバー」だけを alwaysLoad: true に指定するのが現実的な使い分けになる。WotAIの解説でも、小規模なサーバーで頻繁に呼び出す場合は遅延読み込みのトークン削減効果よりも往復のオーバーヘッドのほうが大きいため、alwaysLoadが有効になる、というトレードオフが指摘されている。


🎯 v2.1.121 のその他の重要な変更点(上級者向け)

alwaysLoad だけが話題になっているが、公式リリースノートを読むと実は変更点が約30項目あり、運用面で効くものが多い。一次情報から重要なものを抜粋する(出典:Release v2.1.121 公式リリースノート)。

MCP・プラグイン関連

  • claude plugin prune コマンドが追加された。自動インストールされた孤児プラグイン依存を削除できる。plugin uninstall --prune でカスケード削除も可能
  • PostToolUseフックが、すべてのツールの出力を hookSpecificOutput.updatedToolOutput で置き換え可能になった(以前はMCP限定だった)
  • 起動時にエラーが発生したMCPサーバーは、自動的に最大3回までリトライする(以前は接続失敗のまま)
  • claude.aiのコネクタで同じURLが重複登録された場合、自動で重複排除されるようになった

VSCode拡張の改善

  • /context がVSCode上でネイティブのトークン使用量ダイアログとして開くようになった。これによりコンテキスト使用量(机の埋まり具合)を専用UIで一目で確認できる
  • 音声入力が accessibility.voice.speechLanguage の設定を尊重するようになった

長時間セッションでは、コンテキストが上限に近づくとAIの応答が劣化したり、/compact(会話の要約圧縮)が走って情報が削られたりする。/context を定期的に開いて埋まり具合を把握する習慣がつけば、**「いつ /clear で新しいセッションに切り替えるか」「どのファイルを @ で読み込むか」**をより合理的に判断できるようになる。

メモリリーク修正

これは地味だが運用に直結する重要な修正だ。

  • 多数の画像を処理するセッションでRSSメモリがGB単位で無制限に増加する問題が修正された
  • /usage コマンドで、長い会話履歴を持つマシンで約2GBのメモリリークが起きていた問題が修正された
  • 長時間動作するツールが進捗イベントを発しないときのメモリリークが修正された

長時間セッションで Claude Code を使っているユーザーは、これだけでもアップデートする価値がある。

セキュリティ・権限関連

  • --dangerously-skip-permissions を使っていても、.claude/skills/.claude/agents/.claude/commands/ への書き込みでは権限プロンプトが出なくなった(=スキル・エージェント・コマンドの編集が滞らない)
  • NO_PROXY 環境変数が managed-settings.json 経由でも全HTTPクライアントで尊重されるようになった
  • Microsoft 365 MCP の OAuth 認証で prompt パラメータが重複していた不具合が修正された

公式記述と「速報的な紹介」のあいだに気をつけたいこと

筆者の経験として、Claude Code関連のアップデートは X(旧Twitter)等で速報的に流れる際に、以下のような誇張表現がつきやすい。

速報の表現 実態に近い表現
「MCPの自動読み込みが来た!」 特定のサーバーに対して自動読み込みを選べるオプションが追加された」
「毎回MCP読み込ませてた作業が消滅」 alwaysLoad: true を指定したサーバーについては、tool-search経由のロードが不要になった」
「Claude Codeが一段階進化」 「v2.1.121で約30項目の改善・修正があり、その1つに alwaysLoad がある」

公式リリースノートの英文を素直に読むと、alwaysLoadサーバー単位で設定するオプションであって、全MCPが自動ロードに切り替わったわけではない点には注意したい。

ここを誤解すると、「すべて alwaysLoad: true にしたらコンテキストが圧迫されてエージェントの応答が劣化した」というケースが出てくる可能性がある。


筆者がこの機能をどう使うか

筆者の見解として、現在の自分の運用では以下のように使い分ける予定だ。

  • alwaysLoad: true を指定するMCPサーバー

    • ほぼ毎セッション使うコード検索系のMCP
    • プロジェクト固有のドキュメントRAG(Notion、社内Wiki等)
  • デフォルト(遅延読み込み)のままにするもの

    • たまにしか使わないGoogle Drive操作系
    • 用途が限定的なメンテナンス系MCP(prune系のコマンド等)

ローカルLLM環境(Qwen2.5 32B + Ollama)と組み合わせて医療系のクライアント向けに「院内完結型エージェント」を試作している立場としては、コンテキスト効率とレスポンスのバランスを設計者が選べるようになったのは大きい。

特に、医療用途のように「1セッション内でのレイテンシをできるだけ短くしたい」要件と、「外部サーバーに送るデータ量を最小化したい」要件が両立するシナリオでは、alwaysLoad の選択肢があることでアーキテクチャ設計の自由度が一段上がる。


まとめ

  • LLMの「コンテキスト(机の広さ)」という概念を理解しておくと、alwaysLoad のトレードオフが腑に落ちる
  • Claude Code v2.1.121 は alwaysLoad オプションの追加により、MCPサーバー単位で「常時ロード/遅延ロード」を選べるようになった
  • ただし全MCPが自動になったわけではない。設計者が「机のどこに何を常駐させるか」を選ぶ必要がある
  • VSCode拡張では /context がネイティブUIで開けるようになり、コンテキスト使用量の可視化が大幅に改善された
  • 同リリースには claude plugin prune、PostToolUseフックの拡張、複数のメモリリーク修正など、地味ながら運用直結の改善が多数含まれている
  • 長時間セッションで使っている人ほど、メモリリーク修正だけでも更新する価値がある

「MCPサーバーをいくつ繋いでも毎回スムーズ」という未来に一歩近づいた、と感じている。


参考資料・出典


著者プロフィール

臨床工学技士 × AIエンジニア

医療現場の臨床工学技士としての経験をベースに、ローカルLLM・MCP・医療AIの実装を行っている。Claude Code・Ollama・Qwen2.5 などを組み合わせた院内完結型のエージェント設計が主戦場。


本記事は2026年4月29日時点の公式リリースノートに基づいて執筆しています。設定スキーマ等は今後のアップデートで変更される可能性があるため、本番運用に適用する際は最新の公式ドキュメントを確認してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?