Dify 作为 MCP 服务器
社交
Dify 作为 MCP 服务器
🔥 热度:14

将 Dify 工作流作为Model Context Protocol (MCP)服务器暴露给Claude等AI客户端。

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 插件环境)
  • 标准化的消息格式和流处理
  • 安全的会话管理和身份验证
  1. 配置插件设置:
    • 应用 ID: 您想要暴露的 Dify 应用 ID
    • 其他设置: 根据需要配置

使用方法

1. 在 Dify 中配置

确保您的 Dify 应用包含至少一个工作流,并且已经正确配置。

2. 在客户端使用

  1. 打开客户端
  2. 进入设置 > MCP 服务器
  3. 添加新的 MCP 服务器, URL 填写:
    https://您的 Dify 实例地址/difyapp_as_mcp_server
    
  4. 保存并启用服务器

3. 在 Cursor 中使用

  1. 打开 Cursor
  2. 进入设置 > AI > MCP
  3. 添加服务器地址:
    https://您的 Dify 实例地址/difyapp_as_mcp_server
    
  4. 保存并启用
  5. 在 Cursor Agent 中使用您的工具

技术细节

架构

本插件使用两个端点实现 MCP 服务器:

  • GET 端点: 处理 SSE 连接和 HTML 页面
  • POST 端点: 处理 JSON-RPC 请求

由于 Dify 插件环境的限制,我们采用了"最小可行"的 SSE 实现,包括:

  • 服务器端会话 ID 生成
  • 有限心跳模式(约 5 分钟)
  • 客户端断开后自动重连
  • 符合最新的 Streamable HTTP 规范

工具注册

工具会自动从 Dify 工作流中生成,并通过 MCP 协议暴露给客户端。工具定义包括:

  • 名称和描述
  • 输入参数定义
  • 返回值类型
  • 参数验证

无状态模式支持

本插件支持符合最新 MCP 规范的无状态服务器模式,这意味着:

  • 服务器不需要维护长期连接
  • 每个请求都是独立的
  • 通过会话 ID 关联请求
  • 适合 Dify 的无状态 API 环境

故障排除

  1. 连接问题:

    • 确保 URL 正确并可以访问
    • 检查是否在防火墙或代理后面
  2. 工具不可见:

    • 确保应用 ID 配置正确
    • 检查工作流是否已发布
    • 确认 Dify API 密钥有足够权限
  3. 工具执行失败:

    • 检查 Dify 应用日志
    • 确认工作流在 Dify 中可以正常运行

相关推荐