WebSearchAndCrawl
WebSearchAndCrawl
MCP-сервер для аутентифицированного обхода веб-сайтов, поиска и обработки документов
***.
🚀 Назначение
WebSearchAndCrawl — это MCP-сервер (Model Context Protocol), предназначенный для:
Обхода веб-сайтов (включая сайты с авторизацией) с использованием токенов сессии Firefox или автоматизации браузера.
Поиска в обойденном содержимом по регулярным выражениям и сохранения результатов в структурированный индекс.
Скачивания и разбора документов (PDF, DOCX, XLSX и т.д.) с обойденных сайтов.
Потоковой передачи результатов в реальном времени через HTTP для интеграции с MCP-клиентами.
Соблюдения
robots.txtи применения ограничений скорости (5 запросов/сек, максимум 5 потоков).
Этот инструмент идеально подходит для:
Исследователей, которым необходимо парсить сайты с авторизацией или динамические сайты.
Разработчиков, создающих ИИ-агентов, требующих веб-данных.
Автоматизации повторяющихся веб-задач (например, мониторинг, извлечение данных).
Related MCP server: Scout MCP Server
🔧 Возможности
Возможность | Описание |
Аутентифицированный обход | Использует токены сессий Firefox для доступа к страницам с авторизацией. |
Автоматизация браузера | Использует Playwright как запасной вариант для динамического контента или форм входа. |
Белый список доменов | Обходит только URL, соответствующие списку доменов через запятую. |
Ограничение глубины обхода | Настраиваемая глубина обхода (1–9 уровней). |
Поиск по регулярным выражениям | Поиск регулярных выражений в обойденном содержимом или в индексе. |
Разбор документов | Извлекает текст из файлов PDF, DOCX, XLSX и TXT. |
Потоковая передача в реальном времени | Результаты передаются в формате JSONL (порциями по страницам). |
Индексация информации | Сохраняет результаты в JSON-файлах для каждого домена для последующего поиска. |
Ограничение скорости запросов | Обеспечивает 5 запросов/сек и максимум 5 потоков. |
Возобновление обхода | Позволяет возобновлять прерванные обходы с контрольных точек. |
Проверка сессий | Проверяет области действия токенов для предотвращения злоупотреблений. |
📦 Установка
Предварительные требования
Python 3.9+ (рекомендуется: 3.11+).
Firefox (требуется для автоматизации браузера).
Системные библиотеки (для обработки документов):
PDF:
poppler-utils(Linux) илиpdfminer.six(кроссплатформенное решение).DOCX/XLSX:
python-docx,openpyxl.
Шаги
1. Клонируйте репозиторий
git clone https://github.com/bpweatherill/WebSearchAndCrawl.git
cd WebSearchAndCrawl2. Создайте виртуальное окружение
python -m venv venv
source venv/bin/activate # Linux/Mac
# OR
venv\Scripts\activate # Windows3. Установите зависимости
pip install -r requirements.txt4. Установите браузеры Playwright
playwright install firefox5. (Необязательно) настройте переменные окружения
Создайте файл .env в корне проекта:
# Server
MCP_PORT=8808
MCP_HOST=0.0.0.0
# Crawler
MAX_DEPTH=9
MAX_THREADS=5
RATE_LIMIT=5
REQUEST_TIMEOUT=10
MAX_MEMORY_MB=1024
# Firefox
FIREFOX_PROFILE=my_profile # Optional: Specific Firefox profile
DEFAULT_SEARCH_ENGINE=google
# Directories
INDEX_DIR=./index
DOWNLOADS_DIR=./downloads
CHECKPOINTS_DIR=./checkpoints🏃 Использование
1. Запустите MCP-сервер
python -m server.mainСервер запустится на http://localhost:8808 (или на порту, указанном в .env).
2. MCP-инструменты (HTTP-эндпоинты)
Все инструменты возвращают JSON-ответы и поддерживают потоковую передачу для результатов в реальном времени.
Endpoint | Метод | Описание | Требуется в теле запроса |
| POST | Выполнить обход сайта и потоково передавать результаты. | |
| POST | Выполнить поиск в локальном относительно регулярных выражений. | |
| POST | Загрузить документы, соответствующие регулярному выражению. | |
| GET | Вывести список доменов, контент которых проиндексирован. | — |
| GET | Проверка здоровья. | — |
Схемы запросов и ответов
CrawlRequest
{
"url": "https://www.nasa.gov",
"whitelist_domains": "nasa.gov",
"max_depth": 3,
"use_token": false,
"firefox_profile": "my_profile"
}url: стартовый URL для обхода.whitelist_domains: список разрешенных доменов через запятую (например,"nasa.gov,spacex.com").max_depth: максимальная глубина обхода (1-9).use_token: использовать токен сессии Firefox при наличии.firefox_profile: имя профиля Firefox (необязательно).
Потоковый ответ (JSONL):
{
"excerpt": "NASA's Perseverance Rover lands on Mars...",
"full_text": "Full article text here...",
"url": "https://www.nasa.gov/mars2020",
"timestamp": "2024-05-20T12:00:00Z",
"domain": "nasa.gov"
}SearchIndexRequest
{
"domain": "nasa.gov",
"regex": ".*Mars.*",
"max_results": 10
}domain: домен для поиска (например,"nasa.gov").regex: регулярное выражение для сопоставления.max_results: максимальное количество возвращаемых результатов.
Ответ:
[
{
"url": "https://www.nasa.gov/mars2020",
"excerpt": "NASA's Perseverance Rover lands on Mars...",
"timestamp": "2024-05-20T12:00:00Z"
}
]DownloadRequest
{
"domain": "nasa.gov",
"regex": ".*\\.pdf$",
"output_dir": "./downloads/nasa.gov"
}domain: домен, из которого выполняется загрузка.regex: регулярное выражение для файлов, которые нужно загрузить (например,"*.pdf").output_dir: пользовательский каталог вывода (необязательно).
Потоковый ответ (JSONL):
{
"filename": "./downloads/nasa.gov/mars_rover.pdf",
"url": "https://www.nasa.gov/pdf/mars_rover.pdf",
"parsed_text": "Extracted text from PDF..."
}WebSearchRequest
{
"query": "NASA Mars missions",
"search_engine": "google",
"use_token": false,
"firefox_profile": "my_profile"
}query: поисковый запрос.search_engine: поисковая система (по умолчанию: поисковая система Firefox).use_token: использовать токен сессии Firefox при наличии.firefox_profile: имя профиля Firefox (необязательно).
Потоковый ответ (JSONL):
{
"title": "Mars 2020 Mission - NASA",
"url": "https://www.nasa.gov/mars2020",
"snippet": "Learn about the Perseverance Rover..."
}🔍 Примеры
1. Выполнить обход NASA.gov и индексировать результаты
curl -X POST http://localhost:8808/crawl_website \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.nasa.gov",
"whitelist_domains": "nasa.gov",
"max_depth": 2,
"use_token": false
}'2. Выполнить поиск в индексированном содержимом для «Mars»
curl -X POST http://localhost:8808/search_index \
-H "Content-Type: application/json" \
-d '{
"domain": "nasa.gov",
"regex": ".*Mars.*",
"max_results": 5
}'3. Скачать PDF-файлы с NASA.gov
curl -X POST http://localhost:8808/download_documents \
-H "Content-Type: application/json" \
-d '{
"domain": "nasa.gov",
"regex": ".*\\.pdf$"
}'4. Использовать Firefox для поиска через Google
curl -X POST http://localhost:8808/get_search_results \
-H "Content-Type: application/json" \
-d '{
"query": "NASA Mars missions",
"search_engine": "google"
}'📁 Структура проекта
WebSearchAndCrawl/
│
├── server/ # Core server logic
│ ├── __init__.py
│ ├── main.py # FastAPI app + MCP tools
│ ├── config.py # Configuration settings
│ ├── schemas.py # Pydantic request/response models
│ │
│ ├── firefox/ # Firefox browser automation
│ │ ├── __init__.py
│ │ ├── controller.py # Playwright Firefox management
│ │ └── token_manager.py # Session token handling
│ │
│ ├── crawler/ # Web crawling logic
│ │ ├── __init__.py
│ │ ├── crawler.py # Main crawling logic
│ │ └── rate_limiter.py # Thread/rate limiting
│ │
│ ├── indexer/ # Indexing and search
│ │ ├── __init__.py
│ │ ├── indexer.py # JSON index management
│ │ └── search_engine.py # Regex search
│ │
│ ├── downloader/ # Document downloading and parsing
│ │ ├── __init__.py
│ │ ├── downloader.py # Download logic
│ │ └── parsers/ # File type parsers
│ │ ├── __init__.py
│ │ ├── pdf_parser.py
│ │ ├── docx_parser.py
│ │ └── xlsx_parser.py
│ │
│ └── streamer.py # Chunked JSON streaming
│
├── tests/ # Unit and integration tests
│ ├── __init__.py
│ ├── test_firefox.py
│ └── test_crawler.py
│
├── index/ # Index files (auto-generated)
│ ├── nasa.gov.json
│ └── ...
│
├── downloads/ # Downloaded documents (auto-generated)
│ ├── nasa.gov/
│ │ ├── document1.pdf
│ │ └── ...
│ └── ...
│
├── checkpoints/ # Crawl checkpoints (auto-generated)
│ └── ...
│
├── requirements.txt # Python dependencies
├── .env.example # Example environment variables
└── README.md # This file⚙️ Конфигурация
Переменные окружения
Переменная | По умолчанию | Описание |
|
| Порт HTTP-сервера. |
|
| Хост HTTP-сервера. |
|
| Максимальная глубина обхода (1-9). |
|
| Максимальное количество потоков. |
|
| Максимальное количество запросов в секунду. |
|
| Тайм-аут запросов (в секундах). |
|
| Максимальное использование памяти (в МБ). |
|
| Имя профиля Firefox (необязательно). |
|
| Поисковая система по умолчанию. |
|
| Каталог, где хранятся файлы. |
|
| Каталог загруженных файлов. |
|
| Каталог контрольных точек обхода. |
🛡️ Вопросы безопасности
Сессионные токены:
Токены хранятся только в памяти (не сохраняются на диск).
Область действия токенов проверяется для предотвращения злоупотреблений (например, токен для
nasa.govне может использоваться дляevil.com).
Санация входных данных:
Все входящие данные (URL, регулярные выражения и т.д.) обезаражены для предотвращения инъекций.
Ограничение скорости:
Обеспечивается 5 запросов/сек и максимум 5 потоков, чтобы не перегружать серверы.
Соблюдение
robots.txt:Обходчик уважает
robots.txtи пропускает запрещенные URL.
Белый список:
Обходятся только URL, соответствующие доменам из белого списка.
🚀 Дальнейшие улучшения (дорожной карты)
Улучшение | Описание | Приоритет |
Хранение токенов на диске | Сохранение токенов в зашифрованном файле для работы после перезапуска. | Средний |
Полный разбор | Правильный разбор правил | Средний |
Продвинутая обработка пагинации | Обнаружение и переход по приходится страницам (например, к. |
-" button" **)| Высокий |
| Поддержка ленивой загрузки | Обнаружение и активация контента с ленивой загрузкой (например, бесконечная прокрутка). | Высокий |
| Контрольные точки | Сохранение состояния обхода для возобновления прерванных обходов. | Высокий |
| Полнотекстовый поиск | Поддержка полнотекстового поиска в дополнение к регулярным выражениям. | Низкий |
| База данных в качестве хранилища | Замена JSON-файлов на БД SQLite/PostgreSQL для масштабируемости. | Низкий |
| Распределенный обход | Поддержка горизонтального масштабирования с несколькими воркерами. | Низкий |
| Поддержка Docker | Добавление Dockerfile для развертывания в контейнере. | Medium |
| Вспомогательные модули аутентификации | Всторенная поддом для распространенных методов аутентификации (OAuth, SAML). | Middle |
| Поддержка прокси | Добавление прокси для обхода за файлов. | Low |
| Пользовательские заголовки | Возможность задавать пользовательские заголовки для запросов. | Medium |
| Webhook-уведомления | Уведомление на webhook при обнаружении новых результатов. | Low |
🤝 Соавторство
Сделайте fork (ответвление) репозитория.
Создайте ветку для функции (
git checkout -b feature/your-feature).Зафиксируйте свои изменения (
git commit -m "Add your feature").загрузите своим ветку (
git push origin feature/your-feature).Откройте Pull Request.
📜 Лицензия
Этот проект распространяется под лицензией MIT License. См. LICENSE для получения информации.
📞 Поддержка
Issues: Сообщите об ошибках или запрос новых возможностей в разделе GitHub Issues.
Discussions: Присоединяйтесь к обсуждению в разделе GitHub Discussions для вопросов и ответов.
🏆 Благодарности
Playwright: за автоматизацию браузера.
FastAPI: за HTTP-сервер.
pdfminer.six: за разбор PDF.
python-docx/openpyxl: за разбор файлов Office.# WebSearchAndCrawl
MCP-сервер для аутентичного веб-скрапинга, поиска и обработки документов
***.
🚀 Назначение
WebSearchAndCrawl — это MCP-сервер (Model Context Protocol), разработанный для:
Обхода веб-сайтов (включая сайты с авторизацией) с использованием токенов сессий Firefox или автоматизации браузера.
Поиска в обходе контента по регулярным выражениям и сохранения результатов в структурированный индекс.
Загрузка и разбора документов (PDF, DOCX, XLSX и т.д.) с обойденных сайтов.
Стримминга результатов в реальном времени через HTTP для интеграции с MCP-клиентами.
Соблюдение
robots.txtи ограничения скорости запросов (5 запросов в секунду, максимум 5 потоков).
Этот инструмент идеально подходит для:
Исследователей, нуждающихся в scraping аутентифицированных или динамических веб-сайтов.
Разработчиков, создающих ИИ-агентов, требующих веб-данных.
Автоматизации повторяющихся веб-задач (например, мониторинг, извлечение данных).
🔧 Возможности
Возможность | Описание |
Аутентифицированный обход | Использует токены сессий Firefox для доступа к защищённым страницам. |
Автоматизация браузера | Использует Playwright в качестве решение для динамического контента или форм входа. |
Белый список доменов | Обход только URL из списка доменов, разделённых запятыми. |
Ограничение глубины | Настраиваемая глубина обхода (от 1 до 9 уровней). |
Регулярный поиск | Поиск в обойденном контенте или по индексу по регулярному выражению. |
Разбор документов | Извлечение текста из файлов PDF, DOCX, XLSX и TXT. |
Потоковая передача | Результаты передаются в формате JSONL (фрагментами по странице). |
Индексирование | Сохраняет результаты в JSON-файлы для каждого домена для дальнейшего поиска. |
Ограничение скорости | Поддерживает 5 запросов/сек и максимум 5 потоков. |
Возобновление | Может возобновлять прерванные обходы с точек сохранения. |
Проверка сессий | Валидация областей действия токенов для предотвращения злоупотреблений. |
📦 Установка
Необходимые компоненты
Python 3.9+ (рекомендуется: 3.11+).
Firefox (требуется для автоматизации браузера).
Системные библиотеки (для обработки документов):
PDF:
poppler-utils(Linux) илиpdfminer.six(кроссплатформенная версия).DOCX/XLSX:
python-docx,openpyxl.
Шаги
1. Клонируйте репозиторий
git clone https://github.com/bpweatherill/WebSearchAndCrawl.git
cd WebSearchAndCrawl2. Создайте виртуальное окружение
python -m venv venv
source venv/bin/activate # Linux/Mac
# OR
venv\Scripts\activate # Windows3. Установите зависимости
pip install -r requirements.txt4. Установите браузеры Playwright
playwright install firefox5. (Необязательно) Настройте переменные окружения
Создайте файл .env в корне проекта:
# Server
MCP_PORT=8808
MCP_HOST=0.0.0.0
# Crawler
MAX_DEPTH=9
MAX_THREADS=5
RATE_LIMIT=5
REQUEST_TIMEOUT=10
MAX_MEMORY_MB=1024
# Firefox
FIREFOX_PROFILE=my_profile # Optional: Specific Firefox profile
DEFAULT_SEARCH_ENGINE=google
# Directories
INDEX_DIR=./index
DOWNLOADS_DIR=./downloads
CHECKPOINTS_DIR=./checkpoints🏃 Использование
1. Запустите MCP-сервер
python -m server.mainСервер будет запущен на http://localhost:8808 (или на порту, указанном в .env).
2. MCP-инструменты (HTTP endpoints)
Все инструменты возвращают JSON-ответы и поддерживают стриминг для результатов реальном времени.
Endpoint | Метод | Описание | Тело запроса |
| POST | Обходить веб-сайт и передавать результаты. | |
| POST | Искать в локальном индексе регулярное выражение. | |
| POST | Скачать документы, соответствующие регулярному выражению. | |
| POST | Использовать поисковую систему Firefox для выборки результатов. | |
| GET | Список всех доменов с индексированным содержимым. | - |
| GET | Проверка состояния. | - |
Схемы запросов/ответов
CrawlRequest
{
"url": "https://www.nasa.gov",
"whitelist_domains": "nasa.gov",
"max_depth": 3,
"use_token": false,
"firefox_profile": "my_profile"
}URL: Начальный URL (обход).whitelist_domains: список разрешённых доменов через запятую (например,"nasa.ru,spacex.com").max_depth: максимальная глубина обхода (от 1 до 9).use_token: Использовать токен сессии Firefox при наличии.firefox_profile: имя профиля Firefox (необязательно).
Потоковый ответ (JSONL):
{
"excerpt": "NASA's Perseverance Rover lands on Mars...",
"full_text": "Full article text here...",
"url": "https://www.nasa.gov/mars2020",
"timestamp": "2024-05-20T12:00:00Z",
"domain": "nasa.gov"
}SearchIndexRequest
{
"domain": "nasa.gov",
"regex": ".*Mars.*",
"max_results": 10
}domain: дmosферу поиска (например,"nasa.ru").regex: регулярное выражение для сопоставления.max_results: Максимальное количество результатов.
Ответ:
[
{
"url": "https://www.nasa.gov/mars2020",
"excerpt": "NASA's Perseverance Rover lands on Mars...",
"timestamp": "2024-05-20T12:00:00Z"
}
]DownloadRequest
{
"domain": "nasa.gov",
"regex": ".*\\.pdf$",
"output_dir": "./downloads/nasa.gov"
}domain: Домен, из которого скачивать данные.regex: регулярное выражение для загружаемых файлов (например,"*.pdf").output_dir: пользовательский каталог вывода (необязательно).
Потоковый ответ (JSONL):
{
"filename": "./downloads/nasa.gov/mars_rover.pdf",
"url": "https://www.nasa.gov/pdf/mars_rover.pdf",
"parsed_text": "Extracted text from PDF..."
}WebSearchRequest
{
"query": "NASA Mars missions",
"search_engine": "google",
"use_token": false,
"firefox_profile": "my_profile"
}query: поисковый запрос.search_engine: поисковая система (по умолчанию: поисковая система Firefox).use_token: использовать токен-сессии Firefox.firefox_profile: имя профиля Firefox (необязательно).
Потоковый ответ (JSON):
{
"title": "Mars 2020 Mission - NASA",
"url": "https://www.nasa.gov/mars2020",
"snippet": "Learn about the Perseverance Rover..."
}🔍 Примеры
1. Обход NASA.ru и индексирование результатов
curl -X POST http://localhost:8808/crawl_website \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.nasa.gov",
"whitelist_domains": "nasa.gov",
"max_depth": 2,
"use_token": false
}'2. Поиск в индексированном содержимом ("Марс")
curl -X POST http://localhost:8808/search_index \
-H "Content-Type: application/json" \
-d '{
"domain": "nasa.gov",
"regex": ".*Mars.*",
"max_results": 5
}'3. Загрузка PDF-файлов с NASA.ru
curl -X POST http://localhost:8808/download_documents \
-H "Content-Type: application/json" \
-d '{
"domain": "nasa.gov",
"regex": ".*\\.pdf$"
}'4. Использование Firefox для поиска через Google
curl -X POST http://localhost:8808/get_search_results \
-H "Content-Type: application/json" \
-d '{
"query": "NASA Mars missions",
"search_engine": "google"
}'📁 Структура проекта
WebSearchAndCrawl/
│
├── server/ # Core server logic
│ ├── __init__.py
│ ├── main.py # FastAPI app + MCP tools
│ ├── config.py # Configuration settings
│ ├── schemas.py # Pydantic request/response models
│ │
│ ├── firefox/ # Firefox browser automation
│ │ ├── __init__.py
│ │ ├── controller.py # Playwright Firefox management
│ │ └── token_manager.py # Session token handling
│ │
│ ├── crawler/ # Web crawling logic
│ │ ├── __init__.py
│ │ ├── crawler.py # Main crawling logic
│ │ └── rate_limiter.py # Thread/rate limiting
│ │
│ ├── indexer/ # Indexing and search
│ │ ├── __init__.py
│ │ ├── indexer.py # JSON index management
│ │ └── search_engine.py # Regex search
│ │
│ ├── downloader/ # Document downloading and parsing
│ │ ├── __init__.py
│ │ ├── downloader.py # Download logic
│ │ └── parsers/ # File type parsers
│ │ ├── __init__.py
│ │ ├── pdf_parser.py
│ │ ├── docx_parser.py
│ │ └── xlsx_parser.py
│ │
│ └── streamer.py # Chunked JSON streaming
│
├── tests/ # Unit and integration tests
│ ├── __init__.py
│ ├── test_firefox.py
│ └── test_crawler.py
│
├── index/ # Index files (auto-generated)
│ ├── nasa.gov.json
│ └── ...
│
├── downloads/ # Downloaded documents (auto-generated)
│ ├── nasa.gov/
│ │ ├── document1.pdf
│ │ └── ...
│ └── ...
│
├── checkpoints/ # Crawl checkpoints (auto-generated)
│ └── ...
│
├── requirements.txt # Python dependencies
├── .env.example # Example environment variables
└── README.md # This file⚙️ Конфигурация
Переменные окружения
Имя переменной | По умолчанию | Описание |
|
| Порт HTTP-сервера. |
|
| Хост HTTP-сервера. |
|
| Максимальная глубина обхода (от 1 до 9). |
|
| Максимальное количество потоков. |
|
| Максимальное число запросов в секунду. |
|
| Тайм-аут запросов (в секундах). |
|
| Максимальный объём памяти (в МБ). |
|
| Имя профиля Firefox (необязательно). |
|
| Поисковая система по умолчанию. |
|
| Каталог для файлов индекса. |
|
| Каталог для загруженных файлов. |
|
| Каталог контрольных точек обхода. |
🛡️ Аспекты безопасности
Токены сессии:
Токены хранятся только в полной мере (не сохраняются на диск).
Области применения токенов (проверяются на предмет несоответствия (например, токен для
nasa.govнельзя использовать дляevil.com).
Очистка входных данных:
Все входные данные (URL, регулярные выражения и т. д.) санируются для защиты от внедрения.
Ограничение скорости:
Принудительно задаются 5 запросов/с и максимум 5 потоков, чтобы не перегружать серверы.
Уважение
robots.txt:Краулер соблюдает
robots.txtи пропускает запрещённые URL.
Белый список:
Обход разрешён только для URL из списка доменов.
🚀 План улучшений (Roadmap)
Доработка | Описание | Приоритет |
Хранение токенов | Сохранение токенов в защищённом файле для постоянства между перезапусками. | Низкий |
Полный | Корректный разбор всех правил | Низкий |
Обработка пагинации | Определение и навигация по ссылкам пагинации (например, | Высокий |
Ленивая загрузка | Обнаружение и активация динамически загружаемого контента (например, scroll-load). | Высокий |
Контрольные точки | Сохранение состояния обхода для возобновления после прерываний. | Высокий |
Полнотекстовый поиск | Поддержка полнотекстового поиска в дополнение к регулярными выражениям. | Обычный |
Использование базы данных | Замена JSON-файлов на SQLite/SQLAlchemy для масштабируемости. | Средний |
Распределённый обход | Горизонтальное расширение с несколькими воркерами. | Средний |
Поддержка Docker | Добавление | Высокий |
Вспомогательные функции аутентификации | Встроенная поддержка общих | Низкий |
Поддержка прокси | Работа через прокси для обхода сетевых ограничений. | Низкий |
Пользовательские заголовки | Возможность устанавливать собственные заголовки запросов. | Низкий |
Вебхук-уведомления | Отправка уведомлений на, URL при появлении новых результатов. | Средний |
🤝 Запланированные улучшения
Основайте решение.
Создайте ветку для ваших изменений.
Внесите свои изменения.
Выотайте исходных ветку в origin.
Откройте Pull Request.
📜 Лицензия
Этот проект распространяется под лицензией MIT. Подробнее см. LICENSE.
📞 Поддержка
Проблемы: Сообщить об ошибках или запросить функции на странице GitHub Issues .
** Обсуждения**: Присоединяйтесь к обсуждениям на GitHub Discussions для вопросов.
🏆 Благодарность
Playwright: Автоматизация браузера.
FastAPI: HTTP-сервер.
pdfminer.six: Разбор PDF-файлов.
python-docx/openpyxl: Разбор файлов Office.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityCmaintenanceProvides browser automation and web scraping as MCP tools, enabling autonomous URL ingestion, crawling, extraction, and anti-bot handling with interactive browser control.625MIT

Scout MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables web search, scraping, extraction, and crawling through an MCP interface, allowing coding agents to access real-time web data.1MIT- AlicenseNot gradedqualityCmaintenanceA read-only Python MCP server for authorized website research, structured data extraction, downloadable-document analysis, and content auditing inside OpenCode. It crawls authorized public domains with safety constraints including robots.txt respect, SSRF defenses, bounded concurrency, and content-type allowlists.MIT
- AlicenseNot gradedqualityBmaintenanceEnables web search and scraping through MCP, running locally with courtesy rate limiting and caching.4ISC
Related MCP Connectors
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bpweatherill/WebSearchAndCrawl'
If you have feedback or need assistance with the MCP directory API, please join our Discord server