mcpField
C
context7-auto-research

context7-auto-research

github.com/benedictking開発16564 回インストール28 週間前に更新
リポジトリ

context7-auto-research について

context7-auto-researchは、実装・設定・ドキュメントに関する質問を検知し、Context7 APIから最新のライブラリやフレームワークの資料を取得するスキルです。質問に応じて資料を調べるコーディングや調査のワークフロー向けです。

主な機能

  1. 01ライブラリ関連の質問を先行検知
  2. 02Context7でライブラリを検索・選択
  3. 03バージョンに応じたドキュメント取得
  4. 04API障害やレート制限への対処案内
  5. 05API利用不可時の学習データへのフォールバック

活用シーン

  1. 01機能実装中のAPI確認
  2. 02フレームワークの設定手順の調査
  3. 03特定バージョンの資料検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/benedictking/context7-auto-research --skill context7-auto-research

インストール後、Claude Code で/context7-auto-researchを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.env.example
.gitignore
context7-api.cjs
context7-fetcher.md

詳細

Context7 自動リサーチスキル

このスキルは、ライブラリやフレームワークに関する質問を検出すると、Context7 API から最新のドキュメントを自動的に取得し、古くなっている可能性のあるトレーニングデータではなく、最新情報に基づいた回答を提供します。

自動アクティベーションのトリガー

ユーザーのメッセージに次の内容が含まれている場合、このスキルは積極的にアクティベートされます。

実装に関する質問
  • 「どのように実装する」/「どう書く」/「どうする」
  • 「How do I...」/「How to...」/「How can I...」
  • 「Show me how to...」/「Write code for...」
設定とセットアップ
  • 「設定」/「セットアップ」/「インストール」
  • 「configure」/「setup」/「install」
  • 「初期化」/「initialize」
ドキュメントのリクエスト
  • 「ドキュメント」/「リファレンス」/「API」
  • 「documentation」/「docs」/「reference」
  • 「調べる」/「look up」
ライブラリ/フレームワークへの言及
  • React、Vue、Angular、Svelte、Solid
  • Next.js、Nuxt、Remix、Astro
  • Express、Fastify、Koa、Hono
  • Prisma、Drizzle、TypeORM
  • Supabase、Firebase、Clerk
  • Tailwind、shadcn/ui、Radix
  • あらゆる npm パッケージまたは GitHub リポジトリ
コード生成のリクエスト
  • 「コードを生成」/「作成して」/「作る」
  • 「generate」/「create」/「build」
  • 「実装する」/「機能を追加する」

リサーチの手順

トリガーされたら、次のワークフローに従ってください。

ステップ 1:ライブラリ情報の抽出

ユーザーの質問からライブラリ/フレームワークを特定します。

  • ライブラリ名(例:「react」、「next.js」、「prisma」)
  • バージョンが指定されている場合はそのバージョン(例:「React 19」、「Next.js 15」)
  • 言及されている特定の機能/API(例:「useEffect」、「middleware」、「relations」)
ステップ 2:ライブラリの検索

Task ツールを使って context7-fetcher サブスキルを呼び出します。

Task parameters:
- subagent_type: Bash
- description: "Search Context7 for library"
- prompt: node .claude/skills/context7-auto-research/context7-api.cjs search "<library-name>" "<user-query>"

例:

Task: Search for Next.js
Prompt: node .claude/skills/context7-auto-research/context7-api.cjs search "next.js" "How to configure middleware in Next.js 15"

応答形式:

{
  "libraries": [
    {
      "id": "/vercel/next.js",
      "name": "Next.js",
      "description": "The React Framework",
      "trustScore": 95,
      "versions": ["v15.1.8", "v14.2.0", "v13.5.0"]
    }
  ]
}

Task ツールを使う理由

  • context7-fetcher サブスキルの context: fork を使用します
  • API 呼び出しに会話履歴を引き継ぎません
  • トークンの消費を抑えます
ステップ 3:最適な候補の選択

検索結果から、次の基準に基づいてライブラリを選択します。

  1. ユーザーの質問との名前の完全一致
  2. 最も高い信頼スコア(品質/人気度を示します)
  3. ユーザーが指定した場合はバージョンの一致(例:「Next.js 15」→ v15.x を優先)
  4. コミュニティのフォークより公式パッケージを優先
ステップ 4:ドキュメントの取得

Task ツールを使って context7-fetcher サブスキルを呼び出します。

Task parameters:
- subagent_type: Bash
- description: "Fetch documentation from Context7"
- prompt: node .claude/skills/context7-auto-research/context7-api.cjs context "<library-id>" "<specific-query>"

例:

Task: Fetch Next.js middleware docs
Prompt: node .claude/skills/context7-auto-research/context7-api.cjs context "/vercel/next.js" "middleware configuration"

応答形式:

{
  "results": [
    {
      "title": "Middleware",
      "content": "Middleware allows you to run code before a request is completed...",
      "source": "docs/app/building-your-application/routing/middleware.md",
      "relevance": 0.95
    }
  ]
}

Task ツールを使う理由

  • API 呼び出しには独立したコンテキストを使用します
  • 会話履歴によるオーバーヘッドがありません
  • 実行が高速です
ステップ 5:回答への反映

取得したドキュメントを使って、次の内容を回答に反映します。

  1. 最新情報に基づいて正確に回答する
  2. ドキュメントのコード例を含める
  3. 関連する場合はバージョンを明記する
  4. 機能/API に関する背景情報を提供する

ヘルパースクリプトの使用方法

context7-api.cjs スクリプトには、次の 2 つのコマンドがあります。

ライブラリの検索
node context7-api.cjs search <libraryName> <query>
  • メタデータとともに一致するライブラリを返します
  • 最初のライブラリの特定に使用します
