手搓轮子!轻量级RAG MCP工具,让Hermes秒懂你的Obsidian笔记
一个obsidian笔记用户的困境
作为一个obsidian笔记用户,日常最大的需求就是:本地obsidian笔记文档太多,想让AI帮我快速找到想要的内容。但试过几种方案都不太理想:
方案一:关键词检索(BM25)
这也是目前hermes等AI Agent框架采用的方式。原理很简单——把你的问题拆成关键词,去文档里匹配包含这些关键词的句子。
用了一段时间,我发现两个问题:
- 查询效率低:一个简单的问题,经常需要拆成多个关键词、做多次Query Rewriting(查询重写) 或 Iterative Retrieval(迭代检索),才能找到相关内容
- 成本偏高:根据实际观察结果,每轮问答至少需要调用7-8次(甚至更多!)API,而每次调用都要消耗大量token和时间
当然,关键词检索有其适用场景,这里不展开讨论。只是对于我的使用需求来说,体验不太理想。
方案二:云服务RAG
市面上的RAG云服务不少,效果也不错。但有两个问题:
- 要收费,而且不便宜
- 数据要上传到第三方,对于一些敏感内容不太方便
方案三:自建RAG
开源的RAG方案很多,但大部分方案部署门槛较高,要么需要Docker Compose启动一整套 infra,要么配置项太多,对于只是想"简简单单问个问题"的我来说,有点"杀鸡用牛刀"。
找了一圈,没找到特别符合需求的:
- 轻量级:不想部署一整套系统
- 本地化:数据不想上传
- 简单:配置不要太多,能用就行
没有现成的轮子,怎么办?
自己造轮子
既然找不到合适的,那就自己做一个。
趁五一长假有空,就用 LlamaIndex + FastAPI 写了一个轻量级的本地RAG MCP工具。说是"造轮子",其实就是在现有开源组件的基础上做了个封装,让它更适合个人使用场景,有需要的朋友可以到下面仓库下载使用。
项目地址:https://gitcode.com/zhanggxlinux/filerag-mcp
设计思路
- 轻量级:不依赖复杂的中间件,一个Python脚本跑起来就能用
- MCP协议:做成MCP工具,通用性强,Hermes、Cherry Studio都能调用,方便异机部署,“知识”与“大脑”分离
- 增量更新:文档修改后自动检测变化,只更新改动的部分,不用全量重建
- 灵活嵌入:支持任意OpenAI格式的Embedding模型
技术方案
| 组件 | 选择 | 理由 |
|---|---|---|
| 向量数据库 | ChromaDB | 轻量、易用、Python原生支持 |
| RAG框架 | LlamaIndex | 业界标准,文档丰富 |
| 服务端 | FastAPI | 简单高效,支持流式输出 |
| 协议 | MCP | 通用性好,各AI框架都能对接,方便异机部署 |
快速上手
1. 安装依赖
cd ~/filerag-mcp
pip install -r requirements.txt
2. 配置环境
cp .env.example .env
编辑.env,主要配置这几项:
CHROMA_HOST=localhost
CHROMA_PORT=8018
CHROMA_COLLECTION=my-docs
# Embedding模型服务地址
# 推荐用LM Studio本地部署bge-m3,中文效果好
EMBED_BASE=http://localhost:1234/v1
EMBED_MODEL=text-embedding-bge-m3
EMBED_API_KEY=not-needed
💡 如果没有LM studio,用本地Ollama也可以,URL改成
http://localhost:11434/v1,但没试过
3. 启动服务
python server.py
服务默认在http://localhost:8009运行。
4. 在AI agent框架里使用
示例一:Hermes配置:
端点:http://你的服务器IP:8009/mcp
再创建一个obr技能,让hermes学会使用这些tools

示例二:Cherry Studio配置:
同上,添加MCP服务器地址即可。配置后可直接列出有哪些mcp tools
效果验证
hermes打开/obr 技能,然后提问,hermes调用RAG(检索增强生成)系统,在知识库中进行语义检索。找到最相关的5个文档(其实就是1个文档的5个不同片段)后,它再将这些信息整合、提炼,最终以清晰、连贯的文字形式将答案呈现出来。整个过程,从提问到检索,再到生成的无缝协作,达到预期目的。
至于文档入库,其实除了调 API,完全可以写个脚本批量遍历本地文件夹,自动同步到知识库。考虑到这属于另一个独立的项目场景,这里就不占用篇幅了。大家如果对这感兴趣,我后面专门开一篇来细聊!
目前的局限
这个工具还有不少改进空间:
- 没有Web界面:目前只能通过API或命令行操作(AI agent应该不care)
- 没有PDF/Word解析:文档需要先转成文本(AI agent都有现成工具)
- Embedding模型、ChromaDB需要自行部署:虽然免费,但需要自己动手
如果你需要更完善的功能,市面上有更成熟的方案。我这个更适合:想快速上手、对数据隐私有要求、愿意自己动手折腾的朋友。
写在最后
做这个工具的初衷很简单:我想用上本地RAG,不想看云服务的脸色。
如果有疑问,欢迎在评论区交流。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)