d

dify_workflow_edit_mcp

awol2005ex/dify_workflow_edit_mcp
0 Stars 3 次浏览 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "dify-workflow-edit": {
      "args": [
        "--base-url",
        "http://localhost:5001",
        "--app-id",
        "\u003cappid\u003e",
        "--email",
        "admin@example.com",
        "--password",
        "your_password"
      ],
      "command": "\u003cpath/to/\u003edify_workflow_edit_mcp"
    }
  }
}

服务介绍

Dify Workflow Edit MCP

一个基于 Rust 的 MCP(Model Context Protocol)服务器,用于通过 Dify 控制台 API 编辑和管理 Dify 工作流。

docs/snap-002.png
docs/snap-001.png

仅 5 个精简工具,通过 action/mode/view 子命令做功能分流。

敏感信息零泄露base_url, app_id, email, password 全部从启动参数注入 MCP 服务器,启动时自动登录并拉取草稿,不经过 JSON-RPC 通道。


快速开始

编译

cargo build --release

产物在 target/release/dify_workflow_edit_mcp.exe(Windows)或对应平台可执行文件。

在 mcp.json 中配置

需要先将编译产物放到合适的路径,以下 <path/to/> 请替换为实际路径。

{
  "mcpServers": {
    "dify-workflow-edit": {
      "command": "<path/to/>dify_workflow_edit_mcp",
      "args": [
        "--base-url", "http://localhost:5001",
        "--app-id", "4c1e7f32-abcd-1234-ef56-7890abcdef12",
        "--email", "admin@example.com",
        "--password", "your_password"
      ]
    }
  }
}

或者用 API Key(如果只需运行已发布工作流):

{
  "mcpServers": {
    "dify-workflow-edit": {
      "command": "<path/to/>dify_workflow_edit_mcp",
      "args": [
        "--base-url", "http://localhost:5001",
        "--app-id", "4c1e7f32-abcd-1234-ef56-7890abcdef12",
        "--api-key", "app-xxxxxxxxxxxxx"
      ]
    }
  }
}

需要走 HTTP 代理(如局域网 Dify 需科学上网):

{
  "mcpServers": {
    "dify-workflow-edit": {
      "command": "<path/to/>dify_workflow_edit_mcp",
      "args": [
        "--base-url", "http://localhost:5001",
        "--app-id", "4c1e7f32-abcd-1234-ef56-7890abcdef12",
        "--email", "admin@example.com",
        "--password", "your_password",
        "--proxy", "http://127.0.0.1:7890"
      ]
    }
  }
}

启动后自动:

  1. 登录控制台 API(获取 session cookie)
  2. 拉取指定应用的草稿工作流(graph + features)
  3. 进入 STDIO 循环等待 MCP 请求

在 Trae IDE 中安装

Trae IDE 内置 MCP 支持,配置步骤如下:

  1. 打开 Trae → 左侧底部 ⌘ M(Mac)/ Ctrl M(Windows)→ 启用 Agent 模式
  2. 点击 Input 框附近的 MCP 配置 按钮(或 Settings → MCP Server)
  3. mcp.json 编辑器中填入上述配置
  4. 点击「启动」/「重载」使配置生效

也可直接编辑 Trae 配置文件 ~/.config/trae/mcp.json(macOS/Linux)或 %APPDATA%\Trae\mcp.json(Windows)。

完成后在对话中直接调用 MCP 工具即可编辑 Dify 工作流。


CLI 参数

参数 必填 说明
--base-url Dify 服务地址,如 http://localhost:5001
--app-id 工作流应用 ID(UUID 格式)
--email ⚠️ 管理员邮箱(与 --api-key 二选一)
--password ⚠️ 管理员密码
--api-key ⚠️ 公有 API Key(备选认证)
--proxy HTTP 代理地址,如 http://127.0.0.1:7890
--info 打印服务器信息后退出
--help / -h 显示帮助
--version / -v 显示版本

工具概览

