Загрузчик веб-сайта MCP
Простой MCP-сервер для загрузки веб-сайтов с документацией и подготовки их к индексации RAG.
Функции
Загружает полные сайты документации, во всяком случае большие куски.
Сохраняет структуру ссылок и навигацию, не совсем. lol
Загружает и организует ресурсы (CSS, JS, изображения), но не очень дружелюбен к ИИ и, вероятно, все это требует некоторого анализа или векторизации в базу данных или чего-то в этом роде.
Создает чистый индекс для систем RAG, в настоящее время, похоже, создает индекс в каждой папке, даже не смотрел на это.
Простой специализированный интерфейс MCP, да.
Related MCP server: Website Downloader
Установка
Сделайте форк и загрузите, перейдите в репозиторий.
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
Ядро обрабатывает загрузку
Utils выполняет общие операции
Чистая структура
Сохраняет исходную структуру сайта
Организует активы по типу
Создает понятный индекс для систем RAG
Надежная работа
Правильная обработка ошибок
Разумные пределы глубины
Проверка загрузки активов
Чистая обработка URL/путей
Индекс РАГ
Файл rag_index.json содержит:
{
"url": "https://docs.example.com",
"domain": "docs.example.com",
"pages": 42,
"path": "/path/to/site"
}Внося вклад
Форк репозитория
Создать ветку функций
Внесите изменения
Отправить запрос на извлечение
Лицензия
Лицензия MIT — см. файл LICENSE
Обработка ошибок
Сервер обрабатывает распространенные проблемы:
Недействительные URL-адреса
Ошибки сети
Сбои при загрузке активов
Неправильный HTML
Глубокая рекурсия
Ошибки файловой системы
Ответы об ошибках имеют следующий формат:
{
"status": "error",
"error": "Detailed error message"
}Успешные ответы:
{
"status": "success",
"path": "/path/to/downloaded/site",
"pages": 42
}