Skip to main content
Glama

Make an importable n8n workflow

make_n8n_workflow
Read-only

Generate an importable n8n workflow JSON from a plain-words need, with every node wired in order, values said out loud already filled (emails, #channels, trigger events), plus the list of blanks only the person can fill and the credentials to connect. Shape-checked; the person tests it in n8n before turning it on. Say 'and ask me first' (or approval='always') and a one-tap approval gate — a Slack/Telegram/Gmail message with Approve / Decline buttons — goes in front of the step, so nothing is sent, posted, deleted or paid until the person taps Approve.

Input Schema

NameRequiredDescriptionDefault
nameNoWorkflow name shown in n8n (optional; made from the need when left out).
needYesWhat should happen, in plain words. Start with 'when …' for the trigger; add 'and ask me first' before a step the person wants to approve.
approvalNoauto = gate the steps the need asks to approve ('ask me first'); always = gate every irreversible step (send, post, delete, pay); never = no gates.auto

Output Schema

NameRequiredDescriptionDefault
needYes
linksNo
stepsNoone per step: tool, reversibility (read-only / reversible / irreversible), approval_gate
to_fillNoblanks only the person can fill
accountsNocredentials to connect
approvalNowhich steps got an Approve/Decline gate, through which app, and how to add one
problemsNoshape-check findings (empty = clean)
workflowNoimportable n8n workflow JSON
how_to_importNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / steps
      Added value: +{
      +  "description": "one per step: tool, reversibility (read-only / reversible / irreversible), approval_gate",
      +  "items": {
      +    "additionalProperties": true,
      +    "description": "One step: text, kind (trigger/action), the chosen tool or a gap; reversibility = read-only (changes nothing) / reversible (undo by hand) / irreversible (sends, posts, deletes, pays — out in the world), and approval_gate (an Approve/Decline message runs first).",
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / approval
      Added value: +{
      +  "default": "auto",
      +  "description": "auto = gate the steps the need asks to approve ('ask me first'); always = gate every irreversible step (send, post, delete, pay); never = no gates.",
      +  "enum": [
      +    "auto",
      +    "always",
      +    "never"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / need / description
      Previous value: -"What should happen, in plain words. Start with 'when …' for the trigger."New value: +"What should happen, in plain words. Start with 'when …' for the trigger; add 'and ask me first' before a step the person wants to approve."
    • addedOutput schema / properties / approval
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "which steps got an Approve/Decline gate, through which app, and how to add one",
      +  "type": "object"
      +}
  3. Changed3 schema fields changed
    • changedInput schema / properties / name / description
      Previous value: -"Workflow name (optional)"New value: +"Workflow name shown in n8n (optional; made from the need when left out)."
    • addedInput schema / properties / need / description
      Added value: +"What should happen, in plain words. Start with 'when …' for the trigger."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "accounts": {
      +      "description": "credentials to connect",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "how_to_import": {
      +      "type": "string"
      +    },
      +    "links": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "need": {
      +      "type": "string"
      +    },
      +    "problems": {
      +      "description": "shape-check findings (empty = clean)",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "to_fill": {
      +      "description": "blanks only the person can fill",
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "workflow": {
      +      "description": "importable n8n workflow JSON",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "need"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4/5.0
Behavior5/5

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

Without relying on annotations, the description discloses that the tool only produces JSON (shape-checked, human-tested before activation) and that the built-in approval gate blocks sends, posts, deletes and payments until a tap — squarely consistent with readOnlyHint=true. This is far more behavioral context than the annotations supply.

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

Conciseness4/5

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

The core purpose is front-loaded in the first clause and every element (output contents, blanks, approval gate) is substantive rather than filler. The prose is conversational and clause-heavy, which inflates length slightly, but nothing is clearly redundant.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description covers generation behavior, approval semantics, and the human-test-before-enable step. The only remaining gap is the lack of any differentiation from the sibling automation-planning tool, which leaves the agent to infer routing.

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 description coverage is 100%, so the schema already documents all three parameters. The description still adds practical phrasing guidance for 'need' (start with 'when …', insert 'and ask me first') and maps the spoken phrase to approval='always', giving marginal but real value beyond the schema text.

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

Purpose4/5

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

States a specific verb and resource — 'Generate an importable n8n workflow JSON from a plain-words need' — and enumerates what the output contains (wired nodes, pre-filled values, blanks, credentials). An agent can tell what it produces without opening the schema. It does not, however, distinguish itself from the sibling 'plan_automation', which plausibly covers similar ground.

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

Usage Guidelines3/5

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

It gives concrete usage instruction for the approval feature ('Say "and ask me first" (or approval=\'always\')') and notes the workflow is tested in n8n before being turned on, which frames expected usage. But there is no explicit when-to-use-this vs. the siblings (do, find_recipe, plan_automation), so routing guidance is only implied.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources