跳至主要內容
n8n MCP Server Claude Code Integration

n8n MCP Server × Claude Code:AI 直接操控工作流

3 分

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_workflowsearch_nodes
Resource可讀取的資料(如工作流列表、節點文件)
Transport通訊方式(stdio 或 HTTP/SSE)

SuperPortia 目前在 Claude Code 連接的 MCP server 包括:Cloud UB(知識庫)、Obsidian(vault 筆記)、Cloudflare(部署操作)、Chrome DevTools(瀏覽器控制)——以及現在的 n8n。

MCP vs 傳統 REST API 的關鍵差異

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。

Note

(a) Workflow execution mode:把已發布的 n8n workflow 暴露為 MCP 工具,讓外部 AI 呼叫觸發。這是官方文件重點描述的使用情境。

(b) Workflow authoring mode:n8n 暴露 SDK-based 工具(search_nodescreate_workflow_from_codevalidate_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

  1. 開啟 https://n8n.superportia.dev(或 http://localhost:5678
  2. 右上角 → SettingsInstance-level MCP
  3. Enable 啟用(如果你已設 N8N_MCP_ENABLED=true,這裡應該已是啟用狀態)
  4. 切到 Connection details 分頁,複製 JWT Access Token
是 JWT,不是 API Key

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>"
用 localhost 而非外部 URL

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

傳統的工作流建立過程:

  1. 打開 n8n UI
  2. 拖拉節點到畫布
  3. 點擊每個節點設定參數
  4. 設定節點之間的連線
  5. 測試執行
  6. 修正錯誤

有了 MCP 整合:

  1. 用自然語言描述你要做什麼
  2. Claude Code 搜尋節點、建構 JSON、驗證、部署

這不只是「更快」,是誰在設計工作流這件事本身發生了變化。

Tip
  • 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 自主執行生產工作流。

MCP 工具是雙向的

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 個我們正在規劃的自動化場景

...需要過 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. 資料主權:敏感資料不出門...

在此文章中被引用