mcpField
T
tavily-web

tavily-web

github.com/benedictking生産性2400 回インストール27 週間前に更新
リポジトリ

tavily-web について

tavily-web は、ウェブ検索、ページ抽出、クロール、サイトマップ作成、構造化リサーチ向けに Tavily のエンドポイントを選ぶスキルです。ユーザーの依頼から API ペイロードを組み立て、サブスキルに HTTP 呼び出しを任せるエージェントを対象とします。

主な機能

  1. 01意図に応じたエンドポイント選択
  2. 02ウェブ検索と情報源の発見
  3. 03ページ抽出とサイトのクロール
  4. 04サイトページ構成のマッピング
  5. 05スキーマ指定のリサーチ依頼
  6. 06独立したサブスキルで API 実行

活用シーン

  1. 01最新情報と情報源の検索
  2. 02指定 URL の内容の要約
  3. 03ウェブサイト内の関連ページの発見
  4. 04指定スキーマに沿った調査結果の作成

インストール

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

$npx skills add https://github.com/benedictking/tavily-web --skill tavily-web

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

同梱ファイル

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

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

詳細

Tavily Web スキル

トリガー条件とエンドポイントの選択

ユーザーの意図に基づいて Tavily のエンドポイントを選択します。

  • search:「ウェブを検索する/最新情報を調べる/情報源を探す/リンクを見つける」必要がある場合
  • extract:URL が指定され、コンテンツを抽出/要約する必要がある場合
  • crawl:指示に従ってサイト内をたどり、ページのコンテンツをスクレイピングする必要がある場合
  • map:ページのコンテンツ全体やメタデータではなく、サイトのページ一覧/構造を調べる必要がある場合
  • research:指定された output_schema に従って構造化された調査結果を作成する必要がある場合

推奨アーキテクチャ(メインスキル+サブスキル)

このスキルは、2 段階のアーキテクチャを使用します。

  1. メインスキル(現在のコンテキスト):ユーザーの質問を理解 → エンドポイントを選択 → JSON ペイロードを組み立てる
  2. サブスキル(フォークされたコンテキスト):会話履歴によるトークンの浪費を避け、HTTP 呼び出しの実行のみを担当する

実行方法

Task ツールを使って tavily-fetcher サブスキルを呼び出し、コマンドと JSON(stdin)を渡します。

Task parameters:
- subagent_type: Bash
- description: "Call Tavily API"
- prompt: cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs <search|extract|crawl|map|research>
  { ...payload... }
  JSON

ペイロードの例(指定された curl に基づく)

1) ウェブを検索する
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs search
{
  "query": "who is Leo Messi?",
  "auto_parameters": false,
  "topic": "general",
  "search_depth": "basic",
  "chunks_per_source": 3,
  "max_results": 1,
  "time_range": null,
  "start_date": "2025-02-09",
  "end_date": "2025-12-29",
  "include_answer": false,
  "include_raw_content": false,
  "include_images": false,
  "include_image_descriptions": false,
  "include_favicon": false,
  "include_domains": [],
  "exclude_domains": [],
  "country": null,
  "include_usage": false
}
JSON
2) ウェブページのコンテンツを抽出する
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs extract
{
  "urls": "https://en.wikipedia.org/wiki/Artificial_intelligence",
  "query": "<string>",
  "chunks_per_source": 3,
  "extract_depth": "basic",
  "include_images": false,
  "include_favicon": false,
  "format": "markdown",
  "timeout": "None",
  "include_usage": false
}
JSON
3) ウェブページをクロールする
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs crawl
{
  "url": "docs.tavily.com",
  "instructions": "Find all pages about the Python SDK",
  "chunks_per_source": 3,
  "max_depth": 1,
  "max_breadth": 20,
  "limit": 50,
  "select_paths": null,
  "select_domains": null,
  "exclude_paths": null,
  "exclude_domains": null,
  "allow_external": true,
  "include_images": false,
  "extract_depth": "basic",
  "format": "markdown",
  "include_favicon": false,
  "timeout": 150,
  "include_usage": false
}
JSON
4) ウェブページをマップする
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs map
{
  "url": "docs.tavily.com",
  "instructions": "Find all pages about the Python SDK",
  "max_depth": 1,
  "max_breadth": 20,
  "limit": 50,
  "select_paths": null,
  "select_domains": null,
  "exclude_paths": null,
  "exclude_domains": null,
  "allow_external": true,
  "timeout": 150,
  "include_usage": false
}
JSON
5) 調査タスクを作成する
cat <<'JSON' | node .claude/skills/tavily-web/tavily-api.cjs research
{
  "input": "What are the latest developments in AI?",
  "model": "auto",
  "stream": false,
  "output_schema": {
    "properties": {
      "company": {
        "type": "string",
        "description": "The name of the company"
      },
      "key_metrics": {
        "type": "array",
        "description": "List of key performance metrics",
        "items": {
          "type": "string"
        }
      },
      "financial_details": {
        "type": "object",
        "description": "Detailed financial breakdown",
        "properties": {
          "operating_income": {
            "type": "number",
            "description": "Operating income for the period"
          }
        }
      }
    },
    "required": [
      "company"
    ]
  },
  "citation_format": "numbered"
}
JSON

環境変数と API キー

API キーを設定する方法は 2 つあります(優先順位:環境変数 > .env)。

  1. 環境変数:TAVILY_API_KEY
  2. .env ファイル:.claude/skills/tavily-web/.env に配置します。.env.example からコピーできます。

コメント