mcpField
N
nimble-web-expert

nimble-web-expert

github.com/nimblewayデータ・データベース61115 回インストール2 日前に更新
リポジトリ

nimble-web-expert について

Nimble CLIまたはMCPを使うウェブデータ取得スキルです。検索、抽出、テンプレート、Web Search Agent、URLマップ、クロールを目的に応じて使い分け、接続確認や一括処理、結果提示の手順も示します。

主な機能

  1. 01目的に応じたNimble機能の振り分け
  2. 02検索と単一URLの抽出
  3. 03サイト別抽出テンプレートの再利用
  4. 04Web Search Agentによる調査
  5. 05URL発見とページの一括クロール
  6. 06複数入力の並列処理

活用シーン

  1. 01指定したウェブページから構造化データを抽出
  2. 02ウェブ検索で調査結果をまとめる
  3. 03サイトのページを発見または一括クロール
  4. 04複数のURLやキーワードを並列処理

MCP 対応

ウェブ検索と抽出にはNimble MCPツールまたはNimble CLIを使用できます。最初に接続を確認し、セッション中は選択した接続方式を維持します。

インストール

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

$npx skills add https://github.com/nimbleway/agent-skills --skill nimble-web-expert

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

同梱ファイル

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

README.md
references/
batch-patterns.md
error-handling.md
recipes.md
references/nimble-agents/
reference.md
references/nimble-crawl/
reference.md
references/nimble-extract-templates/
reference.md
references/nimble-extract/
browser-actions.md
browser-investigation.md
network-capture.md
parsing-schema.md
reference.md
references/nimble-map/
reference.md
references/nimble-search/
reference.md
search-focus-modes.md
references/nimble-tasks/
reference.md
rules/
nimble-web-expert.mdc
output.md
setup.md

詳細

Nimble Web Expert

Nimble CLI を使用した Web 抽出、検索、URL の発見。あらゆる Web サイトから、クリーンで構造化されたデータを返します。

ユーザーのリクエスト:$ARGUMENTS

