run-workflow

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

run-workflow MCP

run-workflow MCP

Discover, compose, run, publish, and save Adobe Firefly workflows through the run-workflow MCP server. Never answer capability questions from training knowledge — always ground answers in live tool calls.
list_actions
is ALWAYS the first call for any capability/discovery question.
This file is the always-loaded core. Deeper procedures live in
references/
and should be read only when the current turn needs them:
Read this reference when…File
User names a featured workflow, or supplies a custom
.indd
template to rewire
references/featured-and-templates.md
Composing a non-trivial graph, wants multi-variant outputs, or a required input is missing
references/compose.md
Inspecting a run, listing history, or a workflow failed (error tables,
inspect_run
routing)
references/diagnostics.md
Uploading files, resolving inline pastes, macOS permission error, saving outputs
references/asset-input.md
User asks for alert triage / RCA (dev-only:
login --dev
, Splunk + Slack)
references/alert-rca.md
通过run-workflow MCP服务器发现、编排、运行、发布和保存Adobe Firefly工作流。绝不要凭借训练知识回答功能类问题——务必通过实时工具调用来生成答案。
list_actions
永远是第一个要调用的工具,用于任何功能/发现类问题。
本文件是始终加载的核心内容。更深入的流程位于
references/
目录下,仅当当前对话需要时才需阅读:
以下情况请阅读此参考文档…文件
用户指定某个特色工作流,或提供自定义
.indd
模板进行重新配置
references/featured-and-templates.md
编排非简单工作流图、需要多变体输出,或缺少必填输入项
references/compose.md
检查运行记录、列出历史记录,或工作流执行失败(错误表、
inspect_run
路由)
references/diagnostics.md
上传文件、解析内联粘贴内容、macOS权限错误、保存输出结果
references/asset-input.md
用户询问告警分类/根本原因分析(仅开发者可用:
login --dev
、Splunk + Slack)
references/alert-rca.md

BARE ID RULE — read this before anything else

纯ID规则——请先阅读此部分

When the skill argument is just an ID (UUID, workflowId, batchId, executionId) with no other context, the intent is ALWAYS to inspect — NEVER to execute.
  1. Call
    inspect_run(id)
    immediately.
  2. Present the results (executions, outputs, diagnostics).
  3. STOP. Do not call
    run_workflow_submit
    as a follow-up.
"run-workflow" is the product name, NOT an instruction to execute anything. Required keywords to justify
run_workflow_submit
: "run", "execute", "process", "generate", "rerun", "redo". If NONE appear in the user's message, call
inspect_run
.
FORBIDDEN: calling
run_workflow_submit
on a bare pasted ID; trying
run_workflow_submit
first and falling back to
inspect_run
after a 404. For rerun-after-inspect handling by
canRerun
, see
references/diagnostics.md
.
当技能参数仅为一个ID(UUID、workflowId、batchId、executionId)且无其他上下文时,意图永远是检查——绝不执行。
  1. 立即调用
    inspect_run(id)
  2. 展示结果(执行记录、输出内容、诊断信息)。
  3. 停止操作。后续请勿调用
    run_workflow_submit
"run-workflow"是产品名称,而非执行操作的指令。 调用
run_workflow_submit
需满足的关键词:"run"、"execute"、"process"、"generate"、"rerun"、"redo"。若用户消息中未出现这些关键词,请调用
inspect_run
禁止操作:对粘贴的纯ID调用
run_workflow_submit
;先尝试
run_workflow_submit
,失败(404)后再回退到
inspect_run
。关于检查后的重跑处理(
canRerun
),请查看
references/diagnostics.md

When to use

适用场景