# 工具 作用 子命令
1 get_workflow 查看工作流(首次自动拉取草稿并缓存) graph, node, stats, features, env_vars, conv_vars, block_configs
2 edit_workflow 编辑图(节点/边 CRUD),操作本地缓存 add_node, update_node, remove_node, add_edge, remove_edge
3 sync_workflow 将本地缓存同步推送到 Dify 服务器
4 run_workflow 运行草稿/单节点调试/运行已发布 draft, node, published
5 publish_workflow 版本管理:发布/从版本恢复/列表 publish, restore, list

详细使用

1. get_workflow

get_workflow view=graph                    # 完整图结构(首次自动拉取草稿)
get_workflow view=node node_id=xxx         # 单个节点详情
get_workflow view=stats                    # 统计信息
get_workflow view=features                 # 特征配置
get_workflow view=env_vars                 # 环境变量
get_workflow view=conv_vars                # 对话变量
get_workflow view=block_configs            # 默认块模板

2. edit_workflow(图编辑)

# 节点操作
edit_workflow action=add_node  type=llm  title="问答助手"
edit_workflow action=add_node  type=code  title="代码节点"  x=100  y=200  data={...}

edit_workflow action=update_node  node_id=xxx  title="新标题"
edit_workflow action=update_node  node_id=xxx  x=100  y=200
edit_workflow action=update_node  node_id=xxx  data={...}                              # 完整替换配置
edit_workflow action=update_node  node_id=xxx  field=variables.prompt_template  data={...}  # 局部字段更新

edit_workflow action=remove_node  node_id=xxx

# 边操作
edit_workflow action=add_edge  source_node_id=A  target_node_id=B
edit_workflow action=remove_edge  source_node_id=A  target_node_id=B

3. sync_workflow

将本地缓存编辑推送到 Dify 服务器。会发送 hash 做冲突检测。

sync_workflow                               # 无参数

4. run_workflow

run_workflow mode=draft  [inputs={...}]                    # 运行草稿
run_workflow mode=node  node_id=xxx  [inputs={...}]        # 单节点调试
run_workflow mode=published  [inputs={...}] [user=...]     # 运行已发布(需启动时 --api-key)

5. publish_workflow

publish_workflow action=publish                             # 发布
publish_workflow action=publish  marked_name="v1.0"  marked_comment="初始版本"
publish_workflow action=restore  workflow_id=xxx             # 从版本恢复
publish_workflow action=list                                 # 查看版本列表

典型工作流

graph LR
    A[启动: 参数注入] --> B[自动登录 + 拉取草稿]
    B --> C[get_workflow view=graph]
    C --> D[edit_workflow]
    D --> E[sync_workflow]
    E --> F[publish_workflow]
    F --> G[run_workflow mode=published]
  1. mcp.json 配置--base-url --app-id --email --password
  2. 查看get_workflow view=graph(已自动拉取)
  3. 编辑edit_workflow action=add_node / update_node / remove_node / add_edge
  4. 同步sync_workflow(推回 Dify)
  5. 发布publish_workflow action=publish
  6. 运行run_workflow mode=published inputs={...}

架构

src/
├── main.rs           # CLI 参数解析 + 自动登录 + 拉取草稿 + STDIO 主循环
├── lib.rs            # 模块导出
├── core.rs           # 核心类型(DifyServer, WorkflowGraph, Node, Edge 等)
├── client.rs         # Dify HTTP API 客户端(含 login + 自动重登 + 代理支持)
├── handlers.rs       # JSON-RPC 处理器 + 5 工具分发
└── tools/
    ├── mod.rs        # 工具入口
    ├── graph.rs      # edit_workflow 图操作核心
    ├── workflow.rs   # get/sync/publish 工作流生命周期
    ├── run.rs        # run_workflow 运行
    └── config.rs     # get_workflow 配置相关视图

凭据安全设计

方面 实现
敏感信息传递 仅通过 mcp.json 的 CLI 参数,不经过 JSON-RPC
会话过期处理 client.rs 自动检测 401 → 重新登录并重试一次
API Key 备选 --api-key 模式无需暴露控制台凭据
代理支持 --proxy 参数透传给 reqwest

LICENSE

Apache-2.0

相关 MCP 服务