基本原則

  • まず意図に基づいて振り分けます(判断モデルの全容については、分析と振り分けを参照してください)。該当する抽出テンプレートがあり、調べる対象が具体的に決まっているサイト → テンプレートを実行します。テンプレートがないサイト、または複数ページにわたる発見や推論が必要な場合 → Web 検索エージェントを使用します。単発の単一 URL → nimble extract を使用します。元の検索結果をそのまま扱う場合(「……についてのページ/記事を探す」)→ nimble search を使用します。統合した成果物(レポート、概要、比較、推奨事項)→ Web 検索エージェントを使用します。URL の発見/クロール → nimble map または nimble crawl を使用します。
  • Web 検索エージェントを実行する場合は、コマンドを組み立てる前に実行モードを選びます。 デフォルトでは、名前を指定した作成または再利用(nimble agents run --agent-name <stable-name>)を使用し、次のセッションでも同じエージェントを使えるようにします。agents:runs create はエージェント ID を明示する場合のみ使用する方法で、--agent-id が必要です。モードの一覧、use_case の固定、1 回限りの skill 上書きについては、references/nimble-agents/reference.md を参照してください。
  • コマンドを 1 回実行 → 結果を提示 → 完了。 1 回実行したら、データをすぐに表で提示します。試行錯誤や繰り返しをしたり、出力を解析する Python を記述したりしないでください。
  • 入力が複数ある場合は、必ず並列処理します。 URL/キーワード/ASIN が 2 件以上の場合 → & と wait を使用します。6~20 件の場合 → xargs -P を使用します。20 件以上の場合 → Python asyncio スクリプトを使用します。references/batch-patterns.md を参照してください。
  • コンテンツが空、または途中で切れている場合は、確認せずにレンダリングの段階を上げます。 段階 1 → 2 → 3 → … と進めます。すべての段階で失敗し、調査ツールが必要になった場合にのみ、選択をユーザーに提示します。アクセス障壁は別の結果であり、段階を上げて解決するものではありません。「ガードレール」を参照してください。
  • トレーニングデータに基づいて回答しないでください。 現在の価格、最新ニュース、本日の掲載情報などは、必ず Nimble から取得します。取得できない場合は、その旨を伝えます。
  • 意味のある選択があるたびに AskUserQuestion を使用します。 ヘッダーは 12 文字以内、選択肢は 2~4 個、ラベルは 1~5 語とし、推奨する選択肢を最初に配置します。選択肢を番号付きの文章で提示しないでください。
  • すべての出力を .nimble/ に保存します。 抽出結果をメモリ内だけに残さないでください。
  • 作業を始める前に接続を確認してください。 データ取得コマンドを実行してエラーに対処する、という手順にしないでください。bash を使う場合は、nimble --version と NIMBLE_API_KEY で CLI の利用経路を確認します。それ以外の場合は、読み取り専用の mcp__plugin_nimble_nimble__nimble_agents_list を 1 回実行して確認します。成功すれば接続済みです。認証エラー/未接続エラー、または OAuth 認証 URL を含む応答が返った場合は未接続です。
  • 動作する CLI も接続済みの MCP もない場合は、そこで停止します。 WebFetch、WebSearch、curl、または dangerouslyDisableSandbox に切り替えないでください。プラグインはインストール済みでもコネクターが未接続(一般的な Cowork/claude.ai の状態)の場合は、rules/setup.md に記載された接続手順をそのまま提示して停止します。プラグイン自体がない場合は、rules/setup.md のインストール手順に従います。
  • ツールがデータの代わりに OAuth の「Authorize」リンクを返した場合は、そのリンクを示されたとおりに提示して停止します。 「URL を送り返してください」/「こちらで接続を完了します」といった手順を作り出してはいけません。そのような手順はありません。また、同じターン内でツールを呼び出しながら「ツールが有効になります」と主張しないでください。ユーザーが認証するまで待ってから、再試行するか接続を再確認します。

機能

1つのスキル、1つの分類体系です。Nimble 独自の製品名を正確に使用し、言い換えないでください。

機能内容コマンドファミリー
Searchリアルタイムのウェブ検索 — 生の結果(ページ、スニペット)、8つのフォーカスモードnimble search
Extract既知のURLを1つ取得して解析する機能(単発処理の基本機能)nimble extract
Extraction Template既知の項目(URLまたは識別子による)向けに再利用できる、サイト固有の構造化スクレーパーnimble extract:templates
Web Search Agent自由形式のリサーチ/情報拡充/データセット構築 — 情報源を発見し、統合し、引用しますnimble agents / agents:runs
Mapサイト上に存在するURLを発見しますnimble map
Crawlサイト全体で多数のページを一括取得します(1回限り、大規模)nimble crawl

Extraction Template と Web Search Agent は別のものです。Extraction Template は固定されたサイト固有のパーサーであり、Web Search Agent は複数の情報源にわたって推論します。Extraction Template を「WSA」や「legacy WSA」と呼ばないでください。また、名前だけを根拠にテンプレートの使用を agents に振り分けたり、その逆を行ったりしないでください。新しいテンプレート/エージェントの作成はこの範囲外です。既存のものを使用してください(新しいものを作成するには Nimble アプリを案内してください)。

インタラクティブな UX

  • 意味のある選択肢があるたびに AskUserQuestion を使ってください。推測したり、文章で質問したりしないでください。
  • 曖昧なリクエスト(URLがない、トピックが漠然としている):実行前に質問してください — 「何をしますか?」 → リサーチして報告/検索/URLを取得/URLを発見
  • Gate B で、effort が high 以上の Web Search Agent に到達した場合:コスト/待ち時間の分岐を提示してください — リサーチレポート/クイックスキャン(分析とルーティングを参照)
  • 検索を実行する前(タスクが特定のフォーカスモードに該当する場合):フォーカスモードを提示してください — 一般/ニュース/コーディング/ショッピング/学術/ソーシャル
  • すべてのティアで失敗した後:調査ツール(which browser-use、python3 -c "from playwright.sync_api...")を確認し、browser-use、Playwright を使って調査するか、スキップするかを尋ねてください。
  • 結果を提示した後は、必ず「これらの結果は必要なものでしたか?」で締めくくってください → Looks great! / Mostly good / Not quite / Skip feedback

