Hébergement VPS n8n | Automatisation sécurisée et évolutive
Formation n8n en Français : Automatisation & Agents IA
This workflow turns every n8n workflow you already own into a tool that Claude Desktop (or any MCP client) can discover and run.
Instead of giving the agent 40 tiny tools (send email, read sheet, call API…), you give it 5 meta-tools that let it discover, manage and execute complete end-to-end workflows. Agents make fewer calls, and every call does real work.
<aside> 💡
The key upgrade vs the original template: the pool of "available" workflows lives in an n8n Data Table instead of Redis. No external database, no extra container, and you can read or edit the pool directly in the n8n UI.
</aside>
| Tool | What the agent uses it for |
|---|---|
search_workflows |
Discover every workflow tagged mcp on the instance, with its description and input schema |
add_workflow |
Add one or more workflows to the "available pool" |
remove_workflow |
Remove workflows from the pool |
list_workflows |
List the pool — the agent reads inputSchema from here before executing |
execute_workflow |
Run one workflow from the pool with a JSON parameters object |
flowchart TD
A["MCP Server Trigger"] --> T1["search_workflows"]
A --> T2["add_workflow"]
A --> T3["remove_workflow"]
A --> T4["list_workflows"]
A --> T5["execute_workflow"]
T1 & T2 & T3 & T4 & T5 --> B["When executed by MCP tool<br>(Sub-workflow trigger)"]
B --> C["Configuration"]
C --> D["Route by operation<br>(Switch)"]
D -->|search| E1["n8n: Get MCP-tagged workflows"] --> E2["Format workflow profiles"] --> E3["Return search results"]
D -->|add| F1["n8n: Get MCP-tagged workflows for add"] --> F2["Keep only requested workflows"] --> F3{"Requested workflows found?"}
F3 -->|true| F4["Format profiles for add"] --> F5["Data Table: Save to available pool"] --> F6["Confirm workflows added"]
F3 -->|false| F7["Report add error"]
D -->|remove| G1["Split workflow IDs"] --> G2["One item per workflow ID"] --> G3["Data Table: Remove from pool"] --> G4["Confirm workflows removed"]
D -->|list| H1["Data Table: Get available workflows"] --> H2["Return available pool"]
D -->|execute| I1["Data Table: Check workflow is available"] --> I2{"Workflow available?"}
I2 -->|true| I3["Prepare input parameters"] --> I4["Execute Sub-workflow"] --> I5["Return execution result"]
I2 -->|false| I6["Report execute error"]