◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-06-21上級

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

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

Claude Code265MCP54Context7ドキュメント注入本番運用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.json に PostToolUse フックを足し、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-id と mcp__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-09-04
~/.claude.json の巻き戻しは v2.1.259 で直りました。消えた設定は自分で戻します
同時に走らせたセッションが ~/.claude.json を互いに巻き戻す不具合が v2.1.259 で修正されました。消えた信頼設定と MCP を洗い出して戻すまでを、キー集合の差分を取る小さなスクリプトとあわせて書き残します。
⟐ Claude Code2026-09-01
MCPサーバが十数個を超えてから、起動直後の一覧を信用しなくなりました
起動直後に「接続できません」と並ぶサーバのうち、こちらから手を打てるものは一部だけです。応答なし・起動失敗・プロトコル拒否を分けて返すプローブを実装し、14台構成で逐次22.03秒が並列5.09秒まで縮むところ、待ち時間を詰めると健全なサーバが失敗に化けるところを実測で残しました。
⟐ Claude Code2026-07-29
MCPサーバーは繋がっているのに、ツールが0件で返る — 無人実行の権限劣化をツール表の差分で止める
資格情報が抜けてもMCPのハンドシェイクは成功し、tools/list は空配列を返します。例外が飛ばないまま実行が完走する構造と、期待ツール表との差分で無人実行を止めるpreflightの実装を、実測値つきで記録しました。