mcpField
S
search

search

github.com/tavily-ai生産性49111.9k 回インストール8 週間前に更新
リポジトリ

search について

LLMでの利用に適した形式で検索結果を返すウェブ検索スキルです。スクリプトでは結果数、検索深度、期間、ドメインなどを指定できます。

主な機能

  1. 01ウェブ検索
  2. 02結果数と検索深度の指定
  3. 03期間による絞り込み
  4. 04ドメインの包含と除外
  5. 05ページ全文の取得

活用シーン

  1. 01最近の技術情報の検索
  2. 02信頼できるドメイン内の検索
  3. 03クエリに関連するページ内容の取得

MCP 対応

スクリプトはTavily MCPサーバー経由のOAuthで認証し、代替手段としてAPIキーも利用できます。

インストール

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

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

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

同梱ファイルscripts/search.sh

詳細

検索スキル

ウェブを検索し、LLM での利用に最適化された関連性の高い結果を取得します。

認証

このスクリプトでは、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/search.sh '<json>'

例:

# Basic search
./scripts/search.sh '{"query": "python async patterns"}'

# With options
./scripts/search.sh '{"query": "React hooks tutorial", "max_results": 10}'

# Advanced search with filters
./scripts/search.sh '{"query": "AI news", "time_range": "week", "max_results": 10}'

# Domain-filtered search
./scripts/search.sh '{"query": "machine learning", "include_domains": ["arxiv.org", "github.com"], "search_depth": "advanced"}'
基本検索
curl --request POST \
  --url https://api.tavily.com/search \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "query": "latest developments in quantum computing",
    "max_results": 5
  }'
詳細検索
curl --request POST \
  --url https://api.tavily.com/search \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "query": "machine learning best practices",
    "max_results": 10,
    "search_depth": "advanced",
    "include_domains": ["arxiv.org", "github.com"]
  }'

API リファレンス

エンドポイント
POST https://api.tavily.com/search
ヘッダー
ヘッダー値
AuthorizationBearer <TAVILY_API_KEY>
Content-Typeapplication/json
リクエストボディ
フィールド型デフォルト説明
querystring必須検索クエリ(400 文字以内にしてください)
max_resultsinteger10結果の最大数(0~20)
search_depthstring"basic"ultra-fast、fast、basic、advanced
topicstring"general"検索トピック(general のみ)
time_rangestringnullday、week、month、year
start_datestringnullこの日付以降の結果を返します(YYYY-MM-DD)
end_datestringnullこの日付以前の結果を返します(YYYY-MM-DD)
include_domainsarray[]含めるドメイン(最大 300 件)
exclude_domainsarray[]除外するドメイン(最大 150 件)
countrystringnull特定の国の結果を優先します(general トピックのみ)
include_raw_contentbooleanfalseページの全文を含めます
include_imagesbooleanfalse画像の検索結果を含めます
include_image_descriptionsbooleanfalse画像の説明を含めます
include_faviconbooleanfalse各結果のファビコン URL を含めます
レスポンス形式
{
  "query": "latest developments in quantum computing",
  "results": [
    {
      "title": "Page Title",
      "url": "https://example.com/page",
      "content": "Extracted text snippet...",
      "score": 0.85
    }
  ],
  "response_time": 1.2
}

検索の深さ

深さレイテンシ関連性コンテンツの種類
ultra-fast最低低めNLP 要約
fast低い良好チャンク
basic中程度高いNLP 要約
advanced高め最高チャンク

使い分け:

  • ultra-fast:リアルタイムチャット、自動補完
  • fast:チャンクが必要で、レイテンシも重視する場合
  • basic:汎用、バランス重視
  • advanced:精度を重視する場合(デフォルトの推奨設定)

例

ドメインで絞り込んだ検索
curl --request POST \
  --url https://api.tavily.com/search \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "query": "Python async best practices",
    "include_domains": ["docs.python.org", "realpython.com", "github.com"],
    "search_depth": "advanced"
  }'
全文を含む検索
curl --request POST \
  --url https://api.tavily.com/search \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "query": "React hooks tutorial",
    "max_results": 3,
    "include_raw_content": true
  }'

ヒント

  • クエリは 400 文字以内にしてください — プロンプトではなく検索クエリとして考えます
  • 複雑なクエリは複数のサブクエリに分割します — 1 つの巨大なクエリよりも良い結果が得られます
  • 信頼できる情報源に絞り込むには include_domains を使用します
  • 新しい情報を探すには time_range を使用します
  • score(0~1)で絞り込み、関連性が最も高い結果を取得します

コメント