mcpsurfr
Локальный веб-поиск для агента без ключей API: результаты ранжируются на вашей машине, в ответ идут только нужные абзацы
- 151 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Страницы загружаются с имитацией браузера, а условия сайтов могут запрещать автоматический доступ
- Запросы уходят во внешние поисковые системы и видны им
Установка
- Работает в
Ручная установка
uvx mcpsurfrЗапуск сервера по stdio, версия кэшируется при первом запуске.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Страницы загружаются с имитацией браузера, а условия сайтов могут запрещать автоматический доступ
- Запросы уходят во внешние поисковые системы и видны им
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
mcpsurfr ищет в сети через библиотеку ddgs, которая опрашивает несколько поисковых систем без ключей и пропускает заблокированные. Затем небольшая модель MobileBERT на чистом numpy переранжирует выдачу на устройстве, и сервер скачивает только лучшие страницы. Из них остается основной текст без меню, баннеров и подвалов, PDF читаются по текстовому слою, а у сайтов с копиями в markdown берется они же. Инструментов четыре: `search` возвращает только абзацы, отвечающие на вопрос, около десятой части токенов; `rag_search_ddgs` отдает страницы целиком; `deep_research` объединяет несколько запросов; `read_url` читает одну страницу, при `query` только нужные места. Stack Exchange, Wikipedia, GitHub, Hacker News, PyPI, npm и crates.io читаются через их бесплатные API. Ответ перечисляет пропущенные страницы с причиной.
Для кого. Разработчикам, которые хотят дать агенту поиск в сети без платных ключей и без лишних токенов в контексте.
Подходит, если
- Агенту нужна свежая документация библиотеки, и вместо десяти страниц он получает пять абзацев с ответом
- Исследование по теме требует нескольких поисковых запросов, и `deep_research` сводит их без дублей
- Нужен ответ со Stack Overflow с принятым решением первым, а не вся ветка
- Ключей поисковых API нет, а платить за них не хочется
Не подходит, если
- Нужна стабильная выдача для промышленной нагрузки: поиск идет через публичные движки, и они блокируют частые запросы
- Нужно читать страницы, целиком построенные на JavaScript: такие страницы попадают в список пропущенных
- Нужен поиск по закрытым корпоративным данным: сервер ищет только в открытой сети
Пример запроса к агенту
Найди, как в последней версии FastAPI настроить lifespan, и покажи только абзацы с ответом и ссылки на страницыMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
Google часто блокирует запросы, и сервер сам переходит на режим `auto`. Страницы, закрытые от скрейперов или целиком на JavaScript, а также ветки Reddit и материалы msn.com попадают в список пропущенных со ссылкой и сниппетом. Страницы загружаются с имитацией браузера, а часть сайтов запрещает автоматический доступ условиями, и это остается на совести пользователя. Поиск и страницы кэшируются на пять минут. Модель ранжирования загружается при первом запуске. Проект раньше назывался `mcp-local-rag`. Лицензия MIT, установка через `uvx` или Docker из ghcr.io.
Как отключить. Удалите регистрацию сервера в клиенте (`claude mcp remove mcpsurfr`) и кэш `uv`, если ставили пакет через `uv tool install`.
Частые вопросы
Нужны ли ключи API?
Нет, поиск идет через ddgs без ключей, а ранжирование выполняет локальная модель MobileBERT на вашей машине.
Как подключить к Claude Code?
Командой `claude mcp add mcpsurfr -- uvx mcpsurfr`. Версию фиксируют записью `mcpsurfr@<версия>`, а `mcpsurfr@latest` берет свежий релиз при каждом запуске.
Чем `search` отличается от `rag_search_ddgs`?
`search` возвращает только релевантные абзацы, около десятой части токенов, а `rag_search_ddgs` отдает страницы целиком в исходном режиме.
Читает ли сервер PDF?
Да, по текстовому слою, первые 50 страниц. Сканы без текстового слоя не распознаются.
Что делать, если Google блокирует поиск?
Ничего особенного: сервер сам переключается на режим `auto`, который опрашивает несколько движков и пропускает заблокированные. Предупреждения попадают в поле `warnings`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыЛокальный MCP-сервер без ключей API: поиск по нескольким системам, загрузка страниц и чтение документов для LLM.
Веб-поиск через DuckDuckGo и чтение страниц для агента без API-ключей, с ограничением частоты запросов
MCP-сервер веб-поиска, который сразу отдает агенту текст найденных страниц: ответы Stack Overflow, обсуждения GitHub, статьи arXiv
MCP-сервер метапоиска: агент ищет текст, картинки, новости, видео и книги сразу по многим поисковикам и извлекает содержимое страниц
Локальный веб-поиск для агентов: ищет, читает страницы и отдает сжатые фрагменты с источниками, экономя токены контекста
MCP-сервер ищет в Google и Scholar, читает страницы и PDF и копит найденное в локальном графе знаний проекта
Коротко о README
Короткое описание, схема потока от запроса до абзацев, список возможностей без ключей и с локальным ранжированием, таблица из четырех инструментов, конфигурации для `uvx` и Docker и таблица необязательных настроек.