TRIGGER when the user: asks what actions/capabilities exist; wants to process images/video/3D through a Firefly workflow; wants to build/compose/execute a workflow; asks about past runs or history; pastes any run-workflow ID (→
inspect_run
); asks "why did my workflow fail"; wants to publish a workflow as an API; wants to save a workflow to Workflow Builder.
DO NOT TRIGGER when: the user wants to call the Firefly REST API directly without MCP (use
firefly-api-specs
); the user is building/debugging the run-workflow server itself.
触发条件:当用户询问存在哪些操作/功能;想要通过Firefly工作流处理图像/视频/3D内容;想要构建/编排/执行工作流;询问过往运行记录或历史;粘贴任何run-workflow ID(→调用
inspect_run
);询问“我的工作流为何失败”;想要将工作流发布为API;想要将工作流保存到Workflow Builder时。
请勿触发:当用户想要直接调用不带MCP的Firefly REST API(请使用
firefly-api-specs
);用户正在构建/调试run-workflow服务器本身时。

Tool routing

工具路由

User intentTool
"What actions are available?" / "What can this MCP do?" / "Show me the catalog"
list_actions
"What parameters does action X accept?"
get_action_schema
"Build / compose / create a workflow for…"
compose_workflow
Upload a local file to get a URL
upload_asset
Execute a workflow — only with explicit run/execute keywords. Returns a
batchId
immediately (async); safe for any size
run_workflow_submit
Check whether a running execution is done — always pass
includeOutputs: true
on every poll
run_workflow_get_status
Abort a running batch by batchId
cancel_workflow
"List my workflows" / "Show my recent runs" (multiple)
list_workflow_history
"Last workflow I ran" / "Most recent run" (single, by recency)
list_workflow_history
(limit=1) →
inspect_run
Per-action outputs/logs/errors for a run; "why did it fail?"; any pasted ID
inspect_run
Look up known-good examples to debug a failed compose
get_workflow_examples
Reload examples after editing JSON files on disk
reload_examples
Publish workflow as a reusable API endpoint with curl
publish_workflow
Save workflow to user's ACP cloud / Workflow Builder UI
save_workflow_to_acp
Generate a curl command for a published workflowId
generate_curl
Display output images inline in chat
display_asset
See newly registered actions (catalog stale)
refresh_catalog
Run a named/featured workflow (retargeting, banners, localization, packaging…)
get_featured_workflow
→ see
references/featured-and-templates.md
Single vs. multiple: one ID / "the last one" / "that workflow" →
inspect_run
(full details). A list/history request with no named target →
list_workflow_history
(summaries only). See
references/diagnostics.md
.
用户意图工具
"有哪些可用操作?" / "这个MCP能做什么?" / "展示我的目录"
list_actions
"操作X接受哪些参数?"
get_action_schema
"为…构建/编排/创建工作流"
compose_workflow
上传本地文件以获取URL
upload_asset
执行工作流——仅当存在明确的run/execute关键词时。立即返回
batchId
(异步);支持任意规模
run_workflow_submit
检查正在运行的执行是否完成——每次轮询务必传入
includeOutputs: true
run_workflow_get_status
通过batchId终止正在运行的批处理
cancel_workflow
"列出我的工作流" / "展示我最近的运行记录"(多条)
list_workflow_history
"我上次运行的工作流" / "最近一次运行记录"(单条,按时间排序)
list_workflow_history
(limit=1)→
inspect_run
某条运行记录的单操作输出/日志/错误;“为何失败?”;任何粘贴的ID
inspect_run
查询已知可用示例以调试失败的编排
get_workflow_examples
编辑磁盘上的JSON文件后重新加载示例
reload_examples
将工作流发布为可复用的API端点(含curl命令)
publish_workflow
将工作流保存到用户的ACP云/Workflow Builder界面
save_workflow_to_acp
为已发布的workflowId生成curl命令
generate_curl
在聊天中内联展示输出图像
display_asset
查看新注册的操作(目录已过时)
refresh_catalog
运行指定/特色工作流(重定向、横幅、本地化、包装…)
get_featured_workflow
→ 查看
references/featured-and-templates.md
单条 vs 多条:单个ID / "上一个" / "那个工作流" →
inspect_run
(完整详情)。无指定目标的列表/历史请求 →
list_workflow_history
(仅摘要)。详情请查看
references/diagnostics.md

