NM

nkapila6/mcpsurfr

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

146 stars 22 forks Качество 77 Тренд 57MIT

Локальный веб-поиск MCP-сервера, ранее mcp-local-rag. Многомоторные глубокие исследования с переоценкой на устройстве. Нет ключей API

Обзор

Локальный веб-поиск вашего LLM по MCP. Нет ключей API, и результаты ранжируются на вашем компьютере. Раньше mcp-local-rag. - Поиски проходят через ddgs. Его авторежим запрашивает сразу несколько двигателей и пропускает заблокированные. - Небольшая модель MobileBERT на простом нумпи переоценивает результаты, поэтому получаются только лучшие страницы. Страницы получаются с олицетворением браузера, и сохраняется только основной контент: нет меню, баннеров cookie или нижних колонок. Блоки кода и таблицы сохраняют свои линии. Одна и та же страница под двумя URL-адресами возвращается один раз. Поиск возвращает только те пункты, которые отвечают на вопрос, примерно десятую часть токенов. Когда ничего не совпадает, он может спросить вас, хотите ли вы полные страницы. - Список результатов пропущенных страниц с причиной (блокирован, PDF, дубликат ...), вырезанные страницы отмечены усеченными, а резервные копии и отказы двигателя отображаются в качестве предупреждений. Google часто блокирует, поэтому он возвращается к автомобилю самостоятельно. - Он служит навыком и оперативностью исследования, поэтому клиенты подбирают, как его использовать без настройки.

Обзор (машинный перевод)

Локальный веб-поиск вашего LLM по MCP. Нет ключей API, и результаты ранжируются на вашем компьютере. Бывшая mcp-local-rag.

Что в ней:

Без ключей API Поиски проходят через ddgs. Его [[Т1]] режим запрашивает сразу несколько двигателей и пропускает заблокированные.

  • Берегут местно. Небольшая модель MobileBERT на простом нумпи переоценивает результаты, поэтому получаются только лучшие страницы. Чистый текст. Страницы получаются с олицетворением браузера, и сохраняется только основной контент: нет меню, баннеров cookie или нижних колонок. Блоки кода и таблицы сохраняют свои линии. Одна и та же страница под двумя URL-адресами возвращается один раз. Пассажи вместо страниц. [[Т2]] возвращает только те абзацы, которые отвечают на вопрос, примерно десятую часть токенов. Когда ничего не совпадает, он может спросить вас, хотите ли вы полные страницы. Скажи, что там осталось. Список результатов пропущенных страниц с причиной (блокирован, PDF, дубликат …), вырезанные страницы помечены truncated, а резервные копии и отказы двигателя отображаются как warnings. Google блокирует часто, поэтому он возвращается к T5 самостоятельно. Возьмите своего гида. Он служит навыком и подсказкой [6], поэтому клиенты выбирают, как использовать его без настройки.

Для этого используйте его

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

Local web search for your LLM over MCP. No API keys, and results are ranked on your machine. Formerly mcp-local-rag.

%%{init: {'theme': 'base'}}%%
flowchart TD
    A[LLM] -->|query| S["Search with ddgs (auto: several engines, no keys)"]
    S -->|"rag_search, deep_research"| R["Re-rank results locally (MobileBERT on numpy)"]
    R --> P[Fetch top pages, keep the main content]
    P -->|page text + URLs| A
    S -->|search| T1["Tier 1: pick pages by their snippets"]
    T1 --> T2["Tier 2: split into passages, keyword match (BM25)"]
    T2 -->|few hits| OUT["Best passages + URLs (about 800 tokens)"]
    T2 -->|too many or none| T3[Tier 3: rank them by meaning]
    T3 --> OUT
    OUT --> A

What’s in it:

  • No API keys. Searches go through ddgs. Its auto mode asks several engines at once and skips blocked ones.
  • Ranked locally. A small MobileBERT model on plain numpy re-ranks results, so only the best pages get fetched.
  • Clean text. Pages are fetched with browser impersonation, and only the main content is kept: no menus, cookie banners or footers. Code blocks and tables keep their lines. The same page under two URLs comes back once.
  • Passages instead of pages. search returns just the paragraphs that answer the question, about a tenth of the tokens. When nothing matches well, it can ask you whether you want the full pages instead.
  • Says what it left out. Results list skipped pages with a reason (blocked, PDF, duplicate…), cut pages are marked truncated, and fallbacks and engine failures show up as warnings. Google blocks often, so it falls back to auto on its own.
  • Brings its own guide. It serves a skill and a research prompt, so clients pick up how to use it without setup.
Tool Use it for
search Start here: returns only the relevant passages. Pass keywords for better hits
rag_search_ddgs Full pages as text (the original mode)
rag_search_google Same, via Google (falls back to auto when blocked)
deep_research Several search terms across backends, merged and de-duplicated
deep_research_ddgs / deep_research_google deep_research shortcuts

Backends: auto (default), brave, duckduckgo, google, grokipedia, mojeek, startpage, wikipedia, yahoo. auto and brave are the dependable ones.

Открыть полный README на GitHub

Установка

uvx --from git+https://github.com/nkapila6/mcpsurfr mcpsurfr
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "mcpsurfr": { "command": "uvx", "args": ["--from", "git+https://github.com/nkapila6/mcpsurfr", "mcpsurfr"] } } }