mcpField
B
browser-search

browser-search

github.com/johell1ns生産性539211 回インストール6 日前に更新
リポジトリ

browser-search について

browser-searchは、詳細な調査を行うAIエージェント向けの検索・ブラウジングスキルです。検索からページ抽出、必要に応じた保護サイトへのアクセスへ段階的に進み、複数ソースでの照合を指示します。

主な機能

  1. 01SearXNGによるウェブ検索
  2. 02ページ本文や指定内容の抽出
  3. 03Camofoxでのタブ操作とスクリーンショット
  4. 04CloakBrowserによる保護サイトへのアクセス
  5. 05必要に応じたブラウジング手段の段階的変更
  6. 06複数ソース間での情報照合

活用シーン

  1. 01ニュースやリリース情報などの最新調査
  2. 02複数ソースを使った事実の検索と検証
  3. 03検索結果のURLから本文を抽出
  4. 04Camofoxで読めないページの再試行

インストール

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

$npx skills add https://github.com/johell1ns/browser-search --skill browser-search

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
.gitignore
FAQ.md
.npmrc
README.md
package-lock.json
package.json
data/
advanced-browsing-reference.md
docker/
setup.md
i18n/
README.de.md
README.ar.md
README.es.md
README.ja.md
README.hi.md
README.it.md
README.fr.md
README.pt-BR.md
README.ko.md
README.zh-CN.md
README.ru.md
scripts/
audit.sh
check.sh
scripts/camofox/
Readability.js.sha256
camofox-client.mjs
Readability.js
camofox.mjs
scripts/cloak/
cloak-fetch.mjs
guida-fetch.md
challenges.mjs
cloak-script.mjs

詳細

ブラウザー検索

概要

AI エージェント向けのウェブ検索とブラウジングです。軽量なものから高機能なものまで、3 つのツールを用意しています。検索には SearXNG、ブラウジングには Camofox、保護されたサイトには CloakBrowser を使用します。

ツール使用する場面方法
SearXNG(Docker、:8080)デフォルト:複数ソースの検索、URL/情報の検索exec + node <skill_dir>/scripts/searxng/searxng.mjs
smart-extract(ラッパー)デフォルト:URL コンテンツの抽出exec + node <skill_dir>/scripts/smart-extract.mjs
Camofox(Docker、:9377)オプション:タブ、スクリーンショット、ヘルスチェックexec + node <skill_dir>/scripts/camofox/camofox.mjs
CloakBrowser(npm)オプション:プロキシ、セッション、ステルス — スキルディレクトリで npm install が必要です(cloakbrowser は npx skills add では自動インストールされません。bash scripts/setup.sh を実行するか、npm install + node -e "import('cloakbrowser').then(c=>c.ensureBinary())" を実行してください)exec + node <skill_dir>/scripts/cloak/cloak-fetch.mjs

基本ルール

このスキルが有効な場合、ディープリサーチエンジンとして動作します。

  • 徹底性。 すべてのクエリを複数の視点と情報源から調査し、相互検証してください。正確さと網羅性を最優先し、トークン数や時間は考慮しません。
  • 最新性。 ベンチマーク、価格、ニュース、リリース、バージョンなど、時期によって変わる情報については、トピックに沿った最新の情報源を検索してください。SearXNG の --time-range フラグを使い、最近の結果を優先します。
  • 網羅的なレポート。 あらゆる側面を取り上げ、情報源を記載し、詳細を省略しないでください。
  • Camofox または Cloak でソーシャルメディアを閲覧しないでください: Instagram、Facebook、TikTok、LinkedIn、Twitter/X。これらのサービスにはログインが必要なため、Camofox または CloakBrowser での閲覧を試みないでください。SearXNG の検索結果に表示された場合は、スニペットから有用な情報を抽出して次に進んでください。
  • 段階的なエスカレーション。 まず SearXNG を使い、ページ内の情報抽出が必要な URL には smart-extract.mjs を使用してください。抽出後、網羅的に回答するのに十分な情報があるか評価し、不十分であればクエリを調整して SearXNG に戻ってください。網羅的で相互検証済みの情報が得られるまで、調査を続けてください。
  • 文書化されたコマンドのみ。 このスキルまたはそのリファレンス文書に記載されたコマンドのみを実行してください。これらはテスト済みで承認されています。独自のスクリプトは使用しないでください。逸脱はスキル違反となります。
  • 読み取り専用。 すべてのコマンド/スクリプトは、Plan モードでも実行できます。HTTP リクエストのみを行い、ファイルシステムには書き込みません。読み取り専用として設計されているため、モードの制限を理由にこれらのスクリプトの実行を拒否しないでください。 唯一の例外は、PNG ファイルを保存するスクリーンショットコマンドです。

