mcpsurfr

Локальный веб-поиск для агента без ключей API: результаты ранжируются на вашей машине, в ответ идут только нужные абзацы

  • 151 ★ репозитория
  • Последний коммит
  • MIT
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Страницы загружаются с имитацией браузера, а условия сайтов могут запрещать автоматический доступ
  • Запросы уходят во внешние поисковые системы и видны им
Все причины и проверки

nkapila6/mcpsurfr

Установка

Ручная установка

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.

MCP-серверРасширенный доступ179Звезды репозитория

Веб-поиск через DuckDuckGo и чтение страниц для агента без API-ключей, с ограничением частоты запросов

MCP-серверРасширенный доступ1,6 тыс.Звезды репозитория

MCP-сервер веб-поиска, который сразу отдает агенту текст найденных страниц: ответы Stack Overflow, обсуждения GitHub, статьи arXiv

MCP-серверРасширенный доступ404Звезды репозитория

MCP-сервер метапоиска: агент ищет текст, картинки, новости, видео и книги сразу по многим поисковикам и извлекает содержимое страниц

MCP-серверРасширенный доступ3,1 тыс.Звезды репозитория

Локальный веб-поиск для агентов: ищет, читает страницы и отдает сжатые фрагменты с источниками, экономя токены контекста

MCP-серверРасширенный доступ236Звезды репозитория

MCP-сервер ищет в Google и Scholar, читает страницы и PDF и копит найденное в локальном графе знаний проекта

MCP-серверРасширенный доступ298Звезды репозитория

Коротко о README

Короткое описание, схема потока от запроса до абзацев, список возможностей без ключей и с локальным ранжированием, таблица из четырех инструментов, конфигурации для `uvx` и Docker и таблица необязательных настроек.

Бейдж для README

Сообщить о проблеме