コンテキストの取得
node context7-api.cjs context <libraryId> <query>
  • 関連するドキュメントの抜粋を返します
  • ライブラリの選択後に使用します
環境のセットアップ

このスクリプトでは、API キーを設定する方法が 2 つあります。

オプション 1:.env ファイル(推奨)

スキルのディレクトリに .env ファイルを作成します。

# In .claude/skills/context7-auto-research/.env
CONTEXT7_API_KEY=your_api_key_here

サンプルからコピーできます。

cp .env.example .env
# Then edit .env with your actual API key
オプション 2:環境変数
export CONTEXT7_API_KEY="your-api-key"

優先順位: 環境変数 > .env ファイル

API キーの取得: context7.com/dashboard にアクセスして登録し、API キーを取得してください。

設定されていない場合、API は公開レート制限(より低いクォータ)を使用します。

ベストプラクティス

クエリの具体性
  • 関連性を高めるため、クエリパラメーターにはユーザーの質問全文を渡します
  • 具体的な機能名を含めます(例:「useEffect」だけでなく「useEffect cleanup」)
バージョンの考慮
  • ユーザーがバージョンに言及した場合は、バージョン固有のライブラリ ID を使用します
  • 例:/vercel/next.js ではなく /vercel/next.js/v15.1.8
エラー処理
  • ライブラリ検索で結果が見つからない場合は、ユーザーに伝え、代替案を提案します
  • API が失敗した場合はトレーニングデータに切り替えますが、情報が古くなっている可能性があることを伝えます
  • レート制限(429 エラー)には適切に対処します
回答の品質
  • ドキュメント全体をそのまま提示せず、関連する部分を抜き出します
  • 完全な回答に必要であれば、複数のドキュメントの抜粋を組み合わせます
  • 常に実用的なコード例を含めます

ワークフローの例

例 1:React Hook に関する質問

ユーザー:「React 19 で useEffect を使ってデータを取得するにはどうすればよいですか?」

スキルのアクション:

  1. トリガーを検出:「How do I use」+「useEffect」+「React 19」
  2. 検索:node context7-api.cjs search "react" "useEffect fetch data"
  3. 選択:/facebook/react/v19.0.0(バージョンが一致)
  4. 取得:node context7-api.cjs context "/facebook/react/v19.0.0" "useEffect data fetching"
  5. 現在の React 19 のパターン(該当する場合は use() フックの使用など)に基づいて回答します
例 2:Next.js の設定

ユーザー:「Next.js 15 のミドルウェアを設定する」

スキルのアクション:

  1. トリガーを検出:「配置」+「Next.js 15」+「中间件」
  2. 検索:node context7-api.cjs search "next.js" "middleware configuration"
  3. 選択:/vercel/next.js/v15.1.8
  4. 取得:node context7-api.cjs context "/vercel/next.js/v15.1.8" "middleware"
  5. Next.js 15 のミドルウェア設定について回答します
例 3:Prisma のリレーション

ユーザー:「Prisma で 1 対多のリレーションを定義する方法を教えてください」

スキルのアクション:

  1. トリガーを検出:「Show me how」+「Prisma」
  2. 検索:node context7-api.cjs search "prisma" "one-to-many relations"
  3. 選択:/prisma/prisma(最も高い信頼スコア)
  4. 取得:node context7-api.cjs context "/prisma/prisma" "one-to-many relations"
  5. Prisma のスキーマ例を提示して回答します

アーキテクチャ:コンテキストの分離

2 つのスキルに分ける理由

このスキルは、2 フェーズのアーキテクチャを採用しています。

  1. メインスキル(context7-auto-research) — 会話コンテキストを必要とします。

    • ユーザーメッセージ内のトリガーキーワードを検出します
    • ユーザーのクエリの意図を抽出します
    • 最適なライブラリ(バージョン、名前、信頼スコア)を選択します
    • ドキュメントを回答に組み込みます
  2. サブスキル(context7-fetcher) — 独立したコンテキスト(context: fork)を使用します。

    • Context7 への API 呼び出しを実行します
    • 純粋な HTTP リクエストのため、会話履歴は必要ありません
    • トークンの消費を抑えます
メリット
項目メインスキルサブスキル
コンテキスト会話全体フォーク(独立)
目的意図の分析API の実行
トークン使用量多い少ない
実行順次並列実行が可能
呼び出しフロー
User Query → Main Skill (detect + analyze)
                ↓
           Task Tool → Sub-Skill (API search)
                ↓
           Main Skill (select best match)
                ↓
           Task Tool → Sub-Skill (API fetch docs)
                ↓
           Main Skill (integrate + respond)

既存のスキルとの統合

このスキルは、既存の documentation-lookup スキルを補完します。

  • auto-research:先回りして自動的に有効化します
  • documentation-lookup:/context7:docs を使ってユーザーが手動で呼び出します

どちらも併用できます。シームレスな UX には auto-research、明示的なクエリには documentation-lookup を使用します。

パフォーマンスに関する考慮事項

  • 応答をキャッシュする:ドキュメントが変更される頻度は高くありません
  • 並列リクエスト:ユーザーが複数のライブラリについて質問した場合は、複数の Task 呼び出しを使って並列に取得します
  • タイムアウト処理:API 呼び出しには適切なタイムアウト(5~10 秒)を設定します
  • フォールバック戦略:API を利用できない場合は、免責事項を添えて学習データを使用します
  • コンテキストの効率化:サブスキルではフォークコンテキストを使用して、トークンの消費を最小限に抑えます

制限事項

  • API にアクセスするにはインターネット接続が必要です
  • Context7 API のレート制限の対象となります
  • 新しいライブラリや、あまり知られていないライブラリのドキュメントがない場合があります
  • ドキュメントの品質は、ソースリポジトリの構成に左右されます

コメント