前提条件

セッション開始時に CLI または MCP を選択してください。同じスキルで、トランスポートは2種類です。トランスポートを選択したら、セッション中はそのまま使用し、コマンドごとに再確認しないでください。

nimble --version && echo "${NIMBLE_API_KEY:+API key: set}"        # CLI path
# OR (fallback when shell isn't available)
claude mcp list 2>/dev/null | grep -q "nimble" && echo "MCP: ok"  # plugin MCP
  • CLI の準備完了(バージョンと API キーの両方が表示される)→ ステップ 0 に進み、nimble ... コマンドを使用してください。
  • MCP 接続済み(CLI はないが、プラグインがインストールされている)→ ステップ 0 に進み、代わりに mcp__plugin_nimble_nimble__* ツールを使用してください。
  • どちらも利用不可 → 環境に応じたインストール手順に従うため、rules/setup.md を読み込んでください。Claude 製品(Code、Cowork、claude.ai)では /plugin install nimble を実行してください。Codex またはその他のターミナル専用エージェントでは npm i -g @nimble-way/nimble-cli を実行してください。Cursor/VS Code/汎用 MCP クライアントでは、mcp.json のスニペットを貼り付けてください。

bash が拒否された場合: Cowork のようなホスト、または MCP 専用ホストです。mcp__plugin_nimble_nimble__* ツールを使用しますが、最初に読み取り専用の nimble_agents_list プローブで接続を確認してください。プローブが認証エラー/未接続エラーで失敗するか、OAuth 認証 URL を返す場合、コネクターは接続されていません。基本原則の接続手順を提示して終了してください(認証完了のフローを決して捏造しないでください)。Nimble の操作に WebFetch、WebSearch、curl、その他のツールを代用しないでください。


分析してルーティング

順番に2つのゲートを通過します。ゲート Aではデータの場所を確認し、ゲート Bではユーザーが何を求めているかを確認します。ルーティングの誤りの多くはゲート B を飛ばすことで起こります。場所を示す情報がないからといって、必ずしも検索とは限りません。

ゲート A — データの場所がわかっていますか?
ユーザーのシグナルルート
取得する単一の直接 URLnimble extract
サイト名と、調べたい直接の項目(URL/ID)ステップ 0 — まず抽出テンプレートを確認します
「URL/サイトマップ/すべてのページを探す」nimble map
「セクション全体をクロール/アーカイブする」nimble crawl
場所を示す情報がまったくないゲート Bへ進みます
テンプレートがないサイト名サイトをソースの制約として引き継ぎ、ゲート Bへ進みます

最もよくある重複ケース — 抽出テンプレートがないサイト。 生の extract ではユーザーにパース作業を押し付けることになり、テンプレートを構築するのは範囲外であるため、どちらかを選ぶように見えます。しかし、どちらも適切ではありません。ゲート B へ進むと、Web Search Agentに行き着きます。これは、あらゆるサイトに合わせてその都度設定され、管理されたテンプレートがなくても構造を推論します。これはユーザーに尋ねることではありません。適合するテンプレートがなければ、答えは毎回同じです。

ステップ 0 — 抽出テンプレートの確認(サイト名と直接の項目が指定されている場合)

テンプレートを使えば、セレクターを設定することなく、整った構造化データを取得できます。必ず最初に確認してください。

