搜索#网页爬取

TinySearch:本地搜索加重排,只把有用段落交给模型

自托管的网页调研 MCP。不需要付费搜索密钥,在本机抓取页面并用 BM25 加向量重排,只返回带来源网址的原文段落,省下读整页的 token。

项目与安装文档

查看项目

https://github.com/TinySuiteHQ/TinySearch

智能体做调研时,“搜一下再把网页整页读进来”是最费 token 的环节,导航栏、页脚和无关段落都要付钱。TinySearch 把筛选挪到模型前面:在本机搜索、抓取页面,用 BM25 和向量做混合重排,只把相关的原文段落连同来源网址交给模型。截至 2026-10-06 约 230 star。

能做什么

  • 轻量搜索:search 返回标题、网址、预览和日期,不启动浏览器也不加载嵌入模型;domains 可以把结果硬性限定在某些网站。
  • 按问题读页面:scrape_urls 一次读 1 到 5 个网址,给出聚焦问题时会切块并重排,只返回相关段落;不给问题则按页面顺序返回整理后的 Markdown,受 token 预算限制。
  • 需要交互时再开浏览器:browser_navigate、browser_act 只在页面要点击才能看到内容时使用。
  • 原文不改写:返回的每一段都是页面原文,没有再经模型总结,引用时就是对方的原话。

适合谁

  • 让 Claude Code 或 Cursor 频繁查资料、想压低调研上下文开销的开发者。
  • 不想申请付费搜索 API、希望整套检索流程跑在自己机器上的人。

接入方式

需要 uv。客户端配置:

{
  "mcpServers": {
    "tinysearch": {
      "command": "uvx",
      "args": [
        "--python",
        "3.12",
        "--from",
        "tinysuite-search[server]",
        "tinysearch"
      ]
    }
  }
}

首次抓取会初始化 Chromium 和嵌入模型,可以先运行 uvx --from "tinysuite-search[server]" tinysearch setup 预热。

编辑点评

它填的是付费搜索 API 和官方 Fetch 之间的空档:免密钥能搜,读页面时又只返回筛过的段落。项目自带可复现的基准脚本,按它的测法比“搜索后整页读入”少用约 64% 的 token,实际效果取决于页面和设置。要注意,默认搜索后端是 DDGS 库,本质上是抓取 DuckDuckGo 等搜索引擎的结果,可能被限流,也有服务条款上的灰色地带;需要更稳定可换成 Docker 加自建 SearXNG 的方案。项目较新,维护者以个人为主。许可证为 MIT。