I've been building FlowNet — a workflow automation SaaS for Shopify merchants, like n8n but embedded inside the Shopify admin.
Last week I finished the MCP server. So I ran an experiment: open Claude Desktop, give it one natural language prompt, and see if it can build a real workflow without me touching the UI.
Here's what happened.
The prompt
I have a Shopify store. I need the following automation in FlowNet:
When a product runs out of stock (all variants = 0) → hide it from the store (set to DRAFT) and tag it as "auto-hidden".
When it comes back in stock → publish it again (set to ACTIVE) and remove the "auto-hidden" tag.
Only if the product has a price > 0.
Please build this workflow in FlowNet.
That's it. No JSON. No drag-and-drop. Just text.
What Claude did
Claude called 6 MCP tools in sequence:
[Shopify: inventory_levels/update]
│
▼
[1] Fetch Product & Variants (GraphQL)
→ Gets product ID, status, tags, all variant prices & quantities
│
▼
[2] Evaluate Stock & Price Logic (Lua)
→ Returns: action ("hide" | "publish" | "skip"), product_id,
current_tags, total_inventory, etc.
│
▼
[3] Should We Act? (Condition)
action != "skip"
├── FALSE → workflow ends (no-op)
└── TRUE
│
▼
[4] Hide or Publish? (Condition)
action == "hide"
├── TRUE → [5] Set DRAFT + Tag "auto-hidden" (GraphQL mutation)
└── FALSE → [6] Set ACTIVE + Remove "auto-hidden" tag (GraphQL mutation)
Two minutes. The workflow was live and ready to execute.
How the MCP server works
FlowNet is built on Elixir/Phoenix. The MCP server runs on top of anubis-mcp with Streamable HTTP transport.
18 tools across 5 domains:
| Domain | Tools |
|---|---|
| Workflows | create, list, get, delete, activate |
| Steps | add, configure, remove, get |
| Triggers | add, configure, get |
| Edges | add, remove |
| Executions | list, get |
Auth is via x-api-key header — a long-lived MCP key stored per-tenant.
Claude Desktop connects through mcp-proxy:
{
"mcpServers": {
"flownet": {
"command": "uvx",
"args": [
"mcp-proxy",
"--transport", "streamablehttp",
"--headers", "x-api-key YOUR_KEY",
"https://your-ngrok-url/mcp"
]
}
}
}
Why MCP changes the product
I originally built FlowNet as a visual builder — drag steps, configure parameters, connect edges. It works, but the onboarding friction is real. Users need to understand the data model before they can build anything useful.
With MCP, the AI handles all of that. The user just describes the outcome.
This shifted my thinking: the visual UI is secondary. MCP + Claude is the primary interface. The builder is for inspection and fine-tuning.
What's next
FlowNet is pre-launch. I'm publishing weekly videos of the build process, including live MCP demos like this one.
🎥 Full demo video: https://youtu.be/rJzt3Peh6jM
Stack: Elixir/Phoenix · Broadway/Kafka · Oban · React Flow · TypeScript · Tailwind
Tags: elixir, shopify, mcp, buildinpublic
Top comments (0)