ドキュメント参照 (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に渡す前に、ユーザーの質問に機密情報が含まれている可能性があることを考慮してください。