exa-search について
exa-searchは、Exa MCPでウェブ検索やページ取得、コード・ドキュメント・企業・人物の調査を行うスキルです。現在のツール選択とパラメーターを案内し、MCP HTTPを直接呼び出します。
主な機能
- 01ウェブ検索と条件付き検索
- 02既知のURLからページ取得
- 03コードとドキュメントの検索
- 04企業・人物の調査
- 05MCPツールのパラメーター案内
活用シーン
- 01最新のウェブ情報を検索
- 02指定ページの内容を取得
- 03企業や人物を調査
- 04Exa MCPツールのスキーマ確認
MCP 対応
ホスト型Exa MCPエンドポイントをHTTPで呼び出し、セッションの初期化、ツールの検出と呼び出しを説明します。ウェブ検索とページ取得のツールを扱います。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mxyhi/ ok-skills --skill exa-searchインストール後、Claude Code で/exa-searchを入力して読み込まれたか確認します。
同梱ファイルreferences/exa-tools.md
詳細
Exa MCP 検索
オンライン検索、ページ取得、コードやドキュメントの検索、企業調査、人の調査、または Exa MCP のパラメーター確認が必要な場合に、このスキルを使用します。
現在の信頼できる情報源
- ホスト型 MCP エンドポイント:
https://mcp.exa.ai/mcp - 公式ソース:
exa-labs/exa-mcp-server@15ffb50519e719dc791cdc750ce5ed1934c0a1ed - 確認済みの最新 npm パッケージ:
[email protected]。検証済みの tarball SHA-256 は62379fab5750cbc8334f096ff986ab1b7152488afffab5b0e275995310b6e978です。 - ツールのスキーマは変更されることがあります。新しいパラメーターを追加する前に、通常の HTTP クライアントを使用して
tools/listで確認してください。
このスキルでは、直接 MCP HTTP を呼び出す方式が必須です。curl でも構いませんが、低レベルのフラグを呼び出しごとに繰り返すのではなく、セッション管理と SSE の解析は小さなシェルヘルパーにまとめてください。
ツールの選択
| 用途 | 推奨 | 備考 |
|---|---|---|
| 一般的な最新のウェブ検索 | web_search_exa | シンプルな検索です。query と numResults のみを使用します。 |
| フィルター、日付、ドメイン、カテゴリ、要約、ハイライト、サブページを使った検索 | web_search_advanced_exa | tools= で明示的に有効にします。企業、人、論文、ニュースのフィルターに使用します。 |
| 既知の URL の全文を読む | web_fetch_exa | ハイライトだけでは不十分な場合に、検索後に使用します。 |
| コード例やドキュメント | web_search_exa | get_code_context_exa も引き続き利用できますが、非推奨です。 |
| 企業調査 | web_search_advanced_exa と category:"company" | company_research_exa も引き続き利用できますが、非推奨です。 |
| 人物やプロフィール | web_search_advanced_exa と category:"people" | people_search_exa も引き続き利用できますが、非推奨です。 |
主なパラメーター
web_search_exa
query必須:意味を十分に含む自然言語のクエリです。category:companyまたはcategory:peopleを含めることができます。numResults任意:デフォルトは10です。- 現在のホスト型スキーマでは、
type、livecrawl、contextMaxCharacters、tokensNumは使用できません。
{"query":"latest AI safety research June 2026","numResults":10}
web_search_advanced_exa
query必須。- よく使われる任意のフィルター:
numResults、type(auto|fast|instant)、category、includeDomains、excludeDomains、startPublishedDate、endPublishedDate、startCrawlDate、endCrawlDate、includeText、excludeText、userLocation、moderation、additionalQueries。 - コンテンツ制御:
textMaxCharacters、contextMaxCharacters、enableSummary、summaryQuery、enableHighlights、highlightsMaxCharacters、highlightsQuery、maxAgeHours、livecrawlTimeout、subpages、subpageTarget。 - 非推奨のハイライト制御:
highlightsNumSentences、highlightsPerUrl。highlightsMaxCharactersの使用を推奨します。 - カテゴリには
company、publication、news、pdf、github、personal site、people、financial reportがあります。
{
"query":"Anthropic funding valuation 2026",
"category":"news",
"includeDomains":["techcrunch.com","bloomberg.com"],
"startPublishedDate":"2026-01-01",
"numResults":10,
"type":"auto",
"enableHighlights":true
}
web_fetch_exa
urls必須:URL の配列です。1 回の呼び出しで複数の URL をまとめて取得できます。maxCharacters任意:デフォルトは3000です。
{"urls":["https://docs.exa.ai/reference"],"maxCharacters":5000}
非推奨ですが引き続き利用可能
get_code_context_exa:代わりにweb_search_exaを使用します。現在のスキーマはquery、numResultsです。以前のtokensNumは廃止されています。company_research_exa:代わりにcategory:"company"を指定したweb_search_advanced_exaを使用します。スキーマはcompanyName、numResultsで、デフォルトは3です。people_search_exa:代わりにcategory:"people"を指定したweb_search_advanced_exaを使用します。crawling_exa:代わりにweb_fetch_exaを使用します。deep_search_exa:代わりにweb_search_advanced_exaを使用します。このツールをリクエストする場合、現在のホスト型 MCP では OAuth または API キーが必要です。deep_researcher_start/deep_researcher_check:非推奨です。必要に応じて Exa Research API を直接使用してください。
Curl のパターン
initializeを POST し、返されたMcp-Session-Idレスポンスヘッダーを保持します。- そのヘッダーを付けて
notifications/initializedを POST します。 - そのヘッダーを付けて
tools/listまたはtools/callを POST します。 - レスポンスが
text/event-streamの場合は、data:行から JSON を解析します。
最小限の Curl ヘルパー
EXA_URL="https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,web_fetch_exa"
EXA_SESSION_ID=""
exa_rpc() {
local payload="$1"
local session_header=()
local response
if [ -n "$EXA_SESSION_ID" ]; then
session_header=(-H "Mcp-Session-Id: $EXA_SESSION_ID")
fi
response="$(curl -isS "$EXA_URL" \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
"${session_header[@]}" \
--data "$payload")"
if [ -z "$EXA_SESSION_ID" ]; then
EXA_SESSION_ID="$(printf '%s\n' "$response" | awk 'tolower($0) ~ /^mcp-session-id:/ { sub(/^[^:]+:[[:space:]]*/, ""); gsub(/\r/, ""); print; exit }')"
fi
printf '%s\n' "$response" | sed -n 's/^data: //p'
}
exa_init() {
exa_rpc '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"exa-curl","version":"0.1.0"}}}' >/dev/null
exa_rpc '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null
}
exa_call() {
local tool_name="$1"
local arguments_json="$2"
jq -nc --arg name "$tool_name" --argjson arguments "$arguments_json" \
'{jsonrpc:"2.0",id:2,method:"tools/call",params:{name:$name,arguments:$arguments}}' |
while IFS= read -r payload; do exa_rpc "$payload"; done
}
exa_init
exa_call web_search_exa '{"query":"latest AI safety research","numResults":5}'
ツールによって出力形式が異なります。web_search_exa は整形済みテキストを返し、web_search_advanced_exa は JSON テキストを返し、web_fetch_exa は取得したページのテキストを返します。
調査の進め方
- 簡単な検索では、対象を絞った
web_search_exaの呼び出しを1回実行します。 - 日付が関係する質問や最新情報に関する質問では、まず正確な日付範囲を計算し、
web_search_advanced_exaにstartPublishedDate/endPublishedDateを渡します。 - 多くのソースを扱うタスクでは、最適なURLのみを
web_fetch_exaで取得します。生の検索結果を最終回答にそのまま貼り付けないでください。 - 企業・人物・論文・ニュースを調べるワークフローでは、非推奨の専用ツールではなく、
web_search_advanced_exaのカテゴリを優先します。 - Exa の検索結果が少ない、矛盾している、または古い場合は、ソースの不確実性に言及します。
参照資料
- ツールのフィールド:
references/exa-tools.md
コメント
Markdown 対応