中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский
MCP-сервер для получения содержимого веб-страниц с использованием безголового браузера Playwright.
🌟 Рекомендуем: OllaMan — мощный менеджер моделей AI Ollama.
Поддержка JavaScript: В отличие от традиционных веб-скрейперов, Fetcher MCP использует Playwright для выполнения JavaScript, что позволяет работать с динамическим контентом и современными веб-приложениями.
Интеллектуальное извлечение контента: Встроенный алгоритм Readability автоматически извлекает основной контент веб-страниц, удаляя рекламу, навигацию и другие несущественные элементы.
Гибкий формат вывода: Поддерживает вывод как в HTML, так и в Markdown, что упрощает интеграцию с различными приложениями.
Параллельная обработка: Инструмент fetch_urls
позволяет одновременно загружать несколько URL, значительно повышая эффективность пакетных операций.
Оптимизация ресурсов: Автоматически блокирует ненужные ресурсы (изображения, таблицы стилей, шрифты, медиа) для снижения нагрузки на пропускную способность и повышения производительности.
Надежная обработка ошибок: Комплексная система обработки ошибок и логирования обеспечивает стабильную работу даже с проблемными веб-страницами.
Настраиваемые параметры: Точный контроль над таймаутами, извлечением контента и форматированием вывода для различных сценариев использования.
Запуск напрямую с помощью npx:
npx -y fetcher-mcp
Первоначальная настройка — установите необходимый браузер, выполнив следующую команду в терминале:
npx playwright install chromium
Используйте параметр --transport=http
для одновременного запуска потокового HTTP-эндпоинта и SSE-эндпоинта:
npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000
После запуска сервер предоставляет следующие эндпоинты:
/mcp
— Потоковый HTTP-эндпоинт (современный протокол MCP)/sse
— SSE-эндпоинт (устаревший протокол MCP)Клиенты могут выбрать подходящий метод подключения в зависимости от своих потребностей.
Запустите с опцией --debug
, чтобы отобразить окно браузера для отладки:
npx -y fetcher-mcp --debug
Настройте этот MCP-сервер в Claude Desktop:
На MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
На Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetcher": {
"command": "npx",
"args": ["-y", "fetcher-mcp"]
}
}
}
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
Создайте файл docker-compose.yml
:
version: "3.8"
services:
fetcher-mcp:
image: ghcr.io/jae-jae/fetcher-mcp:latest
container_name: fetcher-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
# Using host network mode on Linux hosts can improve browser access efficiency
# network_mode: "host"
volumes:
# For Playwright, may need to share certain system paths
- /tmp:/tmp
# Health check
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
Затем выполните:
docker-compose up -d
fetch_url
— Получение содержимого веб-страницы по указанному URL
url
: URL веб-страницы для загрузки (обязательный параметр)timeout
: Таймаут загрузки страницы в миллисекундах, по умолчанию 30000 (30 секунд)waitUntil
: Определяет, когда навигация считается завершенной, варианты: 'load', 'domcontentloaded', 'networkidle', 'commit', по умолчанию 'load'extractContent
: Извлекать ли основной контент интеллектуально, по умолчанию truemaxLength
: Максимальная длина возвращаемого контента (в символах), по умолчанию без ограниченийreturnHtml
: Возвращать ли контент в формате HTML вместо Markdown, по умолчанию falsewaitForNavigation
: Ожидать ли дополнительную навигацию после первоначальной загрузки страницы (полезно для сайтов с антибот-проверкой), по умолчанию falsenavigationTimeout
: Максимальное время ожидания дополнительной навигации в миллисекундах, по умолчанию 10000 (10 секунд)disableMedia
: Отключать ли медиаресурсы (изображения, таблицы стилей, шрифты, медиа), по умолчанию truedebug
: Включить ли режим отладки (показывать окно браузера), переопределяет флаг --debug в командной строке, если указанfetch_urls
— Пакетное получение содержимого нескольких URL параллельно
urls
: Массив URL для загрузки (обязательный параметр)fetch_url
Ожидание полной загрузки: Для сайтов с CAPTCHA, редиректами или другими проверочными механизмами укажите в запросе:
Пожалуйста, дождитесь полной загрузки страницы
Это активирует параметр waitForNavigation: true
.
Увеличение таймаута: Для медленно загружающихся сайтов:
Пожалуйста, установите таймаут загрузки страницы в 60 секунд
Это соответствующим образом настроит параметры timeout
и navigationTimeout
.
Сохранение оригинальной HTML-структуры: Когда извлечение контента может завершиться неудачей:
Пожалуйста, сохраните оригинальное HTML-содержимое
Устанавливает extractContent: false
и returnHtml: true
.
Получение полного содержимого страницы: Когда извлеченного контента недостаточно:
Пожалуйста, загрузите полное содержимое веб-страницы, а не только основной контент
Устанавливает extractContent: false
.
Возврат контента в HTML: Когда требуется формат HTML вместо Markdown:
Пожалуйста, верните контент в формате HTML
Устанавливает returnHtml: true
.
Пожалуйста, включите режим отладки для этой операции
Устанавливает debug: true
, даже если сервер был запущен без флага --debug
.Ручной вход: Для входа с использованием своих учетных данных:
Пожалуйста, запустите в режиме отладки, чтобы я мог вручную войти на сайт
Устанавливает debug: true
или использует флаг --debug
, оставляя окно браузера открытым для ручного входа.
Взаимодействие с браузером в режиме отладки: Когда режим отладки включен:
Включение отладки для конкретных запросов: Даже если сервер уже запущен, вы можете включить режим отладки для конкретного запроса:
Пожалуйста, включите режим отладки для этого шага аутентификации
Устанавливает debug: true
только для этого запроса, открывая окно браузера для ручного входа.
npm install
Установите браузеры, необходимые для Playwright:
npm run install-browser
npm run build
Используйте MCP Inspector для отладки:
npm run inspector
Вы также можете включить видимый режим браузера для отладки:
node build/index.js --debug
Распространяется под лицензией MIT License