必ず声に出して伝えてください。黙って進めてはいけません。

  1. 確認することを伝える: 「[site] 用の Nimble 抽出テンプレートがあるか確認します……」
  2. 結果を報告する: 「<template_name> が見つかりました。これを使います。」 または 「[site] 用のテンプレートがありません。代わりに Web Search Agent を使います。」

検索順序:

  1. ~/.claude/skills/nimble-web-expert/learned/examples.json → 学習済みテンプレート
  2. nimble extract:templates list --limit 100 → クライアント側でサイト/ドメインを絞り込み、一致を確認します
  3. 実行前にスキーマを確認します:nimble extract:templates get --extract-template-name <name>
  4. 一致するものがない場合 → Web Search Agent にルーティングします(上記の重複ケースのルールに従います)
nimble extract:templates run --template <name> --params '{"key": "value"}'

--params は、テンプレートの input_schema に対応する JSON/YAML マッピングです。レスポンスは、テンプレートの output_schema で定義されたレコードです(リスト/SERP 形式なら配列、詳細/PDP 形式ならオブジェクト)。データの形を確認するには、get からスキーマを読み取ってください。references/nimble-extract-templates/reference.md を参照してください。

⚠️ 情報を探す場合は、SERP 分析テンプレートではなく nimble search を使ってください。SERP テンプレートは、ランキング/SEO 分析用であり、一般的な情報取得用ではありません。

Gate B — ユーザーは何を求めていますか?

nimble search が返すのは、ざっと目を通すための生の資料です。Web Search Agent が返すのは、出典付きの完成した回答です。判断の基準はプロンプトで求められている成果物の名詞です。話題がどれほど自由形式に聞こえるかではなく、成果物に基づいて振り分けてください。

→ Web Search Agent→ nimble search
レポート、概要、分析、全体像、詳細分析、深掘り見つけて、検索して、調べて
比較、「最適な X」、「どれを選ぶべきか」、「現状」、推奨「〜についての記事/ページ」、「〜へのリンク」
情報を補完する、リストを作る、データセット、「…価格/従業員数付きで」最新ニュース、最近の投稿、話題のトピック

多数の対象に関する構造化された行データの場合は、enrichment または dataset_building を使って Web Search Agent に依頼します。references/nimble-agents/reference.md を参照してください。

回答にコストがかかる場合は、選択肢を提示する

high の Web Search Agent は完了まで数分かかり、費用も高くなります。一方、検索は数秒で完了します。これは実質的なトレードオフなので、選択肢として提示してください。ただし、Gate B の判定が Web Search Agent で、推奨される労力が high 以上の場合に限ります。 AskUserQuestion を 1 つ使い、推奨する選択肢を先に提示します。

  • 調査レポート — Web Search Agent、数分、すべての主張に出典付き
  • クイックスキャン — nimble search、数秒、自分でざっと確認する生のリンク

high 未満の場合は質問せず、そのまま Web Search Agent を実行します。Gate A ですでに振り分けが決まっている場合は、決して質問しないでください。

データセットのリクエストは、必ずこの基準を満たします。 「リストを作って…」は dataset_building に該当し、定義上 high 以上で実行されるため、必ず選択肢を提示します。エンリッチメントにはこの下限がありません。「これらの行の情報を補完して」は通常の労力基準で判断し、指定が明確で少量の補完が high 未満に収まる場合は、質問を省略してください。


Web Search Agent の実行を開始する前に、所要時間を伝えてください。その後、各フェーズの切り替わりで状況を説明します。MCP では、ライブストリームではなく、範囲を限定したステータスポーリングによって進捗を確認します。各ステップでポーリングして状況を報告してください。数分かかる実行について何も説明がないと、処理が止まったように感じられます。


ワークフロー

