mcpField
M
mcp-local-rag

mcp-local-rag

本地服务
github.com/nkapila6记忆与知识1485 天前更新

关于 mcp-local-rag

mcp-local-rag 是面向大模型的本地网页搜索 MCP 服务,无需 API 密钥。它在本机对结果排序并提取网页内容,可返回相关段落或整合多个搜索后端的研究结果。

主要功能

  1. 01搜索多个网页后端
  2. 02在本机重新排序结果
  3. 03提取干净的网页文本
  4. 04返回相关段落
  5. 05执行多查询深度研究

适用场景

  1. 01为大模型查找最新信息
  2. 02收集与问题相关的段落
  3. 03跨搜索后端研究主题
  4. 04生成带引用的研究摘要

MCP 相关

向 MCP 客户端提供网页搜索和研究工具,并附带搜索技能和研究提示词。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"local-rag": {
"command": "uvx",
"args": [
"git+https://github.com/nkapila6/mcp-local-rag"
]
}
}
}
启动命令uvx 'git+https://github.com/nkapila6/mcp-local-rag'

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

安装包
pypigit+https://github.com/nkapila6/mcp-local-rag

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
include_urlsboolean否
num_resultsinteger否
querystring是
top_kinteger否

详细介绍

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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。