n8n MCP Server × Claude Code:AI 直接操控工作流
n8n v2.13.2 加了一個不起眼的環境變數:N8N_MCP_ENABLED=true。這行設定背後的意義,遠比它看起來的要大。
開啟後,n8n 會在 /mcp-server/http 暴露一個 MCP(Model Context Protocol)endpoint。Claude Code 連上去,就能直接問 n8n「你有哪些節點可以用」、「幫我驗證這個 workflow JSON 對不對」、「根據這段描述建立一個工作流」。
這是典範的轉移:AI 從工作流的執行者,變成工作流的作者。
什麼是 MCP(Model Context Protocol)
MCP 是 Anthropic 在 2024 年末提出的開放協定,讓 AI 模型和外部工具之間有一套標準化的溝通介面。
傳統的 AI + 工具整合方式是:你在 AI 裡寫「請呼叫這個 API」,AI 輸出程式碼或 curl 指令,然後你手動執行。MCP 讓 AI 直接持有工具的「能力清單」,可以直接呼叫,不需要人在中間轉譯。
graph LR
A["傳統方式\nAI 輸出指令\n人工執行"] --> B["MCP 方式\nAI 直接呼叫工具\n結果回到 AI"]
style A fill:#f5f5f5,stroke:#999
style B fill:#e8f4e8,stroke:#4a9
MCP 的幾個核心概念:
| 概念 | 說明 |
|---|---|
| Server | 提供工具能力的服務(如 n8n、Cloudflare、Obsidian) |
| Client | 使用工具的 AI(如 Claude Code、Cursor) |
| Tool | 具體可呼叫的功能(如 create_workflow、search_nodes) |
| Resource | 可讀取的資料(如工作流列表、節點文件) |
| Transport | 通訊方式(stdio 或 HTTP/SSE) |
SuperPortia 目前在 Claude Code 連接的 MCP server 包括:Cloud UB(知識庫)、Obsidian(vault 筆記)、Cloudflare(部署操作)、Chrome DevTools(瀏覽器控制)——以及現在的 n8n。
REST API 讓程式呼叫服務。MCP 讓 AI 呼叫服務,並且 AI 知道「這個服務能做什麼」——工具的描述、參數定義、預期行為都是協定的一部分。AI 可以根據任務自主決定用哪個工具、怎麼組合,而不只是被動執行人工寫好的 API 呼叫序列。
n8n 的 Instance-level MCP Server
n8n v2.13 引入的「Instance-level MCP Server」不同於之前的「MCP Server node」(那個是讓 n8n workflow 本身成為 MCP server,服務其他工具)。
Instance-level MCP 是 n8n 平台本身 暴露為 MCP server,提供管理 n8n 的工具給外部 AI。
(a) Workflow execution mode:把已發布的 n8n workflow 暴露為 MCP 工具,讓外部 AI 呼叫觸發。這是官方文件重點描述的使用情境。
(b) Workflow authoring mode:n8n 暴露 SDK-based 工具(search_nodes、create_workflow_from_code、validate_workflow 等),讓外部 AI 直接設計和建立工作流。這是本文的主題,透過 /tools/list 可以驗證這些工具確實存在(v2.13.2 已驗證)。
如果你在較舊的 n8n 文件裡看到 Instance-level MCP「只能執行工作流」的描述,那是 v2.13 之前的狀態。v2.13.2 的 authoring 工具組已完整上線。
架構圖
graph TB
Claude["Claude Code\n(SS1 本機)"] -->|MCP HTTP| MCP["n8n Instance MCP\nlocalhost:5678/mcp-server/http"]
MCP --> NodeSearch["search_nodes\n搜尋可用節點"]
MCP --> NodeTypes["get_node_types\n取得節點完整設定"]
MCP --> Validate["validate_workflow\n驗證 workflow JSON"]
MCP --> Create["create_workflow_from_code\n從程式碼建立工作流"]
MCP --> Execute["execute_workflow\n觸發工作流執行"]
MCP --> List["list_workflows\n列出所有工作流"]
NodeSearch --> DB["n8n SQLite\n工作流資料庫"]
Create --> DB
Execute --> DB
啟用方式
如果你按照上一篇部署,N8N_MCP_ENABLED=true 已經設好了。接下來是 Claude Code 端的設定。
Step 1:在 n8n 啟用 Instance-level MCP 並取得 JWT Token
- 開啟
https://n8n.superportia.dev(或http://localhost:5678) - 右上角 → Settings → Instance-level MCP
- 點 Enable 啟用(如果你已設
N8N_MCP_ENABLED=true,這裡應該已是啟用狀態) - 切到 Connection details 分頁,複製 JWT Access Token
Instance-level MCP 使用 JWT Access Token,從 Settings → Instance-level MCP → Connection details 取得。這和 Settings → API 裡的 REST API Key 是不同的認證機制。URL endpoint 也不同:MCP 用/mcp-server/http,REST API 用 /api/v1/。
Step 2:在 Claude Code 加入 MCP server
找到或建立 ~/.claude.json,加入 n8n server 設定:
{
"mcpServers": {
"n8n": {
"type": "http",
"url": "http://localhost:5678/mcp-server/http",
"headers": {
"Authorization": "Bearer <你的-JWT-token>"
}
}
}
}
或用 CLI 方式:
claude mcp add --transport http --scope user n8n \
http://localhost:5678/mcp-server/http \
--header "Authorization: Bearer <你的 JWT token>"
Claude Code 和 n8n 跑在同一台機器上,用localhost:5678 直連比透過 Cloudflare Tunnel 快,也不消耗 Tunnel 流量。外部 URL(n8n.superportia.dev)是給瀏覽器用的,MCP agent 連接用 localhost。
Step 3:重啟 Claude Code,驗證連線
/mcp
應該看到 n8n server 出現在清單中,狀態為 connected。如果顯示 disconnected:
# 確認 n8n 在跑
curl -s http://localhost:5678/healthz
# 確認 MCP endpoint 可達(JWT token 驗證)
curl -s -H "Authorization: Bearer <JWT-token>" http://localhost:5678/mcp-server/http
可用的 MCP 工具
連上 n8n MCP 後,Claude Code 取得這些工具(以 n8n v2.13.2 為準):
| 工具名稱 | 說明 | 常見用途 |
|---|---|---|
search_nodes | 搜尋 n8n 節點庫(400+ 個節點) | 「有沒有 LINE Messaging API 節點?」 |
get_node_types | 取得特定節點的完整參數定義 | 確認 HTTP Request 節點的參數格式 |
validate_workflow | 驗證 workflow JSON 語法和設定 | 建立前先驗,避免 runtime 錯誤 |
create_workflow_from_code | 把 workflow JSON 寫入 n8n | 程式化建立工作流 |
list_workflows | 列出所有已存在的工作流 | 查詢現有工作流再修改 |
get_workflow | 取得特定工作流的完整 JSON | 讀取再更新 |
update_workflow | 更新現有工作流 | 修改節點設定或連線 |
execute_workflow | 手動觸發工作流執行 | 測試或程式化觸發 |
get_execution | 查看執行結果 | 除錯,看輸出資料 |
n8n MCP 的工具集在積極開發中。執行/mcp 後點選 n8n server,可以看到目前版本的完整工具清單和參數定義。以上列表以 v2.13.2 為基準。
實際展示:Claude Code 建立工作流
以下是 SuperPortia 測試 MCP 整合的一個真實範例:讓 Claude Code 建立一個「RSS 監控 → 過濾關鍵字 → 寫入 UB」的工作流。
對話過程
夏哥:幫我在 n8n 建一個工作流:每小時抓 https://feeds.feedburner.com/sspai 的 RSS,過濾包含「AI」的文章,把標題和 URL 存到 Google Sheets。
Claude Code(使用 search_nodes 工具):
> search_nodes: {"query": "RSS"}
結果:找到 "RSS Feed Read" 節點(@n8n/n8n-nodes-base.rssFeedRead)
> search_nodes: {"query": "Google Sheets"}
結果:找到 "Google Sheets" 節點(@n8n/n8n-nodes-base.googleSheets)
> search_nodes: {"query": "filter"}
結果:找到 "Filter" 節點(@n8n/n8n-nodes-base.filter)
Claude Code 產出的 workflow JSON 片段:
{
"name": "RSS AI Filter → Google Sheets",
"nodes": [
{
"id": "trigger",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"parameters": {
"rule": { "interval": [{"field": "hours", "hoursInterval": 1}] }
},
"position": [250, 300]
},
{
"id": "rss",
"name": "RSS Feed Read",
"type": "n8n-nodes-base.rssFeedRead",
"parameters": {
"url": "https://feeds.feedburner.com/sspai"
},
"position": [450, 300]
},
{
"id": "filter",
"name": "Filter AI Articles",
"type": "n8n-nodes-base.filter",
"parameters": {
"conditions": {
"string": [{
"value1": "={{$json.title}}",
"operation": "contains",
"value2": "AI"
}]
}
},
"position": [650, 300]
}
],
"connections": {
"Schedule Trigger": {"main": [[{"node": "RSS Feed Read", "type": "main", "index": 0}]]},
"RSS Feed Read": {"main": [[{"node": "Filter AI Articles", "type": "main", "index": 0}]]}
}
}
Claude Code(使用 validate_workflow 工具):
> validate_workflow: {workflow JSON}
結果:{"valid": true, "warnings": []}
Claude Code(使用 create_workflow_from_code 工具):
> create_workflow_from_code: {完整 workflow JSON}
結果:{"id": "wf_abc123", "name": "RSS AI Filter → Google Sheets", "active": false}
整個過程沒有人工點擊 n8n UI,Claude Code 直接完成節點搜尋 → JSON 建構 → 驗證 → 部署。
典範轉移:describe → deploy
傳統的工作流建立過程:
- 打開 n8n UI
- 拖拉節點到畫布
- 點擊每個節點設定參數
- 設定節點之間的連線
- 測試執行
- 修正錯誤
有了 MCP 整合:
- 用自然語言描述你要做什麼
- Claude Code 搜尋節點、建構 JSON、驗證、部署
這不只是「更快」,是誰在設計工作流這件事本身發生了變化。
- OAuth 認證(連接 Google、Slack 等服務需要在 UI 裡授權)
- 複雜條件邏輯的業務判斷(AI 需要明確的描述才能正確設定)
- 測試資料的準備(需要真實的 API 回傳結果來測試 expression)
最有效的模式是:Claude Code 建立工作流骨架,人工填入認證和業務細節,Claude Code 再驗證和優化。
安全考量
MCP server 連到 n8n,等於 AI 有能力新增、修改、執行你所有的工作流。幾個安全原則:
MCP Access Token 隔離:為 Claude Code MCP 建立專用的 n8n MCP Access Token,不要用主帳號的 token。這樣如果需要撤銷,只撤銷這個 token,不影響其他整合。
MCP 只走 localhost:如前所述,~/.claude.json 裡 n8n 的 URL 用 localhost:5678,不是外部 URL。MCP 連線不經過 Cloudflare Tunnel,不暴露在網路上。
工作流執行審查:目前 Claude Code 可以直接觸發 execute_workflow。如果你的工作流有對外影響(發推文、寄信、操作資料庫),建議在 AI session 裡設定限制,不要讓 AI 自主執行生產工作流。
n8n MCP 讓 AI 讀取你的工作流,這意味著 Claude Code 可以看到你工作流裡的 URL、endpoint 設定(但不是加密的 credentials)。在 n8n 裡儲存敏感 API key 時,確認使用 n8n Credentials 系統(加密儲存),不要直接寫在節點參數的明文欄位裡。
和其他 MCP server 的組合威力
n8n MCP 本身的威力來自和其他 MCP server 的組合。SuperPortia 的一個規劃場景:
Claude Code 呼叫 UB MCP → 搜尋知識庫裡的相關文章
→ 呼叫 n8n MCP → 建立一個工作流,把這些文章格式化後發到 LINE Messaging API
→ 呼叫 Cloudflare MCP → 確認 Worker 的 KV 快取已更新
三個 MCP server,一個 Claude Code session,沒有人工切換頁面。這是 AI-native 工作流的樣貌:AI 作為協調者,跨系統完成任務。
本系列的下一步
現在你知道 n8n 怎麼設定(教學篇)、為什麼選它(比較篇)、以及 AI 如何控制它(本篇)。
最後一篇看具體場景:SuperPortia 正在規劃哪五個自動化工作流,以及 n8n + Claude Code MCP 如何改變設計方式 → n8n 實戰應用:5 個我們正在規劃的自動化場景。
...aaS]] - 部署方法:[[完整教學:Docker + Cloudflare Tunnel 部署 n8n]] - MCP 整合:[[n8n MCP Server × Claude Code:AI 直接操控工作流]] 場景一:部落格發布 → 社群同步...
...需要過 CF Tunnel。外部 URL ( ) 留給人類用瀏覽器登入 — 有 CF Access 保護。 完整的 MCP 整合說明在下一篇:[[n8n MCP Server × Claude Code:AI 直接操控工作流]]。 常見問題排除 n8n 起不來,docker logs 顯示 permission denied...
...都沒有等效功能。它們有 API,但那是給程式呼叫的 REST API,需要人工設計端點、認證、錯誤處理——和 MCP 的語意操作層完全不同層次。 關於 n8n MCP 的完整說明,詳見本系列第三篇:[[n8n MCP Server × Claude Code:AI 直接操控工作流]]。 3. 資料主權:敏感資料不出門...