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
| Parameter | Type | Required | Description |
|---|---|---|---|
workflow_id | string | ✓ | The 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
| Parameter | Type | Required | Description |
|---|---|---|---|
workflow_id | string | ✓ |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
workflow_id | string | An existing workflow's UUID to attach to. OMIT for blueprint-first (creates a draft workflow). | |
name | string | Blueprint-first only: the draft workflow's name (e.g. 'Lead qualification'). | |
blueprint | object | ✓ | A 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
| Parameter | Type | Required | Description |
|---|---|---|---|
workflow_id | string | Validate this workflow's stored blueprint. | |
blueprint | object | A blueprint = {blocks[], edges[]}. |
Example
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "validate_blueprint",
"arguments": {}
}
}