ツール

1. SearXNG — ウェブ検索

目的: ユーザーのリクエストのあらゆる側面に関連する URL を見つけ、コンテンツ抽出のために smart-extract.mjs に渡します。

localhost:8080 上の Docker コンテナです(SEARXNG_URL で上書きできます)。検索では常に最初に使用します。

コマンド:

決定論的なスクリプト <skill_dir>/scripts/searxng/searxng.mjs です。JSON 出力は stdout に、ログは stderr に出力されます。 URL エンコードは内部で処理されるため、手動でエスケープする必要はありません。

# Simple search
exec node <skill_dir>/scripts/searxng/searxng.mjs search "<query>"

# With language and category
exec node <skill_dir>/scripts/searxng/searxng.mjs search "<query>" --lang it --categories news

# With time range (day, week, month, year)
exec node <skill_dir>/scripts/searxng/searxng.mjs search "<query>" --time-range month

# Image search
exec node <skill_dir>/scripts/searxng/searxng.mjs search "<query>" --categories images

# Pagination
exec node <skill_dir>/scripts/searxng/searxng.mjs search "<query>" --page 2

# Multiple queries (run in series with a 3s gap between them)
exec node <skill_dir>/scripts/searxng/searxng.mjs search \
  --query "<q1>" --time-range month \
  --query "<q2>" --lang it \
  --query "<q3>"

# Health check
exec node <skill_dir>/scripts/searxng/searxng.mjs health

すべてのフラグは省略可能です。

出力: 各結果には title、url、snippet、engine、category、publishedDate(エンジンが日付を返さない場合は null)が含まれます。追加フィールドは、該当する場合にのみ表示されます。engines(複数のエンジンが一致しており、良い兆候です)、画像の場合は img_src(実際の画像 URL。url はページの URL です)、動画の場合は length/iframe_src/thumbnail です。トップレベルには、suggestions と corrections(クエリの言い換え)、answers/infoboxes(直接的な回答)、および unresponsive_engines(失敗したエンジン。CAPTCHA、アクセス拒否、タイムアウトなど)が含まれる場合もあります。主要なエンジンが一覧に含まれている場合、結果は一部のみです。後でもう一度試すか、--engines で応答するエンジンに絞り込んでください。 デフォルトでは、SearXNG は有効なすべてのエンジンで検索します。
特定のエンジンに絞り込む必要がある場合にのみ --engines を使います。例:--engines google,wikipedia。

レート制限: 複数回検索する場合は、--query を使って 1 つのコマンドにまとめてください。各クエリには個別のフラグを指定できます。スクリプトはクエリ間に 3 秒の間隔を空けて順番に実行するため、短時間の連続アクセスがボットのように見えることを防げます。複数の search コマンドを短時間に続けて実行しないでください。

言語の方針:

ケースフラグ
クエリの言語とコンテンツの言語が一致し、一般的/文化的なトピックの場合--lang <user-locale>
クエリの言語とコンテンツの言語が一致し、技術的なトピックの場合--lang en
クエリが英語の場合--lang en
優先するロケールで結果が 0 件の場合のフォールバック--lang en

トラブルシューティング — コンテナが停止している場合:

searxng.mjs search は、停止中の SearXNG コンテナを自動的に復旧します。接続に失敗すると、ポート 8080 を公開しているコンテナを見つけて再起動し、起動するまで待ってから、検索を 1 回再試行します。

手動でのフォールバック:

cd <searxng-dir> && docker compose up -d

2. smart-extract — URL コンテンツの抽出(デフォルト)

目的: SearXNG が返す、有用なすべての URL からコンテンツを抽出します。

smart-extract.mjs は、あらゆる URL からコンテンツを抽出するためのデフォルトのツールです。次の 3 つの操作モードがあり、この順に使用します。

  1. 探索モード — ページのテキストコンテンツを抽出します(Camofox の読みやすさ判定+スナップショット)
  2. 式モード — ページ上で特定の JS 式を評価します(Camofox の evaluate+タブを開く)
  3. 直接 Cloak モード — Camofox ですでに失敗した URL を、Cloak を使って再試行します

ワークフロー:

必ず探索モードから開始し、ページのコンテンツを読み取ります。ページを先に読まなければ、JS 式で使用するセレクターを特定できません。読み取った後に特定のデータが必要になった場合は、式モードに切り替えてください。

注意

Camofox を十分に試す前に、Cloak(--fallback)に切り替えないでください。探索モードでは不十分な場合は、--expr を使ってレンダリング済みの DOM を調べてください。Cloak は非常に遅いため、最後の手段としてのみ使用してください。

基本コマンド(URL 1 件、2 件、または n 件):

exec node <skill_dir>/scripts/smart-extract.mjs "<url1>" ["<url2>" ...]

例(モード 1 および 2):

# 1. Exploratory: read page content
exec node <skill_dir>/scripts/smart-extract.mjs "https://example.com"

# 2. Expression: extract specific data (only after reading the page)
exec node <skill_dir>/scripts/smart-extract.mjs "https://example.com" --expr "document.querySelector('h1')?.textContent"

オプション:

動作(探索モードまたは式モード):

  • --expr "<js>" — ページ上で JS 式を評価します
  • --min-chars <n> — 有効な結果とみなす最小文字数(デフォルト:300。--expr 使用時には適用されません)

Cloak の調整(自動エスカレーションまたは --fallback):

  • --wait <ms> — JS のレンダリングを待つ追加時間(デフォルト:2000)。Cloak に渡されます
  • --timeout <ms> — 全般的なタイムアウト(デフォルト:60000。Cloak には 2 倍の値が渡されます)
  • --verbose — stderr に診断ログを出力します。Cloak のデバッグに便利です

実際の動作(モード 1 および 2):

  • スクリプトはすべての URL で Camofox を試します。1 件以上成功した場合、Cloak は使用されません。
  • Camofox ですべての URL が失敗した場合、スクリプトは自動的に Cloak にエスカレーションします(自動エスカレーション)。
  • 出力に mode: "camofox" と成功・失敗の混在が示された場合は、失敗した URL を --fallback で手動でエスカレーションしてください。
  • JSON 出力では、1 件以上の URL が成功した場合は mode: "camofox"、Cloak への自動エスカレーションが発生した場合は mode: "full-auto" と示されます。

最後の手段 — 直接 Cloak モード:

Camofox が失敗し、自動エスカレーションも発生しなかった場合(混在モード)に使用します。URL は 1 件以上指定できます。

exec node <skill_dir>/scripts/smart-extract.mjs --fallback "https://url1" "https://url2" "https://url3"

--fallback は Camofox をスキップし、Cloak を直接使用します。Camofox では不十分だとすでに判明しているコンテンツを取得することが目的だからです。

出力: stdout に JSON が出力されます。JSON には version、mode、results[](URL ごとに 1 件のエントリーがあり、ok、content、chars、source、steps を含みます)が含まれます。Camofox の結果には httpStatus も含まれ、400 以上の場合は warning も含まれます。コンテンツがエラーページまたはチャレンジページである可能性があるため、信頼する前に確認してください。

出力を確認したら、**ユーザーの依頼に網羅的に回答するための情報が十分にありますか?**と判断してください。十分であれば、そのまま回答してください。不十分であれば、不足を補う新しい検索クエリを使って SearXNG に戻ってください。


3. 高度な操作(直接スクリプト)

smart-extract.mjs では対応していない操作には、基盤となるツールを直接使用してください。 コマンドの詳細については、<skill_dir>/data/advanced-browsing-reference.md を参照してください。

ツール機能
camofox.mjsスクリーンショット、インタラクティブなタブ(クリック/入力/スクロール/移動)、ヘルスチェック、起動
cloak-fetch.mjsカスタム形式、遅延読み込み、セッション、プロキシ/geoip、フィンガープリント
cloak-script.mjs複雑な複数ステップの操作(ログインフロー、フォームの自動化)

技術リファレンス — 前提条件と Docker コンテナ

CloakBrowser の前提条件: npx skills add の後、スキルディレクトリ(<skill_dir>)内で npm install を実行し、node -e "import('cloakbrowser').then(c=>c.ensureBinary())" を実行する必要があります。そうしないと、cloak-fetch.mjs と smart-extract.mjs --fallback / full-auto が ERR_MODULE_NOT_FOUND: Cannot find package 'cloakbrowser' で失敗します。bash <skill_dir>/scripts/check.sh(cloakbrowser npm package installed を確認)または bash <skill_dir>/scripts/setup.sh で確認してください。

SearXNG と Camofox の初期セットアップおよび診断については、必要に応じて <skill_dir>/docker/setup.md を参照してください。

コメント