search について
LLMでの利用に適した形式で検索結果を返すウェブ検索スキルです。スクリプトでは結果数、検索深度、期間、ドメインなどを指定できます。
主な機能
- 01ウェブ検索
- 02結果数と検索深度の指定
- 03期間による絞り込み
- 04ドメインの包含と除外
- 05ページ全文の取得
活用シーン
- 01最近の技術情報の検索
- 02信頼できるドメイン内の検索
- 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 を使用します。手動での設定は不要です。初回実行時に、次の処理を行います。
~/.mcp-auth/に既存のトークンがあるか確認します- 見つからない場合、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
ヘッダー
| ヘッダー | 値 |
|---|---|
Authorization | Bearer <TAVILY_API_KEY> |
Content-Type | application/json |
リクエストボディ
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
query | string | 必須 | 検索クエリ(400 文字以内にしてください) |
max_results | integer | 10 | 結果の最大数(0~20) |
search_depth | string | "basic" | ultra-fast、fast、basic、advanced |
topic | string | "general" | 検索トピック(general のみ) |
time_range | string | null | day、week、month、year |
start_date | string | null | この日付以降の結果を返します(YYYY-MM-DD) |
end_date | string | null | この日付以前の結果を返します(YYYY-MM-DD) |
include_domains | array | [] | 含めるドメイン(最大 300 件) |
exclude_domains | array | [] | 除外するドメイン(最大 150 件) |
country | string | null | 特定の国の結果を優先します(general トピックのみ) |
include_raw_content | boolean | false | ページの全文を含めます |
include_images | boolean | false | 画像の検索結果を含めます |
include_image_descriptions | boolean | false | 画像の説明を含めます |
include_favicon | boolean | false | 各結果のファビコン 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)で絞り込み、関連性が最も高い結果を取得します
コメント
Markdown 対応