ドキュメントルックアップ (Context7) は何をしますか?
ユーザーがライブラリ、フレームワーク、APIについて質問した場合、トレーニングデータに頼らず、Context7 MCP(ツール resolve-library-id と query-docs)を介して最新のドキュメントを取得します。
コアコンセプト
- Context7: ライブドキュメントを公開するMCPサーバーです。ライブラリやAPIについてはトレーニングデータの代わりにこれを使用します。
- resolve-library-id: ライブラリ名とクエリから、Context7互換のライブラリID(例:
/vercel/next.js)を返します。 - query-docs: 指定されたライブラリIDと質問に対して、ドキュメントとコードスニペットを取得します。有効なライブラリIDを取得するため、必ず最初にresolve-library-idを呼び出してください。
いつ使うか
以下の場合に有効化します:
- ユーザーがセットアップや設定に関する質問をする(例:「Next.jsのミドルウェアを設定するには?」)
- ライブラリに依存するコードを要求する(「Prismaで○○のクエリを書いて」)
- APIやリファレンス情報が必要である(「Supabaseの認証メソッドは何ですか?」)
- 特定のフレームワークやライブラリに言及する(React, Vue, Svelte, Express, Tailwind, Prisma, Supabase など)
このスキルは、リクエストがライブラリ、フレームワーク、APIの正確で最新の動作に依存する場合に使用してください。Context7 MCPが設定されているすべての環境(例:Claude Code、Cursor、Codex)で適用されます。
仕組み
ステップ 1:ライブラリIDを解決する
resolve-library-id MCPツールを以下のパラメータで呼び出します:
- libraryName: ユーザーの質問から抽出したライブラリまたは製品名(例:
Next.js、Prisma、Supabase)。 - query: ユーザーの質問全体。これにより結果の関連性ランキングが向上します。
ドキュメントを問い合わせる前に、Context7互換のライブラリID(形式:/org/project または /org/project/version)を取得する必要があります。このステップで有効なライブラリIDを取得せずにquery-docsを呼び出さないでください。
ステップ 2:最適な一致を選択する
解決結果から、以下の基準で1つの結果を選びます:
- 名前の一致: ユーザーが尋ねたものと完全一致または最も近いものを優先します。
- ベンチマークスコア: スコアが高いほどドキュメント品質が良いことを示します(100が最高)。
- ソースの評判: 可能であれば評判がHighまたはMediumのソースを優先します。
- バージョン: ユーザーがバージョンを指定した場合(例:「React 19」「Next.js 15」)、バージョン固有のライブラリID(例:
/org/project/v1.2.0)がリストにあればそれを優先します。
ステップ 3:ドキュメントを取得する
query-docs MCPツールを以下のパラメータで呼び出します:
- libraryId: ステップ2で選択したContext7ライブラリID(例:
/vercel/next.js)。 - query: ユーザーの具体的な質問やタスク。関連性の高いスニペットを得るために具体的にしてください。
制限:1つの質問につき、query-docs(またはresolve-library-id)を3回以上呼び出さないでください。3回の呼び出し後も答えが不明確な場合は、その不確実性を述べ、推測するのではなく持っている最良の情報を使用してください。
ステップ 4:ドキュメントを活用する
- 取得した最新情報を使ってユーザーの質問に回答します。
- 役立つ場合は、ドキュメントから関連するコード例を含めます。
- 重要な場合はライブラリやバージョンを引用します(例:「Next.js 15では...」)。
例
例:Next.js ミドルウェア
- resolve-library-id を
libraryName: "Next.js"、query: "Next.js ミドルウェアを設定するには?"で呼び出します。 - 結果から、名前とベンチマークスコアに基づいて最適な一致(例:
/vercel/next.js)を選びます。 - query-docs を
libraryId: "/vercel/next.js"、query: "Next.js ミドルウェアを設定するには?"で呼び出します。 - 返されたスニペットとテキストを使って回答します。関連性があれば、ドキュメントの最小限の
middleware.tsの例を含めます。
例:Prisma クエリ
- resolve-library-id を
libraryName: "Prisma"、query: "リレーションを使ってクエリするには?"で呼び出します。 - 公式の Prisma ライブラリID(例:
/prisma/prisma)を選択します。 - その
libraryIdとクエリで query-docs を呼び出します。 - ドキュメントの短いコードスニペットと共に、Prisma Client のパターン(例:
includeやselect)を返します。
例:Supabase 認証メソッド
- resolve-library-id を
libraryName: "Supabase"、query: "認証メソッドは何ですか?"で呼び出します。 - Supabase ドキュメントのライブラリIDを選びます。
- query-docs を呼び出します。取得したドキュメントから認証メソッドを要約し、最小限の例を示します。
ベストプラクティス
- 具体的に: 可能な限りユーザーの質問全体をクエリとして使用し、関連性を高めます。
- バージョン認識: ユーザーがバージョンに言及した場合、解決ステップでバージョン固有のライブラリIDが利用可能であればそれを使用します。
- 公式ソースを優先: 複数の一致がある場合、コミュニティフォークよりも公式またはプライマリパッケージを優先します。
- 機密データを含めない: Context7 に送信するクエリから API キー、パスワード、トークン、その他のシークレットを編集します。resolve-library-id や query-docs に渡す前に、ユーザーの質問にシークレットが含まれている可能性があるものとして扱います。