doc-scraper について
doc-scraperは、技術ドキュメントをローカルのMarkdownコーパスに変換するGo製クローラーです。MCP経由で、コーディングエージェントにオフライン検索、閲覧、変更追跡の機能を提供します。
主な機能
- 01並列実行と再開に対応したクロール
- 0230種類以上のドキュメント生成器を検出
- 03Markdownページとインデックスファイルの生成
- 04オフラインのBM25検索とページ閲覧
- 05増分クロール、監視モード、差分比較
活用シーン
- 01ネットワークなしで技術ドキュメントを検索
- 02ローカルコーパスからドキュメントを閲覧
- 03クロール間のドキュメント変更を追跡
MCP 対応
MCPサーバーは、保存済みドキュメントの検索・閲覧、新しさの確認、クロール結果の比較に使うツールを公開します。コーディングエージェントはstdioで接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
LLM ドキュメントスクレーパー(doc-scraper)
Go で書かれた、設定可能で並行処理に対応した、中断後に再開できるウェブクローラーです。技術ドキュメントのウェブサイトをスクレイピングし、主要なコンテンツを抽出して、LLM に取り込めるよう Markdown 形式に整えて変換し、その結果をローカルに保存することを目的に設計されています。

doc-scraper はドキュメントサイトをクロールして整った Markdown に変換し、MCP 経由でコーディングエージェントに提供します。エージェントは、学習データやライブウェブ検索から推測する代わりに、選択したドキュメントをオフラインで検索して読み取れます。任意のドキュメントページを doc-scraper add に指定すると、フレームワーク(Docusaurus、Starlight、Sphinx、VitePress、Material for MkDocs、mdBook など、30 以上のドキュメント生成ツール)を検出し、コンテンツセレクターを検証して、設定案を作成します。
ドキュメント:https://sriram-pr.github.io/doc-scraper/
特長
- エージェント向けのオフライン検索: 保存されたコーパスを対象に、BM25 全文検索(
search_docs)とページ読み取り(read_page)を提供し、ネットワークアクセスは不要です - フレームワーク検出: 30 以上のドキュメント生成ツールを認識し、ページ上で各セレクターを検証します。Readability によるフォールバックにも対応し、JavaScript のみで構成されたシェルは、空のままクロールする代わりに報告します
- 整った出力: 各ページをフロントマター付きの GitHub Flavored Markdown に変換し、さらに
pages.jsonl、llms.txt、llms-full.txtを生成します - 負荷に配慮し、中断後に再開可能: robots.txt とサイトマップ、ホストごとのレート制限、バックオフ付き再試行、中断後に再開できるクロール、最後に正常に保存されたコピーを上書きしないステージング出力に対応します
- 常に最新の状態を維持: 増分再クロール、監視モード、クロール履歴(
get_freshness、diff_crawl)に対応します - 複数サイトを一度に処理: 共有制限のもとで並行クロールできます
インストール
リリースページからリリースバイナリ(Linux、macOS、Windows、amd64 および arm64)をダウンロードするか、次のコマンドを実行します。
go install github.com/Sriram-PR/doc-scraper/v2/cmd/doc-scraper@latest
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/data ghcr.io/sriram-pr/doc-scraper:latest crawl -site rust_cli_book
Claude Desktop ユーザーは、代わりに最新リリースから doc-scraper.mcpb をインストールできます。詳細:インストール。
クイックスタート
doc-scraper add -site rust_cli_book https://rust-cli.github.io/book/index.html # detect, preview, confirm
doc-scraper crawl -site rust_cli_book # Markdown lands in ./crawled_docs/rust_cli_book/
doc-scraper search -site rust_cli_book "error handling"
次に、Claude Code に渡します。
claude mcp add --transport stdio doc-scraper -- /path/to/doc-scraper mcp-server -config /path/to/config.yaml
スコープと最初のプロンプトについては、Claude Code の設定をご覧ください。
ドキュメント
- はじめに:インストール、クイックスタート、サイトの追加
- エージェントでの使用(MCP):Claude Code、Claude Desktop、各種 stdio クライアント、および 13 個のツール
- ドキュメントフレームワーク:検出の仕組みと、Docusaurus、Starlight、Sphinx、VitePress、Material for MkDocs、mdBook のガイド
- 設定とCLIのリファレンス
- 検出ベンチマーク
コントリビューション
コントリビューションを歓迎します。作業を始める前にCONTRIBUTING.mdをお読みください。セットアップ、CIで適用されるテストルール、Issueの担当方法、AIを活用したコントリビューションに関するポリシーについて説明しています。good first issueラベルが付いたIssueは、取り組み始めるのに適しています。
セキュリティ上の問題は、SECURITY.mdの説明に従って非公開で報告してください。参加者は全員、行動規範に従う必要があります。
プライバシーポリシー
doc-scraperは何も収集しません。テレメトリー、アナリティクス、アカウントはありません。出力と状態はすべてお使いのマシン上に保存され、ネットワークリクエストは、明示的に依頼されたクロールと取得のみです。ポリシーの全文:PRIVACY.md。
ライセンス
このプロジェクトはApache-2.0 Licenseの下でライセンスされています。
謝辞
- HTML解析にはGoQueryを使用しています
- 変換にはhtml-to-markdownを使用しています
- 状態の永続化にはBadgerDBを使用しています
- MCP サーバーの実装にはmcp-goを使用しています
- コンテンツ抽出のフォールバックにはgo-readabilityを使用しています
- 純粋なGo製クロール履歴インデックスにはmodernc.org/sqliteを使用しています
robots.txtの解析にはrobotstxtを使用しています- 設定の解析にはyaml.v3を使用しています
- クロールジョブIDにはgoogle/uuidを使用しています
- 同時実行数を制限する重み付きセマフォにはx/syncを使用しています
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。