☰
Dify工作流发布为MCP-server全教程:从配置到实战案例(TaoToken统一Key接入版)
2026/10/3 11:48:43 网站建设 项目流程

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 Plan:https://taotoken.net/coding-plan。它更适合高频调用场景,比按量付费更划算。接入文档在https://taotoken.net/doc,里面有各语言的调用示例,配置时对照着填就行。

这里要强调一点:TaoToken 是合规的 API 通道,不是所谓的中转代理,配置时直接按 OpenAI 兼容格式填 Base URL 和 Key 即可。Dify 里配置模型供应商时,选择 OpenAI 兼容类型,Base URL 填https://taotoken.net/api,Key 填刚才复制的那个。

3. 可复制配置:插件安装与 MCP-server 参数填写

这一节是全文的核心,所有配置我都给可复制的片段,你照着改就行。

3.1 安装 MCP-server 插件

进入 Dify 工作台,点“插件”,在插件市场搜索MCP-server。注意是社区贡献的 Extension 类型插件,作者是 Dify 社区。找到后点安装,等它装完,在“已安装”列表里能看到它。

3.2 修改 .env 暴露地址

插件装好后,默认只监听 localhost,外部客户端连不上。需要改 Dify 的.env文件。找到你部署目录下的.env,搜索这两行:

EXPOSE_PLUGIN_DEBUGGING_HOST=localhost ENDPOINT_URL_TEMPLATE=http://localhost/e/{hook_id}

把localhost换成你的局域网 IP 或公网 IP。假设你的服务器 IP 是14.103.204.132,改完是这样:

EXPOSE_PLUGIN_DEBUGGING_HOST=14.103.204.132 ENDPOINT_URL_TEMPLATE=http://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-chatflow,URL 填刚才修正后的 SSE 地址:

http://14.103.204.132/e/56uageiwt2ezf8e9/sse

保存。回到聊天窗口,选一个支持 function call 的模型。这里就用 TaoToken 通道,Base URL 填https://taotoken.net/api,Key 填你的 TaoToken Key,模型 ID 按需选。勾选刚加的 MCP-server。

4.2 发起调用

在聊天框输入“喜羊羊与灰太狼”,模型会识别到有个叫pptchatflow的工具,自动发起调用。点开调用详情,能看到它确实调用了 Dify 里那条 PPT 生成工作流,并返回了结果。

实测下来,工作流返回的 PPT 下载链接在客户端里点不开。原因是 PPT 文件生成在 Dify 容器内部,出于安全考虑外部链接访问不到。解决办法是在工作流里把生成的 PPT 上传到对象存储(比如腾讯 COS),返回公网可访问的下载链接。这样不管在 Dify 还是第三方客户端,链接都能正常下载。

4.3 Workflow 类型验证

Chatflow 验证完,Workflow 同理。我拿即梦 AI 绘画工作流测试,App Type 选 Workflow,Input 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是不是你的真实 IP,ENDPOINT_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/api,Key 填你的 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 尾部多余的}去掉。这三处过了,剩下的就是客户端填地址的事。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询