Dify Workflow Server 使用说明

项目简介

Dify Workflow Server 是一个实现了 Model Context Protocol (MCP) 协议的服务器,它作为一个桥梁,连接了 MCP 客户端和 Dify 平台。通过此服务器,LLM 应用可以方便地调用和执行在 Dify 平台上预先定义的工作流 (Workflow)。该服务器将 Dify 工作流封装成 MCP 工具,使得 LLM 可以通过标准的 MCP 协议来触发和使用 Dify 的工作流能力。

主要功能点

  • 工作流列表查询: 提供 'list_workflows' 工具,允许 LLM 客户端查询已授权可用的 Dify 工作流列表。
  • 工作流执行: 提供 'execute_workflow' 工具,允许 LLM 客户端指定工作流名称和输入参数,执行 Dify 平台上预定义的工作流。执行结果将以文本形式返回给 LLM 客户端。
  • 基于 MCP 协议: 遵循 MCP 协议标准,易于与各种 MCP 客户端集成。
  • 支持 Dify 平台: 专门为 Dify 平台的工作流集成而设计,充分利用 Dify 的工作流编排和执行能力。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/gotoolkits/mcp-difyworkflow-server.git
    cd mcp-difyworkflow-server
  2. 编译服务器程序:

    • 使用 Go 编译: 确保已安装 Go 语言环境。
      go build .
    • 或者使用 Make 编译: 如果系统安装了 Make 工具。
      make build

    编译成功后,会在当前目录下生成可执行文件 'mcp-difyworkflow-server'。

服务器配置 (MCP 客户端配置)

要让 MCP 客户端连接到 'mcp-difyworkflow-server',需要在 MCP 客户端的配置文件中添加服务器配置信息。以下是一个示例配置,请根据实际情况修改:

{
  "mcpServers": {
    "dify-workflow": {  // MCP 客户端中配置的服务器名称,可以自定义
      "command": "/path/to/mcp-difyworkflow-server", // mcp-difyworkflow-server 可执行文件的绝对路径,请替换为实际路径
      "args": ["-base-url", "http://your-dify-api-url/v1"], // 启动参数,-base-url 指定 Dify API 的基础 URL,请替换为实际 Dify API 地址,例如 http://localhost:8000/api
      "env": {
        "DIFY_WORKFLOW_NAME": "workflow-translator,workflow-genImage", // Dify 工作流名称列表,用逗号分隔,需要与 DIFY_API_KEYS 顺序对应
        "DIFY_API_KEYS": "dify-workflow-api-key-1,dify-workflow-api-key-2"  // Dify 工作流 API Keys 列表,与 DIFY_WORKFLOW_NAME 顺序对应,每个 Workflow 都需要在 Dify 平台生成 API Key
      }
    }
  }
}

配置参数说明:

  • 'command': 'mcp-difyworkflow-server' 可执行文件的路径。如果已将该文件添加到系统 PATH 环境变量,则可以直接使用 'mcp-difyworkflow-server'。否则,需要指定绝对路径,例如 '/home/user/mcp-difyworkflow-server/mcp-difyworkflow-server'。
  • 'args': 启动参数列表。
    • '-base-url': Dify 平台 API 的基础 URL。请务必替换为实际的 Dify API 地址。通常为 'http://<dify-server-ip>:<dify-server-port>/api' 或 'https://<dify-server-domain>/api'。
  • 'env': 环境变量配置。
    • 'DIFY_WORKFLOW_NAME': 要暴露给 MCP 客户端使用的 Dify 工作流名称列表,多个工作流名称用逗号分隔。这些名称将用于 'execute_workflow' 工具的 'workflow_name' 参数。
    • 'DIFY_API_KEYS': 与 'DIFY_WORKFLOW_NAME' 列表中的工作流名称一一对应的 Dify API Keys 列表,也用逗号分隔。请务必替换为在 Dify 平台上为每个工作流生成的 API Key。API Key 的顺序必须与工作流名称的顺序一致。

环境变量配置说明:

  • 'DIFY_WORKFLOW_NAME' 和 'DIFY_API_KEYS' 必须成对配置,并且顺序一致。 例如,如果 'DIFY_WORKFLOW_NAME' 设置为 '"workflow-translator,workflow-genImage"',则 'DIFY_API_KEYS' 应该设置为对应的 API Keys,例如 '"appkey-xxxxxxxxxxxa,appkey-xxxxxxxxxxxb"'。
  • 您需要在 Dify 平台上创建工作流,并为每个希望通过 MCP 服务器暴露的工作流生成 API Key。请参考 Dify 平台的文档了解如何创建工作流和生成 API Key。

基本使用方法

  1. 启动 MCP 服务器: 在安装目录下,运行编译生成的可执行文件 'mcp-difyworkflow-server'。

    ./mcp-difyworkflow-server -base-url http://your-dify-api-url/v1

    请替换 'http://your-dify-api-url/v1' 为实际的 Dify API 地址。 也可以在 MCP 客户端配置中指定 '-base-url' 参数。

  2. 在 MCP 客户端中使用工具:

    • 列出可用工作流: 在 MCP 客户端的 Prompt 中,可以使用类似以下的指令来列出 'mcp-difyworkflow-server' 提供的工具列表,并查看 'list_workflows' 工具的描述:

      查看 mcp-difyworkflow-server 可使用的工具列表

      或者,直接调用 'list_workflows' 工具:

      调用工具 list_workflows

      服务器会返回已配置的 Dify 工作流名称列表。

    • 执行工作流: 使用 'execute_workflow' 工具来执行指定的工作流。例如,要执行名为 'workflow-translator' 的工作流,并将输入消息设置为 "这是一条测试消息",可以使用类似以下的指令:

      给我执行 dify 名为 workflow-translator 的工作流,输入的消息为“这是一条测试消息”

      或者,更明确地调用 'execute_workflow' 工具并指定参数:

      调用工具 execute_workflow,参数 workflow_name=workflow-translator, input=这是一条测试消息

      服务器会将消息发送到 Dify 平台执行 'workflow-translator' 工作流,并将工作流的执行结果返回给 MCP 客户端。

注意:

  • 'execute_workflow' 工具的 'input' 参数会传递给 Dify 工作流。默认情况下,Dify 工作流的输入变量名称应定义为 '"message"'。 如果 Dify 工作流的输入变量名不是 '"message"',则需要根据实际情况调整 Dify 工作流的配置。
  • 请确保 Dify API 地址、工作流名称和 API Keys 配置正确,否则可能导致工具调用失败。

通过以上步骤,您就可以使用 'mcp-difyworkflow-server' 将 Dify 平台的工作流集成到您的 LLM 应用中,并利用 MCP 协议进行统一的管理和调用。

信息

分类

开发者工具