Skip to main content

Automation tools

Blueprints — read, author, validate, and compile visual Blueprints into tested workflows.

5 tools. Each is callable over MCP with a Bearer agx_ key that holds the required scope. The catalog is public (tools/list isn't scope-filtered); the scope below is enforced when the tool is called (tools/call) — a key without it is refused (default-deny).

get_blueprint

Read a workflow's BLUEPRINT — the simple visual design (8 block types: trigger/step/decision/send/wait/ai/data/end) stored on the workflow. Returns {blocks, edges, has_blueprint, block_types}. A blueprint is the business-facing intent a workflow was built from; use it to understand or rebuild the workflow. Requires blueprints:read.

Required scope: blueprints:read

Input

ParameterTypeRequiredDescription
workflow_idstringThe workflow that owns the blueprint.

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_blueprint",
"arguments": {
"workflow_id": "\u2026"
}
}
}

delete_blueprint

Clear a workflow's blueprint (sets it to empty). Does NOT touch the real workflow graph/nodes. Requires blueprints:write.

Required scope: blueprints:write

Input

ParameterTypeRequiredDescription
workflow_idstring

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_blueprint",
"arguments": {
"workflow_id": "\u2026"
}
}
}

list_blueprints

List the org's workflows that HAVE a blueprint (id, name, block/edge counts, block-type breakdown), newest first. Requires blueprints:read.

Required scope: blueprints:read

Input

No input parameters.

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_blueprints",
"arguments": {}
}
}

set_blueprint

Create or replace a workflow's blueprint. Provide workflow_id and a blueprint = {blocks[], edges[]}. Each block: {id, type (one of trigger/step/decision/send/wait/ai/data/end), position?, data?{title, description, config}}. Each edge: {id?, source, target, label?} (decision branches use label 'Yes'/'No'). Shape-validated; upserts in place — it does NOT change the real workflow graph. Requires blueprints:write.

Required scope: blueprints:write

Input

ParameterTypeRequiredDescription
workflow_idstring
blueprintobjectA blueprint = {blocks[], edges[]}.

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_blueprint",
"arguments": {
"workflow_id": "\u2026",
"blueprint": {}
}
}
}

validate_blueprint

Structurally lint a blueprint and return {valid, errors[], warnings[]}. Pass workflow_id to validate the stored one, OR an inline blueprint ({blocks, edges}). BLOCKS on: no blocks, no/multiple trigger, unknown block type, duplicate id, edge to a missing block. WARNS on: a decision without both branches, unreachable blocks, no end block. Run this before generating a workflow from a blueprint. Requires blueprints:read.

Required scope: blueprints:read

Input

ParameterTypeRequiredDescription
workflow_idstringValidate this workflow's stored blueprint.
blueprintobjectA blueprint = {blocks[], edges[]}.

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "validate_blueprint",
"arguments": {}
}
}