mcpField
W
web-research

web-research

github.com/merit-systems生産性357 回インストール34 週間前に更新
リポジトリ

web-research について

web-researchは、x402で保護されたエンドポイント経由でExa検索とFirecrawlスクレイピングを行うリサーチスキルです。エンドポイントの確認から情報取得、出典の抽出までを案内し、アクセスが難しいページへの対処も扱います。

主な機能

  1. 01セマンティック検索とキーワード検索
  2. 02指定URLに類似するページの検索
  3. 03複数URLからのテキスト抽出
  4. 04出典付きの事実回答
  5. 05ページのMarkdownスクレイピング
  6. 06検索結果の検索とスクレイピング

活用シーン

  1. 01ウェブ上でのテーマ調査
  2. 02参照ページから関連情報を発見
  3. 03既知URLのコンテンツ抽出
  4. 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} の形式です。次のいずれかを必ず実行してください。

  1. 以下のクイックリファレンステーブルから URL を正確にコピーする、または
  2. 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.01URL に類似したページ
テキストの抽出https://enrichx402.com/api/exa/contents$0.002URL からクリーンなテキストを取得
直接回答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 - スクレイパーに渡すオプション

各検索結果のスクレイピング済み全文を含む検索結果を返します。

ワークフロー

詳細調査
  1. (任意)残高を確認します:x402.get_wallet_info
  2. エンドポイントを検出します(初回の取得前に必須): x402.discover_api_endpoints(url="https://enrichx402.com")
  3. Exa で幅広く検索します
  4. find-similar で関連するソースを見つけます
  5. 上位のソースからコンテンツを抽出します
  6. 調査結果を統合します
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"})

コメント