MCP Website Downloader について
MCP Website Downloader は、ドキュメントサイトをダウンロードし、RAG インデックス用のファイルを準備する MCP サーバーです。サイトのローカル保存を必要とする人向けに、ページやアセットの取得とインデックスファイルの生成を行います。README ではリンク構造の維持は不完全とされています。
主な機能
- 01ドキュメントサイトのページ取得
- 02CSS・JS・画像アセットの取得
- 03ドメインとディレクトリ別の整理
- 04RAG インデックスファイルの生成
- 05単一用途のダウンロードツール
活用シーン
- 01ドキュメントサイトをローカルライブラリに保存
- 02RAG ワークフロー用のサイトファイルを準備
- 03ページと静的アセットをまとめて保管
MCP 対応
MCP サーバーとして、MCP クライアントにウェブサイトのダウンロードツールを公開します。URL からページとアセットを取得し、指定されたライブラリディレクトリに保存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Website Downloader
ドキュメントサイトをダウンロードし、RAG インデックス作成に備えるシンプルな MCP サーバーです。
機能
- ドキュメントサイト全体をダウンロードします。まあ、大きなチャンクですが。
- リンク構造とナビゲーションを維持します。実際はそうでもありません。笑
- アセット(CSS、JS、画像)をダウンロードして整理しますが、AI にはあまり使いやすくありません。おそらく、何らかの解析やベクトル化を行ってデータベースなどに格納する必要があります。
- RAG システム用のクリーンなインデックスを作成します。現状では各フォルダーにインデックスを作成しているようですが、確認すらしていません。
- 単一目的のシンプルな MCP インターフェースです。はい。
インストール
フォークしてダウンロードし、リポジトリに移動します。
uv venv
./venv/Scripts/activate
pip install -e .
独自のパスを指定して、これを claude_desktop_config.json に記述します。
"mcp-windows-website-downloader": {
"command": "uv",
"args": [
"--directory",
"F:/GithubRepos/mcp-windows-website-downloader",
"run",
"mcp-windows-website-downloader",
"--library",
"F:/GithubRepos/mcp-windows-website-downloader/website_library"
]
},

気にする必要のない、幻覚かもしれないその他の使い方(笑):
- サーバーを起動します。
python -m mcp_windows_website_downloader.server --library docs_library
- Claude Desktop または他の MCP クライアントから使用します。
result = await server.call_tool("download", {
"url": "https://docs.example.com"
})
出力構造
docs_library/
domain_name/
index.html
about.html
docs/
getting-started.html
...
assets/
css/
js/
images/
fonts/
rag_index.json
開発
このサーバーは標準的な MCP アーキテクチャに従っています。
src/
mcp_windows_website_downloader/
__init__.py
server.py # MCP server implementation
core.py # Core downloader functionality
utils.py # Helper utilities
コンポーネント
server.py:ツールの登録とリクエストを処理する、MCP サーバーのメイン実装core.py:適切なアセット処理機能を備えた、ウェブサイトのダウンロード機能の中核utils.py:ファイル処理と URL 処理のためのヘルパーユーティリティ
設計原則
-
単一責任
- 各モジュールには明確な目的があります
- サーバーは MCP インターフェースを処理します
- Core はダウンロードを処理します
- Utils は共通処理を担当します
-
クリーンな構造
- 元のサイト構造を維持します
- アセットを種類ごとに整理します
- RAG システム向けに分かりやすいインデックスを作成します
-
堅牢な動作
- 適切なエラー処理
- 妥当な深度制限
- アセットのダウンロード検証
- クリーンな URL/パス処理
RAG インデックス
rag_index.json ファイルには次の内容が含まれます。
{
"url": "https://docs.example.com",
"domain": "docs.example.com",
"pages": 42,
"path": "/path/to/site"
}
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- プルリクエストを送信します
ライセンス
MIT License - LICENSE ファイルを参照してください
エラー処理
サーバーは一般的な問題に対応します。
- 無効な URL
- ネットワークエラー
- アセットのダウンロード失敗
- 不正な形式の HTML
- 深い再帰
- ファイルシステムエラー
エラーレスポンスの形式:
{
"status": "error",
"error": "Detailed error message"
}
成功レスポンス:
{
"status": "success",
"path": "/path/to/downloaded/site",
"pages": 42
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
