一道門禁牆上的門都上了鎖,只有一扇小門打開,AI 節點的虛線穿過這扇門,連到牆後的 n8n 流程節點

n8n MCP:讓 Claude 直接操作自架 n8n,先過自己的 Cloudflare 門禁

想讓 Claude 透過 n8n MCP 直接幫我建流程、跑流程,第一步就被自己的 Cloudflare 門禁擋住。這篇記錄卡在哪裡、只開哪幾扇小門、授權時哪兩項權限不給,以及 n8n 該連哪些帳號。

這個系列前面架好的 n8n,流程都是我自己在畫面上一個一個拉節點做的。

10 月 15 日早上,我想再往前一步:讓 Claude 直接幫我查看、執行、建立 n8n 的流程。那天我人在公司,用公司 Mac 的終端機遠端操作主機。

結果第一步就卡住了,擋住 Claude 的是我自己設的 Cloudflare 門禁。這篇記錄 n8n MCP 怎麼接上 Claude、卡在哪裡、怎麼解,以及授權時哪兩項權限我沒給。

n8n MCP 是什麼

MCP 是讓 AI 能直接操作其他軟體的「插座規格」。n8n 開了 MCP,Claude 就能透過它幫你建流程、跑流程,不用你自己進 n8n 操作。

連線用的是 OAuth,可以想成「授權通行證」:你在授權頁按同意後,n8n 發一張通行證(token)給 Claude,之後 Claude 拿通行證進門,不用知道你的密碼。

n8n MCP 網址怎麼拿

照 n8n 官方文件(2026 年 10 月),n8n 這邊要做三件事:

  1. 到 Settings → Instance-level MCP,選 Enable MCP access。要有擁有者或管理員權限才看得到
  2. 在 Connection details 按 Connect,打開 Connect a client 視窗。認證方式留在 OAuth (recommended),Your client 選 Claude.ai(在 Web 底下),就會看到 Server URL。網址結尾是 /mcp-server/http,例如 https://n8n.example.com/mcp-server/http
  3. 想讓 Claude 執行或修改的流程,要一個一個打開:在流程編輯畫面的「…」選單 → Settings,打開 Available in MCP

Connect a client 視窗是 n8n 2.33.0 以後才有的,更舊的版本畫面不一樣。

拿到網址後,到 Claude 的連接器設定新增一個「自訂連接器」,貼上這個網址。

卡住:連接器一直連不上

填好網址按下連接,Claude 顯示連接失敗。

原因要從「誰在連」想起。Claude 的連接器不是從我的電腦連過去,而是從 Anthropic 的雲端伺服器。

我的 n8n 前面有 Cloudflare Access 門禁(設定方式見〈不開 port 也能從外面連回家:用 Cloudflare Tunnel 架 n8n〉)。

這道門禁要用 Gmail 收驗證碼才進得去。雲端伺服器沒辦法收信,自然會被擋在門外。

要驗證這個猜測,我在 Mac 用 curl 去要 n8n 的登入設定頁(/.well-known/oauth-authorization-server)。

結果被轉到 Cloudflare Access 的登入頁(302 轉址),證實真的是門禁擋住。

接著從伺服器內部直接問 n8n,不經過門禁,n8n 的設定是對的。問題不在 n8n,在門口。

解法:只開 Claude 一定要用的幾扇小門

我在 Cloudflare Access 另外建了一個應用程式,只對下面這幾個路徑放行(Bypass,等於告訴門口的警衛「這幾扇小門不用檢查」):

路徑誰會用處理
/.well-known/*Claude 伺服器讀登入設定放行
/mcp-server/*MCP 本體,有 n8n 的 token 保護放行
/mcp-oauth/register、/token、/revokeClaude 伺服器註冊、換 token、撤銷放行
/mcp-oauth/authorize我自己的瀏覽器(授權頁)刻意不放行

關鍵是授權頁留在門禁後面。授權頁是我自己用瀏覽器開的,我本來就收得到 Gmail 驗證碼,擋住它不影響我。

就算有陌生人自己註冊了用戶端,要拿到 token,還是得先過我的 Gmail 驗證,再過 n8n 的帳號密碼和兩步驟驗證。

另外建一個應用程式,而不是去改原本的 n8n 門禁,好處是哪天不想讓 Claude 連了,刪掉這一個就好。

改完先用兩行 curl 確認:登入設定頁要回 200(Claude 讀得到),授權頁要回 302(仍然被擋)。兩個都對了,才回 Claude 重新連接。

〈我不是資安本科,請 AI 幫家用伺服器做資安健檢,真的抓到漏洞〉整理過,這台主機對外的門原本只有三扇。

這次多開的幾扇小門,都要有 n8n 發的 token 才用得了,發 token 的授權頁也還在門禁後面。

Cloudflare Access 的 n8n-mcp 應用程式設定,只對 .well-known、mcp-server,以及 mcp-oauth 的 register、token、revoke 五個路徑放行,網域已遮蔽

授權時,有兩項權限我沒給

重新連接後,授權流程依序是:Cloudflare 的 Gmail 驗證 → n8n 登入加兩步驟驗證 → 在授權頁選擇給 Claude 哪些權限。

n8n 的授權頁有 14 項權限可以勾。我選 Custom,給了 12 項,這兩項沒給:

  • 讀取帳密(credential:read):給了等於讓 AI 看得到 n8n 裡存的所有密碼
  • 安裝社群節點(communityPackage:install):等於讓 AI 能在伺服器上裝來路不明的程式

從發現連不上到連線成功,大約 15 分鐘。

連上之後,先想清楚 n8n 要連哪些帳號

Claude 能操作 n8n 之後,下一步是讓 n8n 去串其他服務。我問 Claude:「你覺得我 n8n 應該要連結哪些帳號呢?」

討論出來的觀念是:n8n 是我家裡唯一有公開入口的服務,n8n 裡存的每一組帳密,都是「n8n 被攻破時會一起被拿走的鑰匙」。

所以重點不是能連什麼,而是每個帳號只給剛好夠用的權限,最重要的帳號不要連:

分類帳號做法
建議連通知用的 bot專門用來發通知
建議連WordPress另開一個「編輯」權限的帳號,不用管理員
建議連AI 的 API 金鑰設定每月花費上限
建議連RSS不用帳號
謹慎Google 試算表、雲端硬碟另開一個專用的 Google 帳號,只分享特定檔案給它
不要連主要的 Gmail所有帳號的重設密碼信都在這裡
不要連密碼管理器、Cloudflare、主機商、銀行被拿走的代價太大

接上 AI 之後,風險也要重新算。這台 n8n 原本只有我一個人用;Claude 連上之後,等於多了一個能建立、執行流程的「使用者」。萬一 token 外洩,對方拿到的權限越少越好,這也是授權時不給讀取帳密的原因。

Claude 連上 n8n 之後做的第一件事,是幫這台主機裝上通知,下一篇接著寫。

這是舊電腦家用伺服器系列的第 10 篇。

上一篇:〈我不是資安本科,請 AI 幫家用伺服器做資安健檢,真的抓到漏洞〉;

下一篇〈家用伺服器通知怎麼做:Telegram、心跳、備份、登入,全部免費〉已經上架,寫的是用 Telegram 免費幫家用伺服器裝上失敗、心跳、備份、登入和安全公告通知。