ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Dify工作流发布为MCP-server全教程:从配置到实战案例(TaoToken统一Key接入版)

Dify工作流发布为MCP-server全教程:从配置到实战案例(TaoToken统一Key接入版) 1. Dify 工作流发布为 MCP-server 到底解决什么问题如果你已经在 Dify 里调好了一条 Chatflow 或 Workflow比如自动生成 PPT、批量出图、客服问答接下来大概率会遇到一个尴尬这套能力只能在 Dify 的聊天窗口里用。想让 Cursor、Cline、Cherry Studio 这些支持 MCP client 的工具直接调用它中间就断了。MCP-server 插件就是补上这一环的。它把 Dify 应用抽象成一个符合 MCP 标准的 Server Endpoint外部客户端通过 SSE 地址就能握手、发现工具、发起调用。说白了你辛苦调好的工作流从此不再被锁在 Dify 界面里而是变成一个可以被任意 MCP 客户端消费的“能力接口”。适合谁看已经在用 Dify 做 Chatflow/Workflow、想让成果被更多工具复用的开发者正在搭 Agent 工具链、需要把自建能力挂进 Cursor 或 Cline 的人以及想理解 MCP 服务端到底怎么暴露、怎么鉴权的同学。这篇我会按完整链路走一遍插件安装、.env地址修改、MCP-server 配置、App Input Schema 怎么写、客户端验证最后用 TaoToken 统一 Key 把模型通道也接上让整条链路从“工作流能跑”到“外部工具能调”真正闭环。中间那些我踩过的坑比如地址显示 localhost、URL 尾部多一个}都会单独拎出来讲。2. TaoToken 前置准备统一 Key 与 API 通道在把 Dify 工作流暴露出去之前先解决一个容易被忽略的问题外部客户端调用你的 MCP-server 时背后往往还要再调一次大模型。如果每个客户端各配一套 Key管理起来很乱。我的做法是用 TaoToken 做统一通道一个 Key 打通模型调用。TaoToken 是一个兼容 OpenAI 接口规范的 API 聚合通道Base URL 是https://taotoken.net/api。它的价值在于你不需要在 Dify、Cursor、Cline 里分别填不同厂商的 Key统一用 TaoToken 的 Key 和 Base URL 就行模型 ID 按需切换。对于 MCP 这种“一个工作流背后可能串了好几个模型节点”的场景统一 Key 能省掉大量对账麻烦。先拿 Key。打开https://taotoken.net/api-keys登录后创建一个 API Key复制出来。这个 Key 后面会填到 Dify 的模型供应商配置里也会填到客户端的 MCP 配置里。拿到 Key 之后建议先在模型对话页做一次最小验证确认通道是通的https://taotoken.net/models。选一个模型发一句“你好”能正常返回就说明 Key 和通道没问题。这一步别跳过否则后面 MCP 调用失败时你分不清是 Dify 的问题还是 Key 的问题。如果你打算长期跑编码类或 Agent 类工作流可以看下 Coding Planhttps://taotoken.net/coding-plan。它更适合高频调用场景比按量付费更划算。接入文档在https://taotoken.net/doc里面有各语言的调用示例配置时对照着填就行。这里要强调一点TaoToken 是合规的 API 通道不是所谓的中转代理配置时直接按 OpenAI 兼容格式填 Base URL 和 Key 即可。Dify 里配置模型供应商时选择 OpenAI 兼容类型Base URL 填https://taotoken.net/apiKey 填刚才复制的那个。3. 可复制配置插件安装与 MCP-server 参数填写这一节是全文的核心所有配置我都给可复制的片段你照着改就行。3.1 安装 MCP-server 插件进入 Dify 工作台点“插件”在插件市场搜索MCP-server。注意是社区贡献的 Extension 类型插件作者是 Dify 社区。找到后点安装等它装完在“已安装”列表里能看到它。3.2 修改 .env 暴露地址插件装好后默认只监听 localhost外部客户端连不上。需要改 Dify 的.env文件。找到你部署目录下的.env搜索这两行EXPOSE_PLUGIN_DEBUGGING_HOSTlocalhost ENDPOINT_URL_TEMPLATEhttp://localhost/e/{hook_id}把localhost换成你的局域网 IP 或公网 IP。假设你的服务器 IP 是14.103.204.132改完是这样EXPOSE_PLUGIN_DEBUGGING_HOST14.103.204.132 ENDPOINT_URL_TEMPLATEhttp://14.103.204.132/e/{hook_id}改完保存重启 Dify。重启命令按你的部署方式走docker compose 的话就是docker compose down docker compose up -d注意PLUGIN_DEBUGGING_HOST保持0.0.0.0不用动只改EXPOSE_PLUGIN_DEBUGGING_HOST和ENDPOINT_URL_TEMPLATE这两处。3.3 配置 MCP-server 端点回到 Dify 工作台进入“插件 - MCP-server”配置界面点右上角号新建。填写四项端点名称随便起比如ppt-chatflow。App 选择你要发布的工作流比如“儿童故事绘本-ppt chatflow”。App Type 选 Chat 或 Workflow按你的应用类型来。关键是 App Input Schema格式是 JSON。它的作用是告诉外部客户端这个工具需要什么输入参数。我的 PPT chatflow 只有一个输入参数prompt所以配置如下{ name: pptchatflow, description: 儿童故事绘本-ppt chatflow, inputSchema: { title: 儿童故事绘本-ppt chatflow, type: object, properties: { prompt: { title: 儿童故事绘本-ppt chatflow, description: 本工作流可以实现大语言模型创建内容后调用 agent 从而实现 PPT 的制作功能, type: string } }, required: [prompt] } }properties和required里的字段名必须和你工作流里的输入变量名完全一致。你工作流里输入变量叫prompt这里就写prompt叫query就写query。这是最容易填错的地方。保存后界面会显示服务正常并给出两个地址一个 SSE 地址一个 messages 地址。3.4 修正生成的 URL这里有个坑。生成的地址可能还是显示localhost而且结尾多一个}。比如http://localhost/e/56uageiwt2ezf8e9}/sse你需要手动改成http://14.103.204.132/e/56uageiwt2ezf8e9/sse把localhost换成你的 IP把}去掉。messages 地址同理http://14.103.204.132/e/56uageiwt2ezf8e9/messages/改完在浏览器里访问 SSE 地址如果看到类似event: endpoint和data: messages/?session_id...的输出说明网络通了MCP-server 已经对外可用。4. 验证请求客户端调用与成功结果配置完不算完得真调一次才算闭环。我用 Cherry Studio 做验证你也可以用 Cursor、Cline 或魔搭社区的 MCP Playground。4.1 Cherry Studio 配置打开 Cherry Studio升级到较新版本。进入“MCP 服务器配置”点“添加服务器”。类型选 SSE名称填ppt-chatflowURL 填刚才修正后的 SSE 地址http://14.103.204.132/e/56uageiwt2ezf8e9/sse保存。回到聊天窗口选一个支持 function call 的模型。这里就用 TaoToken 通道Base URL 填https://taotoken.net/apiKey 填你的 TaoToken Key模型 ID 按需选。勾选刚加的 MCP-server。4.2 发起调用在聊天框输入“喜羊羊与灰太狼”模型会识别到有个叫pptchatflow的工具自动发起调用。点开调用详情能看到它确实调用了 Dify 里那条 PPT 生成工作流并返回了结果。实测下来工作流返回的 PPT 下载链接在客户端里点不开。原因是 PPT 文件生成在 Dify 容器内部出于安全考虑外部链接访问不到。解决办法是在工作流里把生成的 PPT 上传到对象存储比如腾讯 COS返回公网可访问的下载链接。这样不管在 Dify 还是第三方客户端链接都能正常下载。4.3 Workflow 类型验证Chatflow 验证完Workflow 同理。我拿即梦 AI 绘画工作流测试App Type 选 WorkflowInput Schema 同样只填prompt{ name: Dream AI Painting, description: 使用即梦 AI 绘画能力的工作流, inputSchema: { title: 即梦 AI 绘画, type: object, properties: { prompt: { title: 即梦 AI 绘画, description: 输入绘画提示词返回生成图片, type: string } }, required: [prompt] } }保存后拿到 SSE 地址在 Cherry Studio 里同样配置输入提示词工作流一次性返回 4 张风格不同的图。在 Dify 工作流日志里也能看到来自客户端的调用记录说明整条链路是通的。4.4 魔搭社区 MCP Playground 验证魔搭社区提供了一站式 SSE 托管和 MCP Playground。登录后进“MCP 广场”点“MCP 实验场”在配置里添加你的 MCP-server SSE 地址保存后就能在实验场里测试。同样输入提示词返回 4 张图Dify 侧也能看到调用记录。这说明你的 MCP-server 不挑客户端标准协议下谁都能接。5. 本篇常见错排查配置过程中最容易卡在几个地方我按真实报错逐个说。报错一客户端连不上提示 connection refused 或 local proxy failed。九成是.env没改对或者改完没重启 Dify。检查EXPOSE_PLUGIN_DEBUGGING_HOST是不是你的真实 IPENDPOINT_URL_TEMPLATE里的localhost有没有换掉。改完必须重启光保存不生效。报错二SSE 地址访问返回 404。检查 URL 结尾那个}有没有去掉。插件生成的地址经常带一个多余的右花括号浏览器访问会 404去掉就正常。报错三401 Unauthorized。这个分两种。一种是 Dify 侧模型供应商的 Key 填错了检查 TaoToken 的 Key 有没有复制完整Base URL 是不是https://taotoken.net/api。另一种是客户端调 MCP-server 时鉴权失败确认 MCP-server 配置里没有额外开鉴权或者客户端填了正确的鉴权头。报错四调用返回 reading choices 相关错误。这是模型返回格式解析问题通常是 Base URL 或模型 ID 不匹配。确认客户端里填的是 TaoToken 的 Base URL模型 ID 用通道支持的名称。如果用的是 Cline 或 Codex检查auth.json或 MCP 配置里的三件套是否齐全Base URL、Key、Model ID缺一不可。报错五OAuth 相关报错。部分客户端默认走 OAuth 流程但你的 MCP-server 是 SSE 直连不需要 OAuth。在客户端配置里关掉 OAuth 选项或者选 SSE 类型而不是 OAuth 类型。报错六工作流被调用但返回空。检查 App Input Schema 里的字段名和工作流输入变量名是否一致。名字对不上工作流收不到参数自然返回空。另外确认工作流本身在 Dify 里能正常跑通再发布为 MCP-server。报错七CC Switch 或 Cline MCP 配置不生效。如果你用 CC Switch 管理配置确认写入的配置文件路径正确。Cline 的 MCP 配置在设置里的 MCP Servers 部分填 SSE URL 即可。Codex 的话检查auth.json里的 Base URL 和 Key。这三件套Base URL、Key、Model ID任何一处错都会导致调用失败。6. 把统一 Key 接进整条链路到这里Dify 工作流发布为 MCP-server 的链路已经跑通。最后说下怎么用 TaoToken 统一 Key 把模型通道也收口。在 Dify 里进入“设置 - 模型供应商”选 OpenAI 兼容类型Base URL 填https://taotoken.net/apiKey 填你的 TaoToken Key。这样 Dify 工作流里所有模型节点都走统一通道。在客户端侧Cherry Studio、Cursor、Cline 的模型配置同样填 TaoToken 的 Base URL 和 Key。MCP-server 的 SSE 地址填你修正后的那个。这样从客户端发起调用到 Dify 工作流执行再到模型推理整条链路用的都是同一个 Key管理成本最低。需要新建 Key 或查看用量去https://taotoken.net/api-keys。接入细节对照https://taotoken.net/doc。想先试模型通道去https://taotoken.net/models发一句话验证。长期跑编码或 Agent 工作流看https://taotoken.net/coding-plan。配置过程中如果卡在某个报错优先回看第 5 节大部分问题都能对上号。整条链路的关键就三件事.env地址改对、Input Schema 字段名和工作流变量对齐、URL 尾部多余的}去掉。这三处过了剩下的就是客户端填地址的事。
返回列表