CLAUDE LABEN
VERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になりますVERSION — 8月10日に v2.1.227 が出ていました。新機能はなく、プラン判定と CI まわりの不具合修正が中心ですAUTO — 8月14日の既定化まで残り2日です。Pro・Max・Team で Claude Code の auto モードが既定で有効になりますCI — claude-code-action で allowed_non_write_users を指定すると GitHub ホストランナー上の Bash が全て失敗していた問題が直りましたBILLING — 期限切れトークンで開始したセッションが加入プランを取り違え、Max 利用者に使用クレジットの有効化を促していた不具合も解消していますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日で、残り5日ですPRICE — Sonnet 5 のプロモ価格 $2/$10 per Mtok は8月31日までで、9月1日から $3/$15 per Mtok になります
記事一覧/Claude Code
Claude Code/2026-06-21上級

Context7 を入れても Claude Code が古いコードを書くとき — 注入が効いているかを運用で確かめる

Context7 MCP を入れたのに古い API のコードが返る——その多くはドキュメント注入が静かに不発になっています。注入が効いたかを毎回確かめる検証フック、ライブラリ単位のバージョン固定、未対応ライブラリへのフォールバックを運用の実装メモとしてまとめます。

Claude Code217MCP50Context7ドキュメント注入本番運用36

プレミアム記事

Context7 MCP を入れたのに、Claude Code が params を同期オブジェクトとして受け取る Next.js 14 時代のコードを返してきた——導入直後の私が最初にぶつかったのは、これでした。use context7 と末尾に書いたはずなのに、生成されたコードは以前と変わりません。

ドキュメント注入の MCP は、入れれば終わりではありません。やっかいなのは、注入が不発でも何のエラーも出ないことです。Claude は学習済みの知識で淡々とコードを書き、こちらは「Context7 が効いている前提」で受け取ってしまう。個人開発で半年ぶんの自動投稿パイプラインを一人で回していると、この「静かな不発」が積み重なって、あとで動かないコードの手直しに時間を取られます。私自身、最初の数日はこの不発に気づけませんでした。

この記事は Context7 のセットアップ手順ではなく、注入が本当に効いているかを運用でどう確かめ、効かなかったときにどう拾うかの実装メモです。

「use context7」と書いても、参照されないことがある

まず押さえておきたいのは、use context7 は強制ではなく示唆だということです。Claude がそのターンで「ドキュメントを引く必要はない」と判断すれば、ツールは呼ばれません。短い質問、抽象的な依頼、あるいはコンテキストに既にそれらしい情報がある場合に起こりやすい挙動です。

つまり、注入が効いたかどうかはツール呼び出しが実際に発火したかを見るのが一番確実です。Claude Code には MCP の状態を確認する /mcp がありますが、これは接続の有無を見るもので、各ターンで呼ばれたかまでは追えません。そこで、フックでツール呼び出しを記録します。

~/.claude/settings.jsonPostToolUse フックを足し、Context7 のツールが呼ばれたらログに残します。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "mcp__context7__.*",
        "hooks": [
          {
            "type": "command",
            "command": "echo \"$(date -Iseconds) context7 called in $CLAUDE_PROJECT_DIR\" >> ~/.claude/context7-calls.log"
          }
        ]
      }
    ]
  }
}

matcher は MCP ツール名の正規表現です。Context7 のツールは mcp__context7__resolve-library-idmcp__context7__get-library-docs の2つなので、mcp__context7__.* で両方を拾えます。コード生成を頼んだあとにこのログが伸びていなければ、その回は注入が不発だったということです。

数日ログを眺めると、自分の頼み方の癖が見えてきます。私の場合「このコンポーネントをリファクタして」のような曖昧な依頼でツールが呼ばれていないことが多く、ライブラリ名を主語に置くと安定して発火するようになりました。

取得されるドキュメントにも、当たり外れがある

ツールが呼ばれていても安心はできません。Context7 は内部で2段階——まず resolve-library-id でライブラリを特定し、次に get-library-docs で本文を取得します。この特定段階で、似た名前の別ライブラリや、古いメジャーバージョンのページに解決されることがあります。

ここで効くのが、曖昧さを残さない指定です。ライブラリ名だけでなく、Context7 が内部で使う ID 形式(/組織名/リポジトリ名、必要ならバージョンまで)を直接渡すと、解決のぶれが減ります。

Next.js 15 の App Router で動的ルートの params を扱うコードを書いてください。
ライブラリは /vercel/next.js のバージョン 15 系のドキュメントを参照してください。
use context7

変更の速いライブラリほど、このバージョン明示の効果が大きく出ます。Tailwind CSS の v3 と v4 のように設定方式が根本から変わったケースでは、バージョンを言わないと旧版の tailwind.config.js 前提のコードが返りがちです。逆に Day.js のような安定したライブラリでは、ここまで神経質になる必要はありません。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Context7 のツール呼び出しが起きたかをフックで記録し、注入の不発を検知する仕組み
取得ドキュメントのバージョンを固定し、変更の速いライブラリだけに対象を絞る運用ルール
未対応ライブラリに当たったときのフォールバックと、生成コードを毎回検証する小さなハーネス
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-07-29
MCPサーバーは繋がっているのに、ツールが0件で返る — 無人実行の権限劣化をツール表の差分で止める
資格情報が抜けてもMCPのハンドシェイクは成功し、tools/list は空配列を返します。例外が飛ばないまま実行が完走する構造と、期待ツール表との差分で無人実行を止めるpreflightの実装を、実測値つきで記録しました。
Claude Code2026-07-27
許可リストに書いた環境変数は誰の環境で展開されるのか — Managed MCP の実効ポリシーを指紋で確かめる
Managed MCP の allowlist・denylist に書いた環境変数参照の解決元が、起動時環境と managed-settings の env に変わりました。同じ設定ファイルが環境ごとに別のポリシーになる仕組みを手元で再現し、実効ポリシーを指紋で突き合わせる起動前チェックを組みました。
Claude Code2026-07-18
宣言したMCPサーバーが一覧から消えていた — 名前空間をベンダーと共有する前提で設定を組み直す
MCPサーバー名がベンダーに予約され、自分の .mcp.json の宣言が黙って無効になる。無人実行で気づけないこの欠落を、宣言と実体を突き合わせる preflight と接頭辞規約で落とす設計をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →