n8n ships a built-in MCP Client node (n8n 1.122.0 and newer, Cloud and self-hosted) that runs any Vaybel tool as a regular workflow step. There is nothing to install: create one credential, import a template, run it.
Connect
Create a Personal Access Token
Dashboard → Settings → API & MCP → Create token. Keep all scopes selected unless you are deliberately limiting the automation.
Create a Bearer Auth credential in n8n
Credentials → New → Bearer Auth. Paste the token into the single Token field. Name it Vaybel MCP Bearer so the templates pick it up by name.
Import a template
Workflows → Import from file → choose a template from vaybel/automation. Open each MCP Client node and select the credential. That is the only edit an imported template needs.
Templates
| Template | Flow |
|---|---|
| Launch: blank → design → mockups | Manual trigger → catalog.list_blanks → design.generate → poll design.get_generation → mockup.generate → poll mockup.get_generation |
| AI Agent with Vaybel tools | Chat trigger → AI Agent with the Vaybel tools attached through the MCP Client Tool sub-node (bring your own chat-model credential) |
Building your own steps
- Node settings — Server Transport
HTTP Streamable, Endpointhttps://mcp.vaybel.com/, AuthenticationBearer Auth, Tool = the tool name (for exampledesign.generate), Input ModeJSON. - Arguments — write the JSON input as an expression that returns an object, for example
={{ ({ product_uuid: $json.structuredContent.products[0].uuid, prompt: "retro sunset" }) }}. The node passes the value straight to the tool, so it must be an object, not a string. - Results — the tool's response object arrives on
$json.structuredContent; read fields from there (handle,done,design_id,products[],mockups[]). - Async tools — generation tools return a
handle. Loop anIFnode on$json.structuredContent.done === truewith a shortWaitand re-poll<domain>.get_generationwithwait_sec: 45. A single wait is capped at 50 seconds, so set each MCP Client node's Timeout option above 60000 ms (the templates use 120000). - Credits and plans — the same credit wallet and plan gates apply as everywhere else; check
credits.checkfirst in long batch runs and read Authentication & Scopes for costs.
Publishing safely
Templates stop at draft listings. Add listing.publish (or social_post.publish) as an explicit final step only when the workflow is meant to go live, and consider a Slack or email approval node before it.