mcpField
E
extract

extract

github.com/tavily-aiデータ・データベース4914.8k 回インストール8 週間前に更新
リポジトリ

extract について

Extractは、指定URLから読みやすいコンテンツを取得するスキルです。URLの個別・一括処理に対応し、クエリに沿ったチャンク抽出や、JavaScriptで描画されるページ向けの高度な抽出を選べます。

主な機能

  1. 01最大20件のURLから抽出
  2. 02クエリによる結果の絞り込み
  3. 03基本・高度な抽出モード
  4. 04Markdownまたはプレーンテキストで出力
  5. 05画像URLを含める

活用シーン

  1. 01既知の記事URLから内容を取得
  2. 02ドキュメントから関連箇所を抽出
  3. 03JavaScript主体のページを処理
  4. 04複数ページを一括処理

MCP 対応

このスキルはTavily MCPサーバー経由のOAuthを使用するほか、Tavily APIキーも利用できます。

インストール

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

$npx skills add https://github.com/tavily-ai/skills --skill extract

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

同梱ファイルscripts/extract.sh

詳細

スキルの抽出

指定した URL からクリーンなコンテンツを抽出します。取得したいページが分かっている場合に最適です。

認証

このスクリプトは、Tavily MCP サーバー経由で OAuth を使用します。手動でのセットアップは不要です。初回実行時に、次の処理を行います。

  1. ~/.mcp-auth/ に既存のトークンがあるか確認します
  2. トークンが見つからない場合、OAuth 認証のためにブラウザーを自動的に開きます

注: 既存の Tavily アカウントが必要です。OAuth フローではログインのみがサポートされており、アカウントの作成はできません。アカウントをお持ちでない場合は、まず tavily.com で登録してください。

代替方法:API キー

API キーを使用する場合は、https://tavily.com で取得し、~/.claude/settings.json に追加してください。

{
  "env": {
    "TAVILY_API_KEY": "tvly-your-api-key-here"
  }
}

クイックスタート

スクリプトを使用する
./scripts/extract.sh '<json>'

例:

# Single URL
./scripts/extract.sh '{"urls": ["https://example.com/article"]}'

# Multiple URLs
./scripts/extract.sh '{"urls": ["https://example.com/page1", "https://example.com/page2"]}'

# With query focus and chunks
./scripts/extract.sh '{"urls": ["https://example.com/docs"], "query": "authentication API", "chunks_per_source": 3}'

# Advanced extraction for JS pages
./scripts/extract.sh '{"urls": ["https://app.example.com"], "extract_depth": "advanced", "timeout": 60}'
基本的な抽出
curl --request POST \
  --url https://api.tavily.com/extract \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "urls": ["https://example.com/article"]
  }'
クエリで対象を絞って複数の URL を指定する
curl --request POST \
  --url https://api.tavily.com/extract \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "urls": [
      "https://example.com/ml-healthcare",
      "https://example.com/ai-diagnostics"
    ],
    "query": "AI diagnostic tools accuracy",
    "chunks_per_source": 3
  }'

API リファレンス

エンドポイント
POST https://api.tavily.com/extract
ヘッダー
ヘッダー値
AuthorizationBearer <TAVILY_API_KEY>
Content-Typeapplication/json
リクエストボディ
フィールド型デフォルト説明
urls配列必須抽出する URL(最大 20 件)
query文字列null関連度に基づいてチャンクを再ランク付けします
chunks_per_source整数3URL ごとのチャンク数(1~5。query が必要)
extract_depth文字列"basic"basic または advanced(JS ページ向け)
format文字列"markdown"markdown または text
include_imagesブール値false画像 URL を含めます
timeout浮動小数点数変動最大待機時間(1~60 秒)
レスポンス形式
{
  "results": [
    {
      "url": "https://example.com/article",
      "raw_content": "# Article Title\n\nContent..."
    }
  ],
  "failed_results": [],
  "response_time": 2.3
}

抽出の深さ

深さ使用する場面
basicシンプルなテキスト抽出。高速です
advanced動的に生成されるページや JS でレンダリングされるページ、表、構造化データ

例

単一 URL の抽出
curl --request POST \
  --url https://api.tavily.com/extract \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "urls": ["https://docs.python.org/3/tutorial/classes.html"],
    "extract_depth": "basic"
  }'
クエリで対象を絞った抽出
curl --request POST \
  --url https://api.tavily.com/extract \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "urls": [
      "https://example.com/react-hooks",
      "https://example.com/react-state"
    ],
    "query": "useState and useEffect patterns",
    "chunks_per_source": 2
  }'
JavaScript を多用するページ
curl --request POST \
  --url https://api.tavily.com/extract \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "urls": ["https://app.example.com/dashboard"],
    "extract_depth": "advanced",
    "timeout": 60
  }'
一括抽出
curl --request POST \
  --url https://api.tavily.com/extract \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "urls": [
      "https://example.com/page1",
      "https://example.com/page2",
      "https://example.com/page3",
      "https://example.com/page4",
      "https://example.com/page5"
    ],
    "extract_depth": "basic"
  }'

ヒント

  • 1 回のリクエストにつき URL は最大 20 件です。それ以上のリストは分割してください
  • query と chunks_per_source を使用して、関連するコンテンツのみを取得してください
  • まず basic を試し、コンテンツが不足している場合は advanced に切り替えてください
  • ページの読み込みが遅い場合は timeout を長めに設定してください(最大 60 秒)
  • 抽出できなかった URL は failed_results を確認してください

コメント