TinySearch:为本地 AI 代理打造的轻量级 MCP 网页研究工具
TinySearch 是一款开源自托管的 MCP 服务器,为 Cursor、Cline 等本地 AI 代理提供搜索、抓取…
- 重要性
- 35
- 新颖性
- 50
- 影响面
- 30
- 可信度
- 60
- 实质性
- 55
TinySearch 是一款面向本地 AI 代理的自托管网页研究工具,以 MCP(Model Context Protocol)服务器的形式提供搜索、抓取、重排序与片段抽取能力,可与 Cursor、Cline、Roo Code、Claude Desktop 等主流 MCP 客户端集成。项目已在 GitHub 开源,配套提供 Docker 镜像与本地源码两种运行方式。
核心能力
TinySearch 的设计目标是让本地 AI 代理获得「有据可查」的网页研究能力,而不是把整页文本塞入上下文窗口。它默认暴露三个 MCP 工具:
- research(query):用于发现相关 URL,返回经过重排序的候选页面。
- scrape_url(url, query):当用户已提供 URL,或 research 选定目标后,对指定页面进行抓取与片段抽取。
- get_current_datetime():在涉及时间敏感的检索前先获取当前时间。
工具调用结束后,服务器会在 MCP 的 answer 字段中返回一个「基于源文」的提示词,客户端模型据此撰写最终回复并附带来源引用。
技术架构
TinySearch 的工作流程分为「搜索选页」与「抓取构句」两个阶段:
- 搜索阶段:以 SearXNG 为默认搜索引擎,配置 DuckDuckGo HTML 作为回退;候选文档经过 HTTP 过滤后,使用 dense embedding + BM25 加权 RRF(倒数秩融合)进行重排序。
- 抓取阶段:通过 crawl4ai 并行抓取保留的 URL,输出 Markdown 后切分片段,再次以 RRF 融合排序,并按来源配额去重与补齐,最终拼装成带源引用的提示词。
默认使用本地 ONNX embeddings,开发者也可替换为任何兼容 OpenAI 的 embedding API。
部署与运行
项目支持三种部署形态:
- Docker Compose 快速启动:从 GitHub 仓库直接加载 compose.quickstart.yaml,自动拉取 marcellm01/tinysearch:latest 镜像,默认以 Streamable HTTP 在 8000 端口提供 /mcp 端点。
- Docker 持久化部署:通过 Docker volume 缓存已下载的模型,并挂载本地 config 文件(research_config.json),可在其中配置 blocked_domains 等参数。
- 源码运行:克隆仓库后创建 venv,安装依赖即可以 stdio MCP 方式被客户端拉起,适合需要检查或修改代码的用户。
镜像同时发布 linux/amd64 与 linux/arm64 架构的版本,标签遵循 vX.Y.Z 语义化版本规则。
适用场景
项目作者将使用场景定位为:本地 AI 代理、原型验证、个人工作流以及对「源可追溯」有要求的小型系统。对于不希望依赖托管服务、需要本地完成检索—引用闭环的开发者而言,TinySearch 提供了一个轻量、可自托管的替代方案。仓库还附带 agentic_coding_templates/global-rules-recommended.md,用于指导 Cline、Roo Code 等编码代理仅在确实需要时才调用检索工具。
