DeepSeek 导航网:本项目实现了一个 Dify 插件,允许将 Dify 工作流通过 Model Context Protocol (MCP)协议暴露给支持该协议的 AI 客户端(如 Claude Desktop、Cursor 等)。通过这个插件,您可以:
- 将 Dify 工作流作为工具提供给 Claude 等 AI
- 让 AI 客户端能够发现并使用您的工作流
- 无需修改工作流即可集成到 AI 助手中
特性
- ✅ 支持 MCP 标准的 JSON-RPC 接口
- ✅ 工具自动发现和注册
- ✅ 与 Claude Desktop/Cursor 等客户端兼容
- ✅ 安全的 SSE 连接实现
- ✅ 服务器端会话管理
- 🔄 符合最新的 MCP Streamable HTTP 规范(基于 PR #206)
背景
Model Context Protocol (MCP) 是一个开放标准,允许 AI 模型与外部工具和数据源交互。随着 MCP 的发展,协议正在从 HTTP+SSE 模式过渡到新的"Streamable HTTP"传输模式,为无状态服务器提供更好的支持。
本项目跟踪并实现了最新的 MCP 协议变化,特别是:
- 服务器负责生成和管理会话 ID
- 支持无状态服务器模式(适合 Dify 插件环境)
- 标准化的消息格式和流处理
- 安全的会话管理和身份验证
- 配置插件设置:
- 应用 ID: 您想要暴露的 Dify 应用 ID
- 其他设置: 根据需要配置
使用方法
1. 在 Dify 中配置
确保您的 Dify 应用包含至少一个工作流,并且已经正确配置。
2. 在客户端使用
- 打开客户端
- 进入设置 > MCP 服务器
- 添加新的 MCP 服务器, URL 填写:
https://您的 Dify 实例地址/difyapp_as_mcp_server
- 保存并启用服务器
3. 在 Cursor 中使用
- 打开 Cursor
- 进入设置 > AI > MCP
- 添加服务器地址:
https://您的 Dify 实例地址/difyapp_as_mcp_server
- 保存并启用
- 在 Cursor Agent 中使用您的工具
技术细节
架构
本插件使用两个端点实现 MCP 服务器:
- GET 端点: 处理 SSE 连接和 HTML 页面
- POST 端点: 处理 JSON-RPC 请求
由于 Dify 插件环境的限制,我们采用了"最小可行"的 SSE 实现,包括:
- 服务器端会话 ID 生成
- 有限心跳模式(约 5 分钟)
- 客户端断开后自动重连
- 符合最新的 Streamable HTTP 规范
工具注册
工具会自动从 Dify 工作流中生成,并通过 MCP 协议暴露给客户端。工具定义包括:
- 名称和描述
- 输入参数定义
- 返回值类型
- 参数验证
无状态模式支持
本插件支持符合最新 MCP 规范的无状态服务器模式,这意味着:
- 服务器不需要维护长期连接
- 每个请求都是独立的
- 通过会话 ID 关联请求
- 适合 Dify 的无状态 API 环境
故障排除
连接问题:
- 确保 URL 正确并可以访问
- 检查是否在防火墙或代理后面
工具不可见:
- 确保应用 ID 配置正确
- 检查工作流是否已发布
- 确认 Dify API 密钥有足够权限
工具执行失败:
- 检查 Dify 应用日志
- 确认工作流在 Dify 中可以正常运行
支持发送和接收钉钉/钉钉消息通知