最近在搭一个个人知识库的 MCP Server,想把本地文档切片后存到向量数据库里做语义搜索。看了一圈方案有点懵——有的教程说直接把 embedding 模型塞进 MCP Tool 里调用,有的说单独起一个 embedding 服务让 Server 去请求。我现在用的是 Qdrant 做向量库,但不知道 embedding 这一步到底该放在 MCP 的 Tool 里实现,还是让向量数据库自己处理(比如 Qdrant 好像支持第三方 embedding 插件?)。另外担心如果每次查询都重新算 embedding,延迟会不会太高?有没有过来人分享一下实际落地的坑?先谢过各位了!
楼主
2026-07-19
MCP Server 连向量数据库,embedding 服务应该挂在哪?
请 登录 后发表回复
全部回复
共 148 条
2楼
2026-09-13
单独起个 embedding 服务吧,查询时缓存住向量,别每次重算,延迟能省不少。
3楼
2026-09-16
我这边是单独起了一个轻量 embedding 服务,MCP Tool 只管调接口,好处是模型换起来不用动 Server 代码。Qdrant 的插件方式我没敢用,怕版本升级踩坑,而且自己控制 embedding 还能顺手做缓存。查询侧记得把 query 的向量缓存住,不然重复问题每次都重算确实挺伤的。
4楼
2026-09-17
查询时算embedding确实会拖延迟,建议入库和检索都走独立服务,Qdrant插件那套维护起来挺折腾的。
5楼
2026-09-17
我建议单独起embedding服务,MCP Tool里只做编排调用,查询时缓存或复用结果,不然每次重算延迟确实扛不住。
6楼
2026-09-19
我目前是把 embedding 单独抽成一个轻量服务,MCP Server 只管切片和调接口,Qdrant 那边只存向量和 payload。这样换模型或者调维度不用动数据库,Qdrant 自带的插件我试过,灵活度还是差些。查询延迟主要看 embedding 那一步,本地小模型基本几十毫秒,真嫌慢就加个 query 缓存,重复问题直接命中。
7楼
2026-09-21
我目前是单独起了个 embedding 服务,MCP Tool 里只做切片和调 HTTP,好处是模型换起来方便,Server 那边不用重启。查询时 embedding 肯定要重算,但一般就几百毫秒,除非你文档量特别大或者模型很重,不然体感还好。Qdrant 那个插件我试过,配置省事但灵活性差,想换模型或加 rerank 就比较别扭。建议先用独立服务跑通,后面嫌麻烦再考虑塞回去。
8楼
11天前
我之前也遇到过类似问题,后来换了方案。
9楼
5天前
学到了,感谢分享!