
1. 为什么要在 Dify 里接 MCP Server如果你正在用 Dify 搭 Agent大概率遇到过这个尴尬模型本身很聪明但它不知道今天天气、查不了地图、连不上你内部的订单系统。传统做法是给每个外部能力写一个自定义工具改一次接口就要重新打包一次维护成本高得离谱。MCPModel Context Protocol解决的正是这件事。你可以把它理解成「AI 世界的 USB-C 接口」——只要外部服务按 MCP 协议暴露能力Dify 这边就不用再关心对方是地图、数据库还是文件系统统一按同一套方式挂载、授权、调用。对开发和运维来说这意味着接入一个新工具从「写代码 发版」变成「填一个 URL 点授权」。这篇聚焦的是完整落地路径在 Dify 工作流/Agent 中接入一个 MCP Server从拿到连接地址、在 Dify 里注册服务、配好模型和提示词到跑通一次端到端调用并确认工具真的被触发。适合已经部署好 Dify、想让 Agent 调用外部工具的开发与运维同学。全程以高德地图 MCP Server 为例但换成你自己的 MCP Server步骤骨架完全一致。需要提前说明Dify 原生支持 MCP不需要额外装插件模型侧我用的是 DeepSeek-R1你也可以换成任意已接入 Dify 的对话模型。下面每一步都给到可复制的配置和参数照着做就能验证。2. 前置准备Dify 环境与 TaoToken 接入动手之前先确认两件事Dify 能正常跑以及模型通道是通的。MCP 只是「工具层」模型才是「决策层」两者缺一不可。2.1 确认 Dify 已部署并可访问假设你已经通过 Docker Compose 或源码方式部署了 Dify浏览器能打开控制台、能登录即可。如果还没部署先按官方文档把docker compose up -d跑起来确认http://你的地址/apps能进工作室页面。这一步不展开重点放在后面的 MCP 配置。2.2 用 TaoToken 打通模型通道Dify 里要选一个能稳定调用工具的模型。我这边习惯用 TaoToken 作为统一入口它兼容 OpenAI 风格的接口配置起来很直接。你可以在控制台创建一个 API Key然后回到 Dify 的「设置 → 模型供应商」里添加。关键参数如下直接对照填配置项填写内容模型类型OpenAI-API-compatibleAPI Base URLhttps://taotoken.net/apiAPI Key你在 TaoToken 控制台生成的 Key模型名称按你实际开通的模型填写例如deepseek-r1如果你更想先验证模型本身能不能正常对话可以到模型对话页面直接试一句要长期跑编码类或 Agent 类任务Coding Plan 会更省心。API Key 的创建入口在控制台的 API Keys 页面接入细节可参考接入文档。这几处链接我都放在文末 CTA 区方便你按需跳转。配好之后在 Dify 的模型列表里应该能看到刚添加的模型点一下「测试」能返回内容就说明通道没问题。这一步过了再往下接 MCP 才有意义。3. 获取 MCP Server 连接地址MCP Server 的本质是一个对外暴露的 HTTP 端点Dify 通过它拉取工具列表并调用。以高德地图为例它的 MCP 地址形如https://mcp.amap.com/sse?key你在高德开放平台申请的key拿到这个地址的流程是登录高德开放平台控制台 → 应用管理 → 创建新应用 → 为应用添加 Key服务平台选「Web 服务」→ 复制生成的 Key → 替换上面 URL 里的key部分。保存好这串完整地址下一步要粘贴到 Dify。注意不同 MCP Server 的地址格式不一样有的走/sse有的走/mcp具体以你所用服务的文档为准。核心是「一个带鉴权参数的完整 URL」。如果你用的是自建 MCP Server地址通常是你自己服务的域名加路径鉴权方式可能是 Header 里的 Token 而不是 URL 参数。Dify 添加服务时支持填 Header这点后面会提到。4. 在 Dify 中注册 MCP 服务地址有了接下来把它挂进 Dify。4.1 添加 MCP 服务HTTP进入 Dify 顶部菜单的「工具」切到「MCP」标签点击「添加 MCP 服务HTTP」。在弹出的表单里填服务端 URL粘贴上一步拿到的完整地址名称例如amap-mcp-server图标可选填个图片地址或留空服务器标识符例如amap-mcp-server后续在 Agent 里引用会用到如果服务需要额外鉴权头在 Header 区域补上比如Authorization: Bearer xxx。填完点「授权」Dify 会去请求这个 MCP Server 并拉取它暴露的工具清单。4.2 确认工具已加载授权成功后回到 MCP 服务列表点进刚创建的服务应该能看到它包含的具体工具比如「地理编码」「周边搜索」「路径规划」等。每个工具后面会标注参数结构。看到这一屏说明 Dify 已经成功和 MCP Server 握手工具层就绪。提示如果这里工具列表是空的先别急着建应用回到第 5 节排查连接问题。5. 创建 Agent 应用并跑通端到端调用工具挂好了现在建一个 Agent 来真正调用它。5.1 创建空白 Agent 应用顶部菜单进「工作室」→「创建空白应用」→ 选「新手适用」里的「Agent」→ 应用名填amap-mcp-agent→ 创建。进入编排页面后模型选你前面配好的 DeepSeek-R1或其它已接入模型。5.2 写一段能触发工具的提示词提示词决定了模型「什么时候该调工具」。下面这段可以直接用核心是明确告诉模型涉及地理位置就必须调 MCP且不许编造# 角色 你是一位专业的智能私人助手根据用户提问提供准确、友好、有用的信息。 # 核心工作流程 1. 分析意图先判断用户问题属于哪一类。 2. 决策工具 - 如果问题涉及地理位置、地点查询、地址信息、导航或寻找周边餐厅、酒店、景点等必须调用【MCP】工具获取权威地理数据。 - 如果问题与地理位置无关聊天、计算、写诗等不要使用【MCP】工具直接回答。 3. 组织回复 - 使用【MCP】工具后你会拿到 JSON 格式的地理数据需要解析并用自然流畅的中文呈现关键信息名称、地址、电话、评分等。 - 严禁捏造所有地理信息必须严格来源于【MCP】工具返回结果不得自行编造或猜测。 # 回复通用规则 - 客观中立避免争议性敏感话题。 - 使用中文表达简单易懂语气友好。5.3 挂载 MCP 工具在编排页面的「工具」区域点「添加」选择刚才创建的amap-mcp-server点「添加全部」把它的工具都授权给这个 Agent。保存后模型在推理时就能看到这些工具的定义。5.4 端到端验证在右侧「调试与预览」窗口输入一个必然触发工具的问题例如推荐北京鸟巢附近5家川菜馆观察运行过程如果配置正确你会看到模型先决定调用 MCP 工具工具返回一段 JSON包含餐厅名称、地址、评分等模型再把这些数据整理成中文回复。看到「调用 MCP 服务成功」以及结构化的结果就说明整条链路通了。确认无误后点「发布」应用即可对外使用。6. 本篇常见错排查接入过程里最容易卡在这几个地方对照排查能省不少时间。工具列表为空 / 授权失败。先确认 MCP 地址能通在服务器上用curl请求一下那个 URL看是否返回 SSE 流或正常响应。如果返回 401/403多半是 Key 或 Header 鉴权没配对如果超时检查 Dify 所在网络能否访问该域名。模型不调用工具直接瞎编答案。这是提示词问题不是 MCP 问题。检查提示词里有没有明确「涉及某类问题必须调用工具」的强制指令以及工具是否真的挂到了这个 Agent 上。工具没挂上模型根本看不到它。调用报参数错误。MCP 工具对参数结构有要求比如周边搜索需要经纬度而不是地名。看工具返回的报错信息必要时在提示词里补一句「调用前先把地名转成坐标」或让模型分两步调用先地理编码再搜索。模型通道不稳定导致工具调用中断。如果模型侧频繁超时工具调用也会跟着失败。这时回到第 2 节确认 API Base URL 和 Key 是否正确必要时换个模型再试。自建 MCP Server 连不上。确认服务监听的是 Dify 能访问的地址别填localhostDify 在容器里时localhost指向容器自身。用容器网络内的服务名或宿主机 IP。7. 继续往下走到这里Dify 接 MCP Server 的完整路径就跑通了拿地址、注册服务、建 Agent、写提示词、验证调用。整个过程几乎没写业务代码工作量集中在配置和提示词工程上这也是 MCP 最舒服的地方——换一个 MCP Server骨架照搬即可。如果你在排障或接入环节卡住重点看 API Keys 和接入文档想先确认模型本身能不能稳定调工具去模型对话页面试几句最直接要是打算把这类 Agent 长期跑在编码或自动化任务上Coding Plan 的额度模型会更合适。按你的场景挑对应入口就行。