使用说明
项目简介
本项目是一个 Dify 插件,它将您的 Dify 应用转换为 MCP (Model Context Protocol) 服务器。这使得像 Cursor 这样的 LLM 客户端可以通过标准的 MCP 协议与您的 Dify 应用进行交互,利用 Dify 应用提供的功能,例如调用您在 Dify 中创建的工作流或聊天应用作为工具。
主要功能点
- 工具 (Tools) 注册与调用: 将 Dify 应用的工作流或聊天应用暴露为 MCP 工具,允许 LLM 客户端调用这些工具执行特定任务。
- 基于 Dify: 利用 Dify 强大的应用构建能力,快速搭建 MCP 服务器,无需从零开始开发后端逻辑。
- JSON-RPC 协议: 采用标准的 JSON-RPC 协议与 MCP 客户端通信,符合 MCP 规范。
- SSE 支持: 通过 SSE (Server-Sent Events) 协议向客户端推送消息,实现实时的通信。
安装步骤
- 安装 Dify: 首先,您需要确保已经安装并成功运行了 Dify 平台。本项目是 Dify 的插件,依赖于 Dify 环境。
- 创建 Dify 应用: 在 Dify 中创建一个您希望作为 MCP 工具暴露的工作流应用或聊天应用。配置好应用的输入输出和逻辑。
- 配置应用输入 Schema: 在 Dify 应用的 Endpoint 设置中,您需要配置 app-input-schema 字段。这个字段定义了您的 Dify 应用作为 MCP 工具时的输入参数。请参考示例 JSON 结构来描述您的工具输入。例如,如果您创建了一个获取天气的应用,您的 'app-input-schema' 可能是这样的:
请将此 JSON 配置粘贴到 Dify Endpoint 的 App Input Schema 输入框中。{ "name": "get_weather", "description": "获取指定地点的天气状况。", "inputSchema": { "properties": { "place": {"title": "地点", "type": "string"} }, "required": ["place"], "title": "get_weatherArguments", "type": "object" } } - 部署插件: 将 'dify-plugin-mcp_server' 仓库的代码下载或克隆到您的 Dify 插件目录中。具体的插件目录位置请参考 Dify 官方文档。
- 启动 Dify: 重启或启动 Dify 平台。插件应该会自动加载并开始运行。您可以在 Dify 的插件管理界面确认插件是否已成功加载。
服务器配置
MCP 客户端(例如 Cursor)需要配置连接到此 MCP 服务器的信息。以下是一个 MCP 客户端配置示例,您需要根据您的实际部署情况进行调整。请注意,这里仅提供配置信息,您无需手动输入命令或参数代码:
{ "serverName": "DifyMCP", "command": "python", "args": ["main.py"], "transport": "sse", "endpoint": "/sse" }
- 'serverName': 您为此 MCP 服务器自定义的名称,在客户端中用于标识连接。
- 'command': 启动 MCP 服务器的命令。由于这是一个 Python 插件,通常设置为 'python'。
- 'args': 启动命令的参数。这里 'main.py' 是插件的主程序入口文件。
- 'transport': 指定 MCP 客户端与服务器通信的传输协议。这里配置为 'sse',表示使用 Server-Sent Events。
- 'endpoint': 指定 SSE Endpoint 的路径。'/sse' 是插件预设的 SSE Endpoint。
重要: 您需要将上述 JSON 配置信息填入您的 MCP 客户端(如 Cursor)的服务器配置中。确保客户端能够正确连接到 Dify 插件提供的 MCP 服务器。
基本使用方法
- 复制 Endpoint URL: 在 Dify 中,进入您配置了 'app-input-schema' 的应用的 Endpoint 设置页面。复制生成的 Endpoint URL。
- 配置 MCP 客户端: 打开您的 MCP 客户端(如 Cursor),找到 MCP 服务器配置选项。将上面提供的 JSON 配置信息以及从 Dify 复制的 Endpoint URL (通常只需要 URL 的 host 和端口部分,路径部分已经在 'endpoint: "/sse"' 中指定) 填入客户端的配置中。
- 在客户端中使用: 配置完成后,您的 MCP 客户端应该能够检测到名为 "DifyMCP" 的服务器。您可以开始在客户端中使用 '@' 符号或其他方式来调用您在 Dify 中配置的工具 (例如,根据 'app-input-schema' 中的 'name' 字段,可能是 '@get_weather'),并传入相应的参数(例如 '@get_weather place="北京"')。客户端会将请求通过 MCP 协议发送到 Dify MCP 服务器,Dify 服务器会执行相应的 Dify 应用并返回结果给客户端。
信息
分类
AI与计算