Skip to main content
Glama

Create workflow

create_workflow

Creates a new undeployed automation workflow, optionally with an initial node graph, and returns its saved ID and updatedAt. Nothing runs or deploys until the workflow is deployed.

Instructions

Create a new, undeployed workflow, optionally with an initial graph. Look up node types with list_node_types and get_node_schemas first rather than guessing property names. Returns the saved workflow, including its id and updatedAt. Nothing runs or deploys until deploy_workflow. Refused when the plan's workflow limit is reached or this connection is restricted to existing workflows.

Input Schema

NameRequiredDescriptionDefault
nameYesHuman-readable workflow name.
edgesNoInitial edges between those nodes.
nodesNoInitial nodes. Omit to start empty.

Output Schema

NameRequiredDescriptionDefault
idYes
nameYes
edgesYes
nodesYes
statusYes
ownerIdYes
settingsYes
createdAtYes
updatedAtYes
authoredViaNo
authoredViaClientNo
deployedWorkerUrlNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=false), and the description adds non-obvious behavior beyond that: the created workflow is undeployed and inert until deploy_workflow, the response carries id and updatedAt, and there are two refusal conditions. That is genuine context an agent cannot get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the action and scope, followed by prerequisite, return, and refusal details in that order. Every sentence carries distinct information with no restating of the name or title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't enumerate return fields, and annotations cover safety; the remaining risk areas for a create tool — node validation and accidental deploy expectations — are both addressed. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description rises above it by explaining that the graph is optional and by pointing at list_node_types/get_node_schemas as the source of valid node `type` and `data` shapes. It does not add edge-routing or position conventions, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new, undeployed workflow') plus scope ('optionally with an initial graph'), which cleanly separates it from update_workflow, deploy_workflow, and get_workflow. An agent knows exactly what this produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names prerequisites and alternative tools: use list_node_types and get_node_schemas before guessing property names, and deploy_workflow is the tool that actually runs things. It also states when the call is refused (plan workflow limit reached, connection restricted to existing workflows), which is a real when-not condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.