mcpField
W
web-crawl

web-crawl

github.com/rheinmirデータ・データベース10180 回インストール2 週間前に更新
リポジトリ

web-crawl について

web-crawl は、ウェブページを取得して Markdown に変換し、素材フォルダーや wiki の下書きに保存するスキルです。内蔵バックエンドは単一の静的ページに対応し、別のバックエンドを設定すると JavaScript レンダリングやサイト全体のクロールも可能です。

主な機能

  1. 01ウェブページの内容を Markdown に変換
  2. 02単一の静的ページを取得
  3. 03ローカル HTML ファイルを変換
  4. 04素材または下書きに保存
  5. 05別のクロールバックエンドを設定

活用シーン

  1. 01記事を Markdown の資料として取得
  2. 02外部ドキュメントを wiki の下書きに整理
  3. 03ローカル HTML を Markdown に変換

MCP 対応

README では、Firecrawl がエージェントのワークフロー向け MCP を提供すると説明されています。web-crawl 自体は設定可能なアダプターを介してクロールバックエンドを利用します。

インストール

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

$npx skills add https://github.com/rheinmir/setup --skill web-crawl

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

詳細

スキル:web-crawl

Web ページを取得し、wiki/LLM 向けのクリーンな Markdown に変換します。バックエンドは隔離されたアダプター(harness/web-crawl.config.yaml、verified:false)です。組み込み機能は現在動作しており、キーは不要です。

WHAT

目的と背景
  • 目的: URL(またはサイト)をクリーンな Markdown に変換し、raw/ または wiki の下書きに保存します。生の HTML は使用しません。
  • 使用するタイミング:
    • ユーザーが URL を提示し、その内容を求めている場合(「これをクロールして」「スクレイピングして」「ページを取得して」「このページを読んで」)。
    • 外部のドキュメント/記事を raw/ または wiki の下書きに取り込む場合。
    • 調査のために多数のページをまとめて読む場合(その場合はプレミアムバックエンドを優先してください)。
  • 対象外: ページの UI/見た目の複製(それは /web-clone です)、wiki/ への直接書き込み(/propose/ingest を経由します)、認証で保護されたコンテンツや許可されていないコンテンツのクロール。
基本的な考え方

URL → バックエンド(セッション内の WebFetch・組み込み urllib+regex・プレミアムアダプター firecrawl/crawl4ai/jina)→ Markdown → raw/ または wiki の下書き → /propose または ingest → wiki。バックエンドは、まず構築して後から適応するための隔離環境です。組み込み機能はオフライン時のフォールバックで、プレミアム機能は単一の設定ファイルで有効化する実際のアップグレードです。

入力と出力の仕様
フィールド必須?意味
入力URLはい取得するページまたはサイト。md モードではローカルの .html ファイルも指定できます
入力--out pathいいえ保存先。規定の形式は raw/<slug>.md です
入力プレミアムバックエンドの設定いいえharness/web-crawl.config.yaml の backend と api_key_env/endpoint、および verified:true
出力Markdown ファイルはいraw/ または wiki の下書きに保存するクリーンなテキスト
出力バックエンドの明示はい使用したバックエンドを明示します。組み込み機能の品質上の制限も記載し、プレミアム機能であるかのように装ってはいけません
ルールと機能
  • RULE-01(必須):生の HTML ではなく Markdown を使用します。これが目的です(トークンの節約とクリーンなテキスト)。
  • RULE-02(必須):robots.txt/サイトの利用規約を遵守してください。認証で保護されたコンテンツや許可されていないコンテンツをクロールしてはいけません。
  • RULE-03(必須):組み込みバックエンドはオフライン時のフォールバックで、プレミアムバックエンドは BNAL アダプターです。配線されていないプレミアムバックエンドを、動作するものとして示してはいけません。
  • RULE-04(必須):セルフテストを実行します:python3 harness/scripts/web-crawl.py --self-test。
  • 機能:外部 HTTP 取得(または JS レンダリングを伴うセッション内の Web 取得)、HTML から Markdown への変換、raw/ または wiki の下書きへの書き込みのみ。
失敗時の対応
  • サイトが JS でレンダリングされ、組み込み機能しか利用できない → 一部取得(組み込み機能は JS をレンダリングできません)。セッション内の WebFetch を優先するか、プレミアム機能を接続してください。
  • 接続済みのプレミアムバックエンドがない状態でサイト全体のクロールを要求された → 設定が必要なためブロック(組み込み機能は単一ページのみ対応)。その旨を伝え、実行したふりをしてはいけません。
  • robots.txt/利用規約で禁止されている、またはページが認証で保護されている → ブロックし、クロールしてはいけません。
  • 取得エラー → 失敗。URL とエラーを報告してください。

HOW

主なワークフロー
ステップ種類入力アクション出力/終了条件失敗時/次のステップ
W01判定URL、セッションの種類エージェントセッション内でのJSを多用するサイト/レンダリング済みサイト → WebFetch ツール(B01)markdownセッション外 → W02
W02実行URLスクリプトによる単一の静的ページの取得:web-crawl.py fetch 組み込みバックエンド(またはローカルHTMLの場合は md)raw/<slug>.mdJS/サイト全体の取得が必要 → W03
W03実行設定実際のクロール → harness/web-crawl.config.yaml でプレミアムバックエンドを接続し、verified:true に切り替える(B02)プレミアムバックエンドの出力未接続 → 制限を報告し、実行したと主張しない
W04実行markdownraw/ またはWikiの下書きに保存し、その後 /propose / ingest を実行ファイルを保存wiki/ に直接保存しない

各ステップの詳細(W01~W04の正確な情報源):

  1. JSを多用するサイト/レンダリング済みサイトですか? エージェントセッション内では、セッション内の WebFetch ツールを優先してください (JSをレンダリングし、markdownを返します)。最も機能が豊富な方法で、セットアップも不要です。
  2. スクリプトによる単一の静的ページの取得(オフライン、キー不要): python3 harness/scripts/web-crawl.py fetch "<URL>" --out raw/<slug>.md ⚠️ builtin バックエンドは意図的に 基本機能のみ です:urllib による取得と正規表現によるHTML→markdown変換のみで、JSレンダリングなし、単一ページのみ、スマートな抽出なし です。オフライン用の代替手段であり、Firecrawlと同等の品質ではありません。 ローカルのHTMLをすでにダウンロードしていますか? web-crawl.py md <file.html> を使用してください。
  3. 実際のクロール(JSレンダリング、サイト全体、クリーンな抽出)→ 実際のエンジンを接続: 品質を高めるのはプレミアムバックエンドです。harness/web-crawl.config.yaml に backend: firecrawl|crawl4ai|jina と api_key_env/endpoint を設定し、verified:true に切り替えてください。Firecrawl(マネージド、クロール結果をmarkdownに変換、トークンを約5~10分の1に削減、エージェントのループ向けの MCP を提供)または Crawl4AI(オープンソース、セルフホスト、適応型セレクター)を使用できます。組み込みバックエンドがあるため、このスキルはすぐに実行できます。これらが本格的なアップグレードです。
  4. 保存する: markdownを raw/(人間が確認するための受け取り場所)またはWikiの下書きに保存し、その後 /propose / ingest を実行して、抽出した内容をWikiに取り込みます。wiki/ に直接書き込まないでください(R1/R2)。
分岐
ID種類条件動作スキップ/失敗合流先
B01任意の機能WebFetchを使えるエージェントセッション内で実行しており、ページがJSを多用している組み込みスクリプトの代わりにWebFetchを使用するWebFetchが使えない → W02の組み込みバックエンド(JSレンダリングなし、一部のみ)W04
B02任意の機能プレミアムバックエンドが設定され、verified:true になっているfirecrawl/crawl4ai/jinaアダプターでクロールする(JS、サイト全体)未接続 → 組み込みバックエンドを使用し、その制限を明示する(RULE-03)W04
B03任意のユーザー操作ローカルのHTMLをすでにダウンロードしているfetchの代わりに web-crawl.py md <file.html> を使用する—W04
検証と終了条件

python3 harness/scripts/web-crawl.py --self-test が成功すれば、バックエンドは正常です。markdownファイルが raw/ または下書きに存在し、返信で使用したバックエンドを明記したら完了です。組み込みバックエンドの出力品質(抽出、JSコンテンツ)は確認対象ですが、保証するものではありません。

例
  • 成功例:「https://example.com/blog/post を raw にクロールして」(静的ページ、キー不要)→ python3 harness/scripts/web-crawl.py fetch "https://example.com/blog/post" --out raw/example-post.md → markdownを保存し、その後 ingest を提案します。
  • 制限/失敗例: verified:false の状態で「ドキュメントサイト全体をスクレイピングして」→ 組み込みバックエンドは単一ページのみ → harness/web-crawl.config.yaml でプレミアムバックエンドを接続する必要があると報告し、サイト全体をクロールしたと主張しないでください。
参考 — 関連項目
  • harness/scripts/web-crawl.py + harness/web-crawl.config.yaml(バックエンドアダプター)。
  • 実際のエンジン(アップグレード先): Firecrawl(github.com/mendableai/firecrawl、マネージド + MCP)、 Crawl4AI(github.com/unclecode/crawl4ai、オープンソース、セルフホスト)、Jina Reader。PDF/ドキュメントにはMinerU(お気に入りに登録済み)を使用できます。
  • /web-clone — テキストではなく、ページのUI/見た目が必要な場合に使用します。
  • build-now-adapt-later — このバックエンドが採用している隔離パターン。

コメント