mcpField
M
mcpsurfr

mcpsurfr

本地服务
github.com/nkapila6搜索与检索1485 天前更新

关于 mcpsurfr

mcpsurfr 是面向 LLM 客户端的 MCP 服务,提供无需 API 密钥的本地网页搜索与多词研究。它在设备上重排结果,并返回清理后的页面文本或相关段落。

主要功能

  1. 01无需 API 密钥搜索多个引擎
  2. 02使用 MobileBERT 在本地重排结果
  3. 03提取清理后的页面正文
  4. 04通过 BM25 匹配返回相关段落
  5. 05合并多词搜索结果进行研究
  6. 06提供搜索技能和研究提示词

适用场景

  1. 01为 LLM 查询查找近期信息
  2. 02跨多个搜索词收集并整理来源
  3. 03检索相关段落而非完整页面

MCP 相关

向 MCP 客户端提供网页搜索、页面检索、段落搜索和深度研究工具,也提供搜索技能与研究提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nkapila6-mcpsurfr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/nkapila6/mcpsurfr:v1.1.1"
]
}
}
}
启动命令docker run -i --rm ghcr.io/nkapila6/mcpsurfr:v1.1.1

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/nkapila6/mcpsurfr:v1.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcpsurfr

通过 MCP 为你的大模型提供本地网页搜索。无需 API 密钥,搜索结果在你的设备上排序。原名 mcp-local-rag。

Add MCP Server mcpsurfr to LM Studio Ask DeepWiki ko-fi

%%{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

功能一览:

  • 无需 API 密钥。 通过 ddgs 搜索。其 auto 模式会同时查询多个引擎,并跳过受阻的引擎。
  • 本地排序。 使用基于纯 numpy 的小型 MobileBERT 模型对结果重新排序,因此只会抓取最相关的页面。
  • 纯净文本。 抓取页面时会模拟浏览器,只保留主要内容:不包含菜单、Cookie 横幅或页脚。代码块和表格会保留原有行结构。同一页面即使对应两个 URL,也只会返回一次。
  • 返回段落而非页面。 search 只返回能回答问题的段落,约为页面全文的十分之一 token 数。如果匹配结果不理想,还可以询问你是否需要完整页面。
  • 说明省略内容。 结果会列出跳过的页面及原因(受阻、PDF、重复等);被截断的页面会标记为 truncated,回退情况和引擎故障则会显示为 warnings。Google 经常会阻止请求,因此工具会自动回退到 auto。
  • 自带使用指南。 服务会提供一项 skill 和一个 research 提示词,让客户端无需额外设置就能了解如何使用。
工具用途
search从这里开始:仅返回相关段落。传入 keywords 可获得更好的结果
rag_search_ddgs以文本形式返回完整页面(原始模式)
rag_search_google同上,通过 Google 搜索(受阻时回退到 auto)
deep_research使用多个搜索词跨后端搜索,并合并去重
deep_research_ddgs / deep_research_googledeep_research 的快捷方式

后端:auto(默认)、brave、duckduckgo、google、grokipedia、mojeek、startpage、wikipedia、yahoo。auto 和 brave 是较可靠的选项。

安装

使用 uv:

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

也可以使用 Docker(amd64 和 arm64):

{
  "mcpServers": {
    "mcpsurfr": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--init", "ghcr.io/nkapila6/mcpsurfr:latest"]
    }
  }
}

完整页面工具的每次调用共享 40k 个字符的额度(约 10k 个 token)。要更改此值,请在服务条目中添加 "env": {"MCPSURFR_MAX_CHARS": "80000"}。

不确定配置文件在哪里?请参阅 MCP 快速入门。已在 Claude Desktop、Claude Code、Cursor 和 Goose 上测试。

从 mcp-local-rag 迁移? 旧配置仍可继续使用,因为旧 URL 会重定向,mcp-local-rag 命令也仍然存在。改用上面的配置即可采用新名称,并移除 --python=3.10 版本锁定(3.10 将于本月结束生命周期)。

Skill 和提示词

mcpsurfr-search skill 会告诉模型该选择哪个工具和后端,以及如何引用来源。服务会通过 skill://mcpsurfr-search/SKILL.md 提供它,因此大多数客户端无需额外配置。要手动将其添加到 Claude Desktop:Settings → Skills → Add from folder,然后选择 src/mcpsurfr/skills/mcpsurfr-search/。

research(topic) 提示词会规划几个搜索词、运行 deep_research,并撰写带引用的摘要。

示例

向 Claude Desktop 询问训练数据中没有的新近信息:

README 配图 README 配图

MseeP 安全审计 · 欢迎提交问题和 PR · MIT 许可 · 如果它对你有帮助,请请我喝杯咖啡

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。