返回市场
差异应用_as_MCP服务器

差异应用_as_MCP服务器

作者:Yevanchen36 星标更新:2025-03-19

项目介绍

Dify作为MCP服务器

将Dify工作流作为模型上下文协议(MCP)服务器暴露给AI客户端,如Claude。

项目概述

本项目实现了一个Dify插件,允许Dify工作流被支持模型上下文协议(MCP)的AI客户端(如Claude Desktop、Cursor等)访问。通过此插件,你可以:

  • 将Dify工作流作为工具提供给AI,例如Claude
  • 允许AI客户端发现并利用你的工作流
  • 在不修改工作流的情况下集成到AI助手中

功能

  • ✅ 支持MCP标准的JSON RPC接口
  • ✅ 自动发现和注册工具
  • ✅ 兼容Claude Desktop/Coursor等客户端
  • ✅ 安全的SSE连接实现
  • ✅ 服务器端会话管理
  • 🔄 符合最新的MCP可流式HTTP规范(基于PR #206)

背景

模型上下文协议(MCP)是一个开放标准,允许AI模型与外部工具和数据源进行交互。随着MCP的发展,该协议正从HTTP+SSE模式过渡到新的“可流式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代理中使用你的工具

技术细节

架构

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

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

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

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

工具注册

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

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

无状态模式支持

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

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

故障排除

  1. 连接问题

    • 确保URL正确且可访问
    • 检查是否位于防火墙或代理之后
  2. 工具不可见

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

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

贡献

欢迎提交问题和合并请求。在提交代码之前,请确保遵循代码风格并添加适当的测试。

许可证

MIT

致谢

本项目参考了模型上下文协议标准,尤其是最新的可流式HTTP传输PR #206

VIBE CODING 探索产品不可用状态

作者:yevanchen 版本:0.0.1 类型:扩展

描述