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。