1. 为什么要在 n8n 里接 FastGPT 知识库
如果你已经在用 n8n 做自动化,又刚好维护着一套 FastGPT 知识库,大概率会遇到一个尴尬的断层:n8n 的 AI Agent 节点能调模型、能跑工具,但它默认拿不到你 FastGPT 里那些已经清洗好的私有文档。想让 Agent 回答“我们产品的退款政策是什么”,它只能靠模型自己编,或者你手动把文档塞进 prompt——前者不靠谱,后者塞不下。
原生在 n8n 里搭 RAG 是可行的,但要拆成两条工作流:一条负责文件上传、切片、向量化、入库,另一条负责检索问答。维护成本不低,而且向量库、embedding 模型、召回参数都得自己调。FastGPT 本身就把这套 RAG 流程做完了,还带知识库搜索节点和引用返回,那更合理的做法是:让 FastGPT 当知识库服务端,n8n 当编排客户端,中间用 MCP 协议对接。
MCP 在这里的角色可以理解成一个“标准插座”。FastGPT 从 v4.9.6 起支持作为 MCP 服务端,把工作流、Bot 这些能力暴露出去;n8n 官方也提供了 MCP Client Tool 节点。两边一插,n8n 的 Agent 就能把 FastGPT 的知识库检索当成一个可调用的工具,和其他工具(HTTP 请求、数据库查询、日历)并列组合。这篇就按“已有 FastGPT + n8n 环境”的前提,把配置路径、节点参数、连通性验证和常见报错一次讲清楚。
适合谁看:手上已经有 FastGPT 实例(本地 Docker 或云服务器都行)、n8n 能正常跑工作流、想让 Agent 用上私有知识库的开发者。不需要你从零学 RAG,但需要你能改 docker-compose 和 config.json。
2. 前置准备:FastGPT 侧要满足的条件
先说版本。FastGPT 的 MCP 服务端能力从 v4.9.6 开始提供,建议直接上最新稳定版。低于这个版本,工作台里根本看不到“MCP 服务”入口,后面所有步骤都无从谈起。升级前务必备份旧的 docker-compose.yml 和数据卷,pgvector 的数据卷尤其别丢。
第二个条件是 config.json 里的 mcp.server.host。这个值决定 FastGPT 对外暴露 MCP 服务的地址,n8n 就是通过它来连的。如果你 FastGPT 和 n8n 都在同一台机器的 Docker 里,填本机局域网 IP(比如 192.168.1.20),端口默认 3005;如果 FastGPT 在云服务器上,填公网 IP 或域名。填 127.0.0.1 在跨容器场景下大概率连不通,这是第一个容易踩的坑。
第三个条件是网络可达。n8n 所在环境要能访问到 mcp.server.host:3005。本地 Docker 场景下,两个容器如果在不同 network,需要确认能互相解析;云服务器场景下,安全组要放行 3005 端口。这一步不确认,后面 n8n 里填完地址会一直转圈或直接超时。
如果你还没拿到可用的模型 API Key,或者想先验证模型对话链路是否通,可以先用 TaoToken 的模型对话能力做一次快速自测,确认 key 和网络没问题,再去折腾 MCP 配置,能省掉不少“到底是哪一层挂了”的排查时间。
3. 可复制配置:从 FastGPT 工作流到 MCP 服务
3.1 用工作流封装知识库搜索
FastGPT 的 MCP 服务目前不能直接把“知识库”本身当工具挂上去。如果你把一个接了知识库的 Bot 挂上去,n8n 拿到的可能是 Bot 内大模型总结、改写后的内容,而不是原始检索片段。需要精确引用原文的场景,这就跑偏了。
绕开的办法是建一个极简工作流,只做检索、不做生成:
- 在 FastGPT 工作台新建一个工作流。
- 拖入“知识库搜索”节点,选中目标知识库,设置最低相关度和引用数量上限。相关度别设太低,否则召回一堆无关片段;引用数量按你的上下文预算来,一般 3 到 5 条够用。
- 接一个“指定回复”节点,把检索结果按原始文本块输出,不要接大模型节点。
- 保存并发布。
工作流名称建议用英文,应用介绍一定要填。这两项会作为工具名和工具描述显示在 n8n 端,Agent 靠它们判断该不该调用这个工具。名字写成“workflow1”、介绍留空,Agent 基本不会选它。
3.2 创建 MCP 服务并挂载工具
回到工作台,进入“MCP 服务”,新建一个服务。点“管理”,把刚才发布的工作流添加为该服务下的一个工具。添加完点“开始使用”,在弹窗里找到 SSE 一栏,复制那个地址。这个地址就是 FastGPT MCP-Server 的接入点,形如:
http://192.168.1.20:3005/sse/your-service-id注意复制的是 SSE 地址,不是别的。n8n 的 MCP Client Tool 目前走 SSE 传输,填错协议类型会连不上。
3.3 n8n 侧接入 MCP Client Tool
打开 n8n 工作流编辑界面,选一个 AI Agent 节点,在 Tool 配置区点加号,搜索并添加 MCP Client Tool 节点。配置项不多,但每一项都要对:
| 字段 | 填写内容 | 说明 |
|---|---|---|
| Server URL | FastGPT 复制的 SSE 地址 | 必须带 /sse 路径 |
| Tool Name | 如 FastGPT_KB | 在 Agent 中显示的名称 |
| Tool Description | 如 查询产品知识库 | 帮 Agent 判断调用时机 |
| Transport | SSE | 与 FastGPT 服务端一致 |
Tool Description 别偷懒。Agent 选工具靠的是语义匹配,描述写得越贴近真实使用场景,命中率越高。写“查询知识库”不如写“查询产品退款政策、功能说明等内部文档”。
4. 验证请求:确认端到端真的通了
配置完先别急着接复杂逻辑,用最小闭环验证。在 n8n 里给 Agent 挂一个 Chat Message 触发节点,手动发一条明确需要知识库的问题,比如“退款政策里关于七天无理由是怎么写的”。
如果链路正常,你能在 n8n 的执行记录里看到 Agent 调用了 FastGPT_KB 工具,返回的是知识库原始片段,然后 Agent 基于这些片段组织回答。重点看两处:一是工具调用是否发生,二是返回内容是不是原始文本块而非二次总结。前者说明 MCP 连通,后者说明工作流封装方式正确。
想更直接地验证 MCP 服务本身,可以先用 curl 探一下 SSE 端点是否活着:
curl -N http://192.168.1.20:3005/sse/your-service-id正常会保持连接并陆续吐出事件流。如果直接报连接拒绝,问题在 FastGPT 侧或网络层,跟 n8n 无关,先回去查 mcp.server.host 和端口放行。
如果你后续要把这套 Agent 用于长期编码或自动化任务,建议把模型调用统一走 TaoToken 的 Coding Plan,key 和额度集中管理,n8n 里换模型时只改一处配置,不用每个节点翻一遍。
5. 本篇常见错排查
连不上 SSE,n8n 报 timeout。九成是 mcp.server.host 填了 127.0.0.1,或者 3005 端口没放行。跨容器场景填局域网 IP,云服务器填公网 IP 并检查安全组。
工具列表里看不到 FastGPT 的工具。检查工作流是否真的“发布”了,以及是否被添加进了 MCP 服务。只保存不发布,MCP 服务里挂不上。
Agent 不调用知识库工具。多半是工具名称和描述太模糊。改成英文名 + 具体场景描述,再测。也可以在 Agent 的 system prompt 里明确提示“涉及产品政策时优先查询知识库工具”。
返回的是总结而非原文。说明你把接了知识库的 Bot 挂上去了,而不是纯检索工作流。回到 3.1 重建一个只含知识库搜索和指定回复的工作流。
升级后 MCP 入口不见了。确认版本号确实到了 v4.9.6 以上,config.json 是否用了新版模板。旧 config.json 直接覆盖新版本,可能缺 mcp 字段。
Docker 拉镜像卡住。把 docker-compose.yml 里的官方镜像地址换成国内镜像仓库地址再拉,这是网络问题不是配置问题。
6. 接下来怎么走
MCP 这条路打通后,FastGPT 的知识库检索就成了 n8n Agent 手里的一个普通工具,可以和 HTTP 请求、数据库节点、定时触发自由组合。比如每天早上定时跑一遍知识库,把新增文档摘要推到群里;或者让 Agent 先查知识库、再查订单系统、最后生成回复。
如果你还想把 FastGPT 的 Bot 直接当模型用,另一条路是走它的 OpenAI 兼容 API:在 n8n 里加 OpenAI Compatible Chat Model,Base URL 填 FastGPT 的 API 地址,API Key 填应用密钥,Model Name 随便填(实际以 Bot 内配置为准)。这种方式配置更简单,但它在 n8n 里表现为“一个外部模型”,而不是可组合的工具,Agent 没法把它和其他工具并列调度。要组合能力选 MCP,要单一问答引擎选 API。
配置过程中如果卡在 key 或接入环节,可以直接去 TaoToken 的 API Keys 页面拿一套可用的凭证,再对照接入文档核对参数,比在多个平台之间来回切要快。整套流程跑通后,建议把 FastGPT 工作流的名称和介绍当成“工具说明书”来维护——Agent 选得准不准,很大程度上就靠这两行字。