Skip to main content

Automation tools

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

6 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 is built from — often captured in a hurry, so treat it as rough NOTES, not a precise spec. To build a workflow from it: read get_workflow_authoring_guide ('Building from a blueprint' + 'Build with confidence') — interpret the blocks, ASK the human to resolve any gaps, write answers back with set_blueprint, then author + validate + test. 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"
}
}
}

get_blueprint_authoring_guide

Get the BLUEPRINT authoring reference: the 8 block types (trigger/step/decision/send/wait/ai/data/end), the trigger→steps→decision(Yes/No)→end shape, and the block/edge JSON with a worked example. Read this before authoring or editing a blueprint with set_blueprint. Requires blueprints:read.

Required scope: blueprints:read

Input

No input parameters.

Example

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

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 = {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. TWO modes: (1) ATTACH — pass a real workflow_id (UUID) to upsert that workflow's blueprint in place. (2) BLUEPRINT-FIRST — for 'design a blueprint for X' when NO workflow exists yet, OMIT workflow_id (optionally pass name) and it creates a DRAFT workflow shell to hold the sketch, returning the new workflow_id. Do NOT invent a workflow_id — omit it. The blueprint is the intent doc that precedes the built graph; write clarified answers back as you interrogate gaps. Requires blueprints:write.

Required scope: blueprints:write

Input

ParameterTypeRequiredDescription
workflow_idstringAn existing workflow's UUID to attach to. OMIT for blueprint-first (creates a draft workflow).
namestringBlueprint-first only: the draft workflow's name (e.g. 'Lead qualification').
blueprintobjectA blueprint = {blocks[], edges[]}.

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_blueprint",
"arguments": {
"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": {}
}
}