状況コマンドリファレンス
サイト+項目 → まずテンプレートを使用extract:templates list → extract:templates runreferences/nimble-extract-templates/reference.md
調査/情報の拡充/データセット実行モードを選択 → get → resultreferences/nimble-agents/reference.md
直接 URLnimble extractreferences/nimble-extract/reference.md
ライブウェブを検索nimble searchreferences/nimble-search/reference.md
サイト上の URL を検出nimble mapreferences/nimble-map/reference.md
セクションを一括クロールnimble crawl runreferences/nimble-crawl/reference.md
テンプレートを一括処理(最大 1,000 件)nimble extract:templates batchreferences/nimble-extract-templates/reference.md
抽出を一括処理(最大 1,000 件)nimble extract-batchreferences/nimble-extract/reference.md
タスク/一括処理/結果をポーリングnimble tasks / nimble batchesreferences/nimble-tasks/reference.md
不明なセレクターまたは XHR パスbrowser-use または Playwright で調査references/nimble-extract/browser-investigation.md
実証済みのサイトパターンレシピをコピーreferences/recipes.md
2 件以上の入力bash の &+wait による並列処理、またはスクリプトを生成references/batch-patterns.md

抽出の全フォールスルー(段階、フラグ、ブラウザー操作、ネットワークキャプチャ)については、references/nimble-extract/reference.md を参照してください。


出力形式

コマンド出力
nimble extract:templatesテンプレートの output_schema に従ったレコード — 配列(リスト/SERP)またはオブジェクト(詳細/PDP)
nimble agents:runs resultoutput(type:"text" の文章または type:"json" の構造化データ)+主張ごとの引用を示す trust
nimble extractHTML、Markdown、または解析済み JSON — --format と --parse によって異なります
nimble search構造化された結果の配列(タイトル、URL、説明)
nimble mapURL リスト+メタデータ
nimble crawl非同期ジョブ — nimble crawl status <job_id> でポーリングします

解析する前にテンプレートの output_schema(extract:templates get で取得)を確認してください — リスト/SERP 形式のテンプレートは配列を返し、詳細/PDP 形式のテンプレートはオブジェクトを返します。Web Search Agent の実行は非同期です。agents:runs get をポーリングして終端状態になったら、result を取得してください。

出力と整理

mkdir -p .nimble   # save all outputs here

命名規則:.nimble/<site>-<task>.md(例:.nimble/amazon-airpods.md、.nimble/yelp-sf-italian.json)

保存したファイルの操作:

wc -l .nimble/page.md && head -100 .nimble/page.md
grep -n "price\|rating" .nimble/page.md | head -30

すべての応答の末尾に、Source: [URL] — fetched live via Nimble CLI を付けてください。


自己改善

このスキルは ~/.claude/skills/nimble-web-expert/learned/examples.json を管理します。

  • タスク開始時: ファイルを読み込み、good[] で url_pattern に一致するものを確認し、記録されている command/tier を出発点として使用します。bad[] も確認し、記録されている落とし穴を避けます。
  • 結果を提示した後: 「これらの結果はお役に立ちましたか?」と尋ねます。肯定的なフィードバックがあれば、url_pattern、task、command、tier、notes を含めて good[] に追加します。否定的なフィードバックがあれば、「何がうまくいきませんでしたか?」と尋ね、url_pattern、task、issue、avoid、better を含めて bad[] に追加します。
  • エントリーは簡潔にします。サイトごとに5~10件にしてください。実際のフィードバックがあった場合にのみ記録し、憶測で書き込まないでください。

ガードレール

  • ライブ価格、最新ニュース、リアルタイムデータについて、トレーニングデータをもとに回答してはいけません。 Nimble を利用できない場合は、その旨を伝えてください。
  • ステップ0を黙って省略してはいけません。 テンプレートがないと確信していても、Web Search Agent を使用するか、抽出/検索に切り替える前に、確認することを伝えてください。
  • 生の検索結果を、統合してまとめる成果物として提示してはいけません。 「レポート」「概要」「比較」「おすすめのX」「どれを選ぶべきか」といった依頼は、Gate B によって Web Search Agent に振り分けられます。リンク一覧を返してレポートと呼ぶのは、最もよくある誤った振り分けです。
  • 抽出テンプレートと Web Search Agent を区別してください。 テンプレートを「WSA」や「旧式のWSA」と呼んではいけません。また、名前だけを根拠にテンプレートの使用を agents に振り分けたり、その逆を行ったりしてはいけません。新しいテンプレート/エージェントの作成は対象外です。既存のものを使用してください。
  • 実行結果が空、部分的、または明らかに誤っている場合は、そのことを率直に伝えてください。 結果が何も返らなかったドメイン、適切に一致しなかったテンプレート、関連する結果がなかった検索は、成功として提示するのではなく、実際の結果として扱います。より広いソースや別の機能など、明確な次の手段があれば提案してください。
  • 同じレンダリング階層で再試行してはいけません。 階層から空または途中で切れたコンテンツが返された場合は、上位の階層に切り替えてください。再実行してはいけません。
  • アクセス障壁に直面した場合、上位の階層に切り替えてはいけません。 対象の代わりに CAPTCHA、人間による確認ページ、またはサインイン画面が表示された場合は、実際の結果として率直に報告し、そこで停止してください。対応している別の手段があれば、それを使用してください。たとえば、ソーシャルプロフィールの検索には --focus social を、アクセス制限された記事には公開検索結果を使用します。
  • Nimble の操作に WebFetch、WebSearch、curl、wget を代用してはいけません。 これらは allowed-tools に含まれていません。Nimble のトランスポートが利用できない場合は、停止し、Core principles のトランスポートがない場合の分岐に従ってください。回避策を試してはいけません。
  • 参照ファイルを憶測で読み込んではいけません。 現在のタスクで明示的に必要な場合にのみ、参照ファイルを読み込んでください。
  • タスクエージェントは run_in_background=False を使用しなければなりません。
  • 再試行回数には上限があります。 エラーの場合(コンテンツが空の場合を除く)、異なるフラグを使って最大2回まで再試行できます。2回エラーになったら、報告して停止してください。
  • 429エラーの場合は、ただちに停止してください。 再試行したり、別の階層に切り替えたりしてはいけません。

参考ファイル

必要な場合にのみ読み込んでください。

ファイル読み込むタイミング
references/recipes.md一般的なサイト(Amazon、Yelp、LinkedIn など)で実績のあるコマンドが必要な場合
references/nimble-extract-templates/reference.mdステップ 0 — 既知のサイトの抽出テンプレートを検出/確認/実行する場合
references/nimble-agents/reference.mdWeb Search エージェント — 検出、実行ライフサイクル、作成、信頼性/引用
references/nimble-extract/reference.md抽出フラグ、レンダリング階層、ブラウザー操作、ネットワークキャプチャ、パーサースキーマ
references/nimble-search/reference.md検索フラグ、8 種類すべてのフォーカスモード
references/nimble-map/reference.mdMap のフラグ、レスポンス構造
references/nimble-crawl/reference.md非同期クロールの全ワークフロー
references/nimble-tasks/reference.mdタスク/バッチのポーリング、結果の取得 — 非同期、バッチ、クロール操作の場合
references/nimble-extract/browser-investigation.md階層 6 — browser-use または Playwright を使った CSS セレクター/XHR の検出
references/nimble-extract/parsing-schema.mdパーサーの種類、セレクター、エクストラクター、後処理
references/nimble-extract/browser-actions.mdブラウザー操作の種類とパラメーターの全一覧
references/nimble-extract/network-capture.mdフィルター構文、XHR モード、キャプチャ+解析のパターン
references/nimble-search/search-focus-modes.md判定ツリー、モードの詳細、組み合わせ方法
references/batch-patterns.md2~5 件、6~20 件、20 件以上の入力に対する並列 bash パターン
references/error-handling.mdエラーコード、既知のサイトの問題、トラブルシューティング

コメント