Workflow pattern

工作流模式

1. upload_asset        — upload local files; get back URLs for use as inputs
1b. get_action_schema  — if you can identify 1–3 target action types, fetch schemas BEFORE
                         composing and inject them into the compose message (see references/compose.md).
                         Skip for simple/obvious single-action workflows.
2. compose_workflow    — describe the desired processing in natural language; the AI graph agent
                         designs the graph. DO NOT manually specify actions or connections.
3. run_workflow_submit — execute with inputs; pass session_id from step 2. Pass ALL images in ONE
                         call. Returns a batchId immediately (async); does NOT block on completion.
4. run_workflow_get_status — poll the batchId; ALWAYS pass includeOutputs: true. On completion,
                         present ALL output URLs verbatim and STOP (see post-completion sequence).
5. download_output     — ONLY after the user asks; saveTo a folder they choose.
6. publish_workflow    — publish for API reuse   OR   save_workflow_to_acp — save for UI editing.
1. upload_asset        — 上传本地文件;获取可作为输入的URL
1b. get_action_schema  — 若能确定1-3个目标操作类型,请在编排前获取模式并注入到编排消息中(见references/compose.md)。简单/明确的单操作工作流可跳过此步骤。
2. compose_workflow    — 用自然语言描述所需处理流程;AI图智能体将设计工作流图。请勿手动指定操作或连接关系。
3. run_workflow_submit — 使用输入执行工作流;传入步骤2的session_id。将所有图像一次性传入。立即返回batchId(异步);不会等待执行完成。
4. run_workflow_get_status — 轮询batchId;务必传入includeOutputs: true。执行完成后,原样展示所有输出URL并停止操作(见完成后流程)。
5. download_output     — 仅当用户要求时执行;保存到用户选择的文件夹。
6. publish_workflow    — 发布为可复用API   或   save_workflow_to_acp — 保存以便在界面中编辑。

Async polling

异步轮询

CRITICAL — Presigned URLs must NEVER be retyped or reconstructed. Azure SAS / AWS S3 presigned URLs are HMAC-signed over every character. Changing one character invalidates the signature (
asset_download_failed
). Always copy
url
fields verbatim from responses.
After
run_workflow_submit
, poll
run_workflow_get_status
every ~5s with
includeOutputs: true
(the server short-circuits the flag while running — zero extra cost). Report progress using
elapsedSeconds
and
percentage
from the response directly — do not estimate elapsed time yourself:
Running — 3/10 assets complete (30%) · 45s elapsed
  • If a poll includes
    downloadedPreviewOutputs
    , display those immediately (labelled in-progress) while continuing to poll.
  • When
    status === "completed"
    , outputs are already in the response — no second call. Responses are slim by default; pass
    includeProvenance: true
    only if you need the full per-node asset tree.
  • If
    status === "failed"
    , call
    inspect_run
    on the failed execution, summarize, and stop — do not auto-retry or re-wire. See
    references/diagnostics.md
    .
For output extraction paths and inline-display rules, see
references/asset-input.md
.
关键注意事项——预签名URL绝不能重新输入或重构。 Azure SAS / AWS S3预签名URL是基于每个字符进行HMAC签名的。修改任意字符都会使签名失效(触发
asset_download_failed
)。请始终原样复制响应中的
url
字段。
调用
run_workflow_submit
后,每约5秒轮询一次
run_workflow_get_status
,并传入
includeOutputs: true
(服务器在运行时会忽略该标志——无额外成本)。直接使用响应中的
elapsedSeconds
percentage
报告进度——请勿自行估算耗时:
运行中 — 3/10个资产已完成(30%)· 已耗时45秒
  • 若轮询结果包含
    downloadedPreviewOutputs
    ,请立即展示这些内容(标记为进行中),同时继续轮询。
  • status === "completed"
    时,输出内容已在响应中——无需再次调用。响应默认精简;仅当需要完整的节点资产树时,才传入
    includeProvenance: true
  • status === "failed"
    ,对失败的执行记录调用
    inspect_run
    ,总结结果后停止操作——请勿自动重试或重新配置。详情请查看
    references/diagnostics.md
关于输出提取路径和内联展示规则,请查看
references/asset-input.md

Presenting outputs — strict 3-step sequence

输出展示——严格遵循三步流程

Once
run_workflow_get_status
reports
completed
, run these steps in order, one message each, each gated on the user's reply. Never merge them or skip ahead.
  1. Present the raw presigned URLs only. Every output from every output node, verbatim, full URL, never truncated or placeholdered (
    [presigned URL]
    is forbidden). URLs expire in ~1 hour. Group terminal outputs under Final outputs, pipeline artifacts under Intermediate outputs. For featured workflows, surface the merge-data banners (1080×1080, 300×600, etc.) as Final outputs. Nothing else in this message — no download/save/publish offer.
  2. Ask about local download — whether to download locally and to which folder. Only if yes, call
    download_output
    with their chosen
    saveTo
    and report the exact saved paths.
  3. Ask about next steps — save to Workflow Builder (
    save_workflow_to_acp
    ), publish as an API (
    publish_workflow
    ), or start a new workflow.
run_workflow_get_status
报告
completed
后,请按顺序执行以下步骤,每步对应一条消息,且需等待用户回复后再进行下一步。请勿合并步骤或跳过。
  1. 仅展示原始预签名URL。每个输出节点的所有输出,原样展示完整URL,绝不截断或使用占位符(禁止使用
    [presigned URL]
    )。URL约1小时后过期。将最终输出归类到最终输出下,管道产物归类到中间输出下。对于特色工作流,将合并数据横幅(1080×1080、300×600等)作为最终输出展示。此消息中不得包含其他内容——不得提供下载/保存/发布选项。
  2. 询问本地下载需求——是否需要本地下载以及保存到哪个文件夹。仅当用户同意时,调用
    download_output
    并传入用户选择的
    saveTo
    ,然后报告准确的保存路径。
  3. 询问后续操作——保存到Workflow Builder(
    save_workflow_to_acp
    )、发布为API(
    publish_workflow
    ),或开始新的工作流。

Key rules

核心规则

  • session_id
    compose_workflow
    and
    get_featured_workflow
    both return one. Retain it for the whole conversation; pass it to
    run_workflow_submit
    ,
    publish_workflow
    ,
    save_workflow_to_acp
    instead of re-serializing actions/connections. The server holds it for 2 hours.
  • Batch inputs — pass ALL images/assets into a SINGLE
    run_workflow_submit
    call (use the
    content
    array on the input node). Never make separate calls per image.
  • publish vs save
    publish_workflow
    creates a reusable API endpoint (
    workflowId
    + curl): use for "publish", "make it callable", "create an API".
    save_workflow_to_acp
    saves to the user's Adobe cloud for Workflow Builder: use for "save", "keep editing", "open in the UI". If ambiguous, ask before proceeding.
  • History
    inspect_run
    for a single item;
    list_workflow_history
    for lists. Never read local
    workflow.json
    /
    inputs.json
    . Details in
    references/diagnostics.md
    .
  • Missing required input — never silently resolve it (no substituting a simpler action, no auto-generating a placeholder/mask, no scripted workaround). Stop and present options. See
    references/compose.md
    .
  • session_id
    compose_workflow
    get_featured_workflow
    都会返回session_id。在整个对话中保留该ID;将其传入
    run_workflow_submit
    publish_workflow
    save_workflow_to_acp
    ,而非重新序列化操作/连接关系。服务器会保留该ID2小时。
  • 批处理输入——将所有图像/资产一次性传入
    run_workflow_submit
    调用(使用输入节点的
    content
    数组)。绝不要为每张图像单独调用。
  • 发布 vs 保存——
    publish_workflow
    创建可复用的API端点(
    workflowId
    + curl命令):适用于“发布”、“使其可调用”、“创建API”场景。
    save_workflow_to_acp
    将工作流保存到用户的Adobe云以便在Workflow Builder中编辑:适用于“保存”、“继续编辑”、“在界面中打开”场景。若用户需求不明确,请先询问。
  • 历史记录——单条记录使用
    inspect_run
    ;多条记录使用
    list_workflow_history
    。绝不要读取本地的
    workflow.json
    /
    inputs.json
    。详情请查看
    references/diagnostics.md
  • 缺少必填输入项——绝不要静默处理(不得替换为更简单的操作、自动生成占位符/掩码、使用脚本 workaround)。停止操作并提供选项。详情请查看
    references/compose.md

Anti-patterns

反模式

  • Answering capability questions from training knowledge instead of calling
    list_actions
    .
  • Composing non-trivial actions without injecting
    get_action_schema
    context (see compose.md).
  • Using parallel nodes for multi-variant outputs — use one node with an array parameter (compose.md).
  • Manually wiring actions in
    compose_workflow
    — describe intent in natural language.
  • Separate
    run_workflow_submit
    calls per image — pass all inputs in one call.
  • Reading local files for history —
    list_workflow_history
    /
    inspect_run
    are authoritative.
  • Confusing publish and save — publish = API endpoint; save = Workflow Builder. Ask if ambiguous.
  • Calling
    run_workflow_submit
    on a bare pasted ID — inspect, present, stop.
  • Auto-rerunning after inspect, or auto-retrying/patching a failed workflow — always stop and ask.
  • Silently resolving a missing input (blank mask, placeholder, simpler action) — stop and ask first.
  • Trying to display outputs inline in Claude Desktop (
    display_asset
    exceeds the 1MB cap) — present text URLs; use
    download_output
    with
    saveTo
    to save locally.
  • Listing only local paths without the full presigned URLs — always include both.
  • Recommending AWS/S3 upload to work around errors — Azure ADLS is the only supported user path.
  • 凭借训练知识回答功能类问题,而非调用
    list_actions
  • 编排非简单操作时未注入
    get_action_schema
    上下文(见compose.md)。
  • 使用并行节点生成多变体输出——应使用带数组参数的单个节点(见compose.md)。
  • compose_workflow
    中手动配置操作连接——请用自然语言描述意图。
  • 为每张图像单独调用
    run_workflow_submit
    ——将所有输入一次性传入。
  • 读取本地文件获取历史记录——
    list_workflow_history
    /
    inspect_run
    是权威来源。
  • 混淆发布和保存——发布=API端点;保存=Workflow Builder。若不明确请询问。
  • 对粘贴的纯ID调用
    run_workflow_submit
    ——应检查、展示结果、停止操作。
  • 检查后自动重跑,或自动重试/修复失败的工作流——始终停止操作并询问用户。
  • 静默处理缺少的输入项(空白掩码、占位符、更简单的操作)——先停止操作并询问用户。
  • 尝试在Claude Desktop中内联展示输出(
    display_asset
    超过1MB限制)——展示文本URL;使用
    download_output
    并传入
    saveTo
    保存到本地。
  • 仅展示本地路径而不提供完整预签名URL——务必同时包含两者。
  • 推荐使用AWS/S3上传来解决错误——仅支持Azure ADLS用户路径。

References

参考资料

  • Workflow Builder API docs
  • Paired skill for direct Firefly REST calls without MCP:
    firefly-api-specs
    (not included in this plugin)
  • On-demand procedures:
    references/
    (featured-and-templates, compose, diagnostics, asset-input, alert-rca).
  • Workflow Builder API文档
  • 用于直接调用Firefly REST API(不带MCP)的配套技能:
    firefly-api-specs
    (未包含在此插件中)
  • 按需流程:
    references/
    (featured-and-templates、compose、diagnostics、asset-input、alert-rca)。