Dify as MCP Server
将 Dify 应用程序(包括 Chatflow 和 Workflow)公开为 MCP(模型上下文协议)服务器,允许 Claude 和其他 MCP 客户端通过标准化的协议直接与 Dify 应用交互。
README
将 Dify 作为 MCP 服务器
将 Dify 工作流作为 Model Context Protocol (MCP) 服务器暴露给 Claude 等 AI 客户端。
项目概述
本项目实现了一个 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 中可以正常运行
贡献
欢迎提交问题和合并请求。在提交代码之前,请确保遵循代码风格并添加适当的测试。
许可证
MIT
致谢
本项目参考了 Model Context Protocol 规范,特别是最新的 Streamable HTTP 传输 PR #206。
VIBE CODING 探索产物 不可用状态
Author: yevanchen Version: 0.0.1 Type: extension
Description
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。