web-research について
web-researchは、x402で保護されたエンドポイント経由でExa検索とFirecrawlスクレイピングを行うリサーチスキルです。エンドポイントの確認から情報取得、出典の抽出までを案内し、アクセスが難しいページへの対処も扱います。
主な機能
- 01セマンティック検索とキーワード検索
- 02指定URLに類似するページの検索
- 03複数URLからのテキスト抽出
- 04出典付きの事実回答
- 05ページのMarkdownスクレイピング
- 06検索結果の検索とスクレイピング
活用シーン
- 01ウェブ上でのテーマ調査
- 02参照ページから関連情報を発見
- 03既知URLのコンテンツ抽出
- 04ブロックされたページやJavaScript依存ページの取得
MCP 対応
x402.fetchやx402.discover_api_endpointsなどのx402 MCPツールを使い、ExaとFirecrawlのエンドポイントにアクセスします。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ merit-systems/ x402scan-skills --skill web-researchインストール後、Claude Code で/web-researchを入力して読み込まれたか確認します。
同梱ファイルrules/getting-started.mdrules/when-to-use.md
詳細
x402 API を使ったウェブ調査
停止 — API を呼び出す前にお読みください。 enrichx402.com のエンドポイントは、各プロバイダーのネイティブ API と同じではありません。すべてのパスは
https://enrichx402.com/api/{provider}/{action}の形式です。次のいずれかを必ず実行してください。
- 以下のクイックリファレンステーブルから URL を正確にコピーする、または
x402.discover_api_endpoints(url="https://enrichx402.com")を実行して正しいパスを取得するパスを推測すると、405 エラー(パスが正しくない)または 404 エラー(
/api/プレフィックスがない)が発生します。
x402 で保護されたエンドポイントを通じて、Exa(ニューラル検索)と Firecrawl(ウェブスクレイピング)を利用します。
セットアップ
インストールとウォレットの設定については、rules/getting-started.md を参照してください。
クイックリファレンス
| タスク | エンドポイント | 価格 | 最適な用途 |
|---|---|---|---|
| ニューラル検索 | https://enrichx402.com/api/exa/search | $0.01 | セマンティックウェブ検索 |
| 類似ページの検索 | https://enrichx402.com/api/exa/find-similar | $0.01 | URL に類似したページ |
| テキストの抽出 | https://enrichx402.com/api/exa/contents | $0.002 | URL からクリーンなテキストを取得 |
| 直接回答 | https://enrichx402.com/api/exa/answer | $0.01 | 事実に関する質問と回答 |
| ページのスクレイピング | https://enrichx402.com/api/firecrawl/scrape | $0.0126 | 単一ページを Markdown に変換 |
| ウェブ検索 | https://enrichx402.com/api/firecrawl/search | $0.0252 | スクレイピング付き検索 |
用途に応じた使い分け
| シナリオ | ツール |
|---|---|
| 一般的なウェブ検索 | WebSearch(無料)または Exa($0.01) |
| セマンティック検索/概念検索 | Exa search |
| X のようなページを探す | Exa find-similar |
| URL からクリーンなテキストを取得 | Exa contents |
| ブロックされるサイトや JavaScript を多用するサイトのスクレイピング | Firecrawl scrape |
| 検索と結果のスクレイピング | Firecrawl search |
| 事実をすばやく調べる | Exa answer |
詳しいガイダンスについては、rules/when-to-use.md を参照してください。
Exa ニューラル検索
キーワードだけでなく意味を理解するセマンティック検索です。
x402.fetch(
url="https://enrichx402.com/api/exa/search",
method="POST",
body={
"query": "startups building AI agents for customer support",
"numResults": 10,
"type": "neural"
}
)
オプション:
query- 検索クエリ(必須)numResults- 結果の件数(デフォルト:10、最大:25)type- "neural"(セマンティック)または "keyword"(従来型)includeDomains- これらのドメインのみを検索excludeDomains- これらのドメインを除外startPublishedDate/endPublishedDate- 日付範囲のフィルター
返される内容:タイトル、スニペット、関連度スコアを含む URL のリストです。
類似ページの検索
参照 URL とセマンティックに類似したページを検索します。
x402.fetch(
url="https://enrichx402.com/api/exa/find-similar",
method="POST",
body={
"url": "https://example.com/article-i-like",
"numResults": 10
}
)
次の用途に最適です。
- 競合製品の検索
- 関連コンテンツの発見
- 調査ソースの拡充
テキストコンテンツの抽出
URL からクリーンで構造化されたテキストを取得します。
x402.fetch(
url="https://enrichx402.com/api/exa/contents",
method="POST",
body={
"urls": [
"https://example.com/article1",
"https://example.com/article2"
]
}
)
オプション:
urls- 抽出する URL の配列text- 全文を含める(デフォルト:true)highlights- 重要なハイライトを含める
すでに URL があり、コンテンツのみが必要な場合に最も安価なオプションです($0.002)。
直接回答
質問に対する事実に基づく回答を取得します。
x402.fetch(
url="https://enrichx402.com/api/exa/answer",
method="POST",
body={
"query": "What is the population of Tokyo?"
}
)
出典の引用付きで直接回答を返します。次の用途に最適です。
- 事実に関する質問
- すばやい確認
- 主張の検証
Firecrawl スクレイピング
単一ページをスクレイピングして、クリーンな Markdown に変換します。
x402.fetch(
url="https://enrichx402.com/api/firecrawl/scrape",
method="POST",
body={
"url": "https://example.com/page-to-scrape"
}
)
オプション:
url- スクレイピングするページ(必須)formats- 出力形式:["markdown", "html", "links"]onlyMainContent- ナビゲーション、フッター、広告を除外(デフォルト:true)waitFor- JavaScript のレンダリングを待機する時間(ミリ秒)
WebFetch と比べた利点:
- JavaScript でレンダリングされたコンテンツに対応
- 一般的なブロックを回避
- メインコンテンツのみを抽出
- LLM に最適化された Markdown 出力
Firecrawl 検索
検索結果を自動的にスクレイピングするウェブ検索です。
x402.fetch(
url="https://enrichx402.com/api/firecrawl/search",
method="POST",
body={
"query": "best practices for react server components",
"limit": 5
}
)
オプション:
query- 検索クエリ(必須)limit- 結果の件数(デフォルト:5)scrapeOptions- スクレイパーに渡すオプション
各検索結果のスクレイピング済み全文を含む検索結果を返します。
ワークフロー
詳細調査
- (任意)残高を確認します:
x402.get_wallet_info - エンドポイントを検出します(初回の取得前に必須):
x402.discover_api_endpoints(url="https://enrichx402.com") - Exa で幅広く検索します
- find-similar で関連するソースを見つけます
- 上位のソースからコンテンツを抽出します
- 調査結果を統合します
x402.fetch(
url="https://enrichx402.com/api/exa/search",
method="POST",
body={"query": "AI agents in healthcare 2024", "numResults": 15}
)
x402.fetch(
url="https://enrichx402.com/api/exa/find-similar",
method="POST",
body={"url": "https://best-article-found.com"}
)
x402.fetch(
url="https://enrichx402.com/api/exa/contents",
method="POST",
body={"urls": ["url1", "url2", "url3"]}
)
ブロックされたサイトのスクレイピング
- まず WebFetch を試します(無料)
- ブロックされた場合、または結果が空の場合は、JS を多用するサイトで
waitForを指定して Firecrawl を使います
x402.fetch(
url="https://enrichx402.com/api/firecrawl/scrape",
method="POST",
body={"url": "https://blocked-site.com/article", "waitFor": 3000}
)
コストの最適化
- URL がすでにわかっている場合は Exa contents($0.002)を使います
- まず WebSearch/WebFetch を使い(無料)、その後 x402 エンドポイントに切り替えます
- URL の抽出をまとめて実行します。複数の URL を Exa contents に渡します
- 結果を必要な数に制限します
並列呼び出し
独立した検索は並列で実行できます。
# These don't depend on each other
x402.fetch(url=".../exa/search", body={"query": "topic A"})
x402.fetch(url=".../exa/search", body={"query": "topic B"})