Bỏ qua đến nội dung chính
AI Automation
Workflow n8n bốn node Webhook, IF và hai Respond do Claude Code dựng qua MCP, khung viền hồng dưới logo n8n

n8n MCP: nối n8n với Claude Code, Cursor qua MCP

Nguyễn Việt Chung

Đăng 9 phút đọc

2 lượt xem
Mục lục · 17

n8n MCP là máy chủ MCP có sẵn trong n8n 2.x, cho Claude Code, Cursor hay Claude.ai liệt kê, chạy và dựng workflow trên n8n của bạn. Bài này bật thử trên bản tự host 2.42.5, nối Claude Code bằng một lệnh, đo thời gian thật, chỉ ra chỗ lộ tên workflow và cách gỡ sạch.

n8n MCP là máy chủ MCP (Model Context Protocol) có sẵn trong n8n 2.x: bật một công tắc trong Settings là các trợ lý AI như Claude Code, Cursor, Claude.ai kết nối được vào n8n của bạn để tìm, chạy và cả dựng workflow. Bạn chọn từng workflow được phép dùng, xác thực bằng OAuth hoặc API key.

Mình bật thử trên n8n 2.42.5 tự host và nối Claude Code 2.1.295 vào ngày 09/10/2026. Kết quả chính:

  • Bật MCP là một công tắc trong Settings, nối Claude Code là một lệnh claude mcp add, không cài thêm gì.

  • Claude Code gọi workflow tính tiền đơn hàng, trả đúng tổng 189.000đ sau 24 giây.

  • Nhờ Claude Code dựng workflow mới 4 node theo mô tả tiếng Việt: xong sau 55 giây, publish lên chạy đúng cả 3 ca thử.

  • Workflow chưa bật MCP thì không chạy được, nhưng tên của nó vẫn hiện ra khi AI tìm workflow.

Chưa rõ n8n là gì thì đọc n8n là gì trước. Chưa có n8n để thử thì làm theo bài tự host n8n bằng Docker, cài mất khoảng một phút.

Banner chính thức của n8n trong README trên GitHub, logo n8n màu hồng và dòng chữ Automate without limits

Banner: README repo n8n-io/n8n trên GitHub.

n8n MCP dùng để làm gì?

MCP là chuẩn mở để trợ lý AI gọi công cụ bên ngoài. Khi n8n làm MCP server, mỗi workflow bạn cho phép trở thành một việc AI làm được: "tính tiền đơn này", "lấy tỷ giá hôm nay", "gửi báo cáo cho kế toán". AI không cần biết API của từng hệ thống, nó chỉ gọi workflow, phần nối Google Sheets, Zalo, cơ sở dữ liệu nằm trong n8n.

Có ba thứ hay bị nhầm vì cùng chữ MCP:

Tên

Nằm ở đâu

Làm gì

Instance-level MCP

Settings của n8n 2.x

Cả n8n thành MCP server cho Claude, Cursor (bài này)

Node MCP Server Trigger

Trong một workflow

Biến riêng workflow đó thành MCP server có tool tự định nghĩa

Node MCP Client Tool

Trong AI Agent của n8n

Cho agent trong n8n gọi MCP server bên ngoài

Bài này chỉ thử cái đầu tiên. Hai node còn lại mình chưa test nên không đưa số.

Bật MCP trong Settings của n8n thế nào?

Vào Settings → Instance-level MCP, bấm Enable MCP access (tài liệu gốc: Connect to n8n MCP server). Trang mô tả thẳng mục đích: để Claude Code, Cursor dựng, chạy và sửa workflow trong instance của bạn.

Trang Instance-level MCP trong Settings của n8n 2.42.5 khi chưa bật, có nút Enable MCP access màu cam

Bật xong, trang hiện thêm phần Access. Ba chỗ cần để ý:

  • Workflows enabled: mặc định 0 workflow. AI chỉ chạy được workflow bạn chọn ở đây, hoặc bật trên thẻ workflow trong danh sách.

  • Auto-expose new workflows: tắt sẵn. Nên để tắt, nếu không mọi workflow tạo sau này tự lộ ra cho AI.

  • Allowed callback URLs: mặc định "All". Chính n8n ghi là kém an toàn hơn; dùng OAuth thì nên giới hạn về địa chỉ client của bạn.

Trang Instance-level MCP sau khi bật: MCP status Enabled, nút Connect, Workflows enabled 0 workflows, Auto-expose new workflows đang tắt, Allowed callback URLs là All

Nối Claude Code vào n8n bằng lệnh nào?

Bấm Connect để mở hộp "Connect a client". Có hai tab. Tab OAuth (recommended) chọn client, với Claude.ai có nút "Add to Claude.ai" bấm một lần. Server URL lấy theo N8N_EDITOR_BASE_URL, nên n8n phải có tên miền HTTPS thì Claude.ai bản web mới gọi tới được.

Hộp Connect a client của n8n, tab OAuth, client Claude.ai, nút Add to Claude.ai và Server URL dạng https://tên-miền/mcp-server/http

Tab API key cho một access token (mình đếm được 272 ký tự) kèm đoạn JSON cấu hình mcpServers. Token chỉ hiện một lần, đóng hộp là phải tạo lại.

Tab API key trong hộp Connect a client: Server URL, Access token đã làm mờ, cảnh báo chỉ thấy token một lần và Configuration JSON mcpServers

Claude Code chạy trên máy mình nên không cần tên miền: mình mở SSH tunnel từ máy chủ n8n về 127.0.0.1:5678 rồi thêm server bằng API key. Dùng --scope local để cấu hình chỉ nằm trong dự án hiện tại, không lan sang dự án khác:

bash
claude mcp add --transport http --scope local n8n-lab \
  http://127.0.0.1:5678/mcp-server/http \
  --header "Authorization: Bearer <API key>"
claude mcp list
Terminal thêm n8n MCP vào Claude Code: lệnh claude mcp add, thông báo File modified ~/.claude.json, claude mcp list báo n8n-lab Connected

Với Cursor hay client khác, dán đoạn Configuration JSON trong tab API key vào file cấu hình MCP của client đó. Mình chưa thử Cursor trong đợt này.

Cho Claude Code chạy workflow n8n

Workflow mình bật MCP là "Webhook tính tiền đơn hàng": nhận món và giá, cộng VAT 8%, trả tổng. Mình hỏi Claude Code ở chế độ không tương tác (claude -p):

bash
claude -p "Dùng n8n (MCP server n8n-lab): liệt kê các workflow mình được phép dùng, rồi chạy workflow tính tiền đơn hàng cho khách 'Cô Mai' đặt 3 bát phở bò giá 55000 và 2 trà đá giá 5000." \
  --allowedTools "mcp__n8n-lab__*"
Terminal Claude Code trả lời qua MCP của n8n: 2 workflow, chỉ Webhook tính tiền đơn hàng được phép, tạm tính 175.000đ, VAT 8% 14.000đ, tổng 189.000đ

Sau 24 giây Claude Code báo đúng: tạm tính 175.000đ, VAT 14.000đ, tổng 189.000đ. Phép tính do workflow làm, không phải model tự nhẩm. Bài n8n là gì có số đo cho thấy model nhỏ tự tính tiền sai tới 5/10 lần, nên giao phần tính cho workflow là đúng hướng.

Ở đợt thử trước, gọi qua HTTPS trên tên miền thật, initialize mất 1,39 giây, execute_workflow chạy xong trong 1,9 giây. Phần lớn 24 giây ở trên là thời gian Claude suy nghĩ và gọi vài tool liên tiếp.

Nhờ Claude Code dựng workflow mới

n8n 2.42.5 có 50 tool MCP, trong đó có tool dựng workflow từ code. Mình yêu cầu:

Tạo workflow "Báo đơn lớn": Webhook nhận POST có khach và tong, nếu tong lớn hơn 1.000.000 thì trả {"canh_bao": true, "loi_nhan": "Đơn lớn của <khach>"}, ngược lại trả {"canh_bao": false}.

Sau 55 giây Claude Code báo xong: nó đọc tài liệu SDK và best practices mà n8n MCP cung cấp, lấy kiểu node, kiểm tra code rồi mới tạo. Workflow có 4 node, tên node tiếng Việt, và chưa publish. Claude Code nói rõ việc này, không tự bật.

Workflow Báo đơn lớn do Claude Code dựng qua MCP: Webhook POST, node IF Tổng > 1.000.000?, hai nhánh Trả cảnh báo và Trả bình thường

Mình publish rồi gọi thử 3 ca bằng curl:

bash
curl -X POST http://127.0.0.1:5678/webhook/bao-don-lon \
  -H 'Content-Type: application/json' -d '{"khach":"Anh Nam","tong":2500000}'

Gửi lên

n8n trả về

{"khach":"Anh Nam","tong":2500000}

{"canh_bao":true,"loi_nhan":"Đơn lớn của Anh Nam"}

{"khach":"Chị Hà","tong":350000}

{"canh_bao":false}

{"khach":"Shop B","tong":"1200000"} (số dạng chuỗi)

{"canh_bao":true,"loi_nhan":"Đơn lớn của Shop B"}

Ca thứ ba Claude Code đã tính trước: nó ghi chú node IF tự đổi chuỗi sang số khi so sánh. Một điểm cần biết: workflow do AI tạo qua MCP tự được bật MCP. Trong danh sách, "Báo đơn lớn" có biểu tượng MCP giống workflow mình bật tay, còn "Tỷ giá Vietcombank" thì không.

Danh sách workflow trong n8n: Báo đơn lớn và Webhook tính tiền đơn hàng có biểu tượng MCP và trạng thái Published, Tỷ giá Vietcombank mỗi sáng không có

Workflow chưa bật MCP thì sao?

Mình bảo Claude Code chạy workflow "Tỷ giá Vietcombank mỗi sáng", workflow này chưa bật MCP. Nó không chạy được và trả lỗi nguyên văn của n8n, kèm đường dẫn để bật. Claude Code cũng không tự đổi quyền.

Terminal Claude Code báo không chạy được workflow Tỷ giá Vietcombank vì Workflow is not available in MCP, kèm link workflow settings

Chỗ chưa kín: tool search_workflows vẫn trả về tên workflow chưa bật MCP (kèm availableInMCP: false). Ngay câu hỏi đầu, Claude Code đã liệt kê "Tỷ giá Vietcombank" dù không được dùng. Nếu tên workflow của bạn lộ thông tin nhạy cảm, ví dụ tên khách hàng, hãy đổi tên trước khi bật MCP.

Không kèm token, hoặc token sai, n8n trả 401 (nguyên văn ở mục lỗi bên dưới).

Gỡ MCP khỏi Claude Code cho sạch

Thử xong mình gỡ ngay, rồi kiểm lại file cấu hình:

bash
claude mcp remove n8n-lab --scope local
claude mcp list | grep n8n
grep -c n8n-lab ~/.claude.json
Terminal gỡ MCP n8n-lab: Removed MCP server n8n-lab from local config, claude mcp list không còn n8n, grep đếm 0 dòng trong ~/.claude.json

Phía n8n, nếu API key đã lộ hoặc không dùng nữa, bấm nút xoay vòng cạnh Access token để tạo key mới. Mình thử: key cũ bị trả 401 ngay, key mới vẫn 200. Không dùng nữa thì tắt luôn MCP status.

Những lỗi mình gặp khi nối Claude Code với n8n

Lỗi

Nguyên nhân

Cách sửa

Workflow is not available in MCP. Enable MCP access from the workflow card…

Workflow chưa bật MCP

Bật trên thẻ workflow hoặc trong Workflows enabled

Unauthorized: Authorization header not sent

Client không gửi header

Thêm --header "Authorization: Bearer …"

{"message":"Unauthorized"}

Token sai hoặc đã xoay vòng

Lấy token mới ở tab API key

Webhook trả 404 … is not registered

Workflow AI vừa tạo chưa publish

Mở workflow, bấm Publish

Claude.ai không kết nối được

Server URL là localhost

Gắn tên miền HTTPS, đặt N8N_EDITOR_BASE_URL

Nguyên văn hai lỗi mình gặp nhiều nhất. Khi workflow chưa bật MCP:

text
Workflow is not available in MCP. Enable MCP access from the workflow card in the workflows list, or from the workflow settings: http://localhost:5678/workflow/ydNLsEyODALiVecn?settings=true

Khi gọi /mcp-server/http thiếu token và khi token sai (cả hai đều 401):

text
{"message":"Unauthorized: Authorization header not sent"}
{"message":"Unauthorized"}

Lỗi 404 khi workflow chưa publish có nguyên văn đầy đủ trong bài tự host n8n bằng Docker.

Khi nào không nên bật MCP cho n8n?

  • n8n chứa workflow chạm tiền thật hoặc dữ liệu khách mà chưa có phân quyền rõ. MCP cho AI tạo và sửa workflow, một câu lệnh mơ hồ có thể đẻ ra workflow sai.

  • Bạn không theo dõi được AI đã tạo gì. Workflow mới tự bật MCP, nên định kỳ xem lại danh sách.

  • Chỉ cần gọi một hai workflow cố định: một webhook có khóa bí mật đơn giản hơn, không cần mở 50 tool cho AI.

Câu hỏi thường gặp

n8n MCP có trong bản tự host miễn phí không?

Có. Mình bật trên n8n 2.42.5 cài bằng Docker, bản Community miễn phí, không cần license. Hộp "Connect a client" có từ n8n 2.33.0 theo tài liệu của n8n.

Dùng MCP của n8n có cần tên miền HTTPS không?

Claude.ai bản web cần, vì nó gọi từ máy chủ của Anthropic tới n8n của bạn. Claude Code, Cursor chạy trên máy bạn thì gọi được localhost hoặc qua SSH tunnel như trong bài. Cách gắn HTTPS khi không có IP tĩnh có trong bài tự host n8n.

AI có tự publish workflow không?

Trong lần thử của mình thì không: Claude Code tạo xong để nguyên trạng thái chưa publish và hỏi lại. Danh sách 50 tool có tool publish, nên nếu bạn ra lệnh thẳng thì nó làm được. Cho quyền tới đâu là do câu lệnh và cấu hình --allowedTools của bạn.

n8n MCP khác node MCP Server Trigger thế nào?

Instance-level MCP mở cả n8n với bộ tool có sẵn (tìm, chạy, dựng workflow). Node MCP Server Trigger nằm trong một workflow, bạn tự định nghĩa từng tool, hợp khi chỉ muốn đưa ra vài việc cụ thể.

Đọc tiếp

Muốn dựng n8n để thử MCP mà chưa có máy chủ, AIDev Cloud cho thuê máy theo giờ; máy CPU 16 nhân 32GB dùng trong bài có giá 3.000 đồng/giờ ngày 09/10/2026.

Thử ngày 09/10/2026 trên máy CPU Standard (16 nhân, 32GB RAM, Ubuntu 24.04) của AIDev Cloud: n8n 2.42.5, Docker 29.6.1, Docker Compose 5.3.0, Claude Code 2.1.295. Số đo qua HTTPS lấy từ đợt thử ngày 08/10/2026 trên máy Tesla P40.

Về tác giả

Nguyễn Việt Chung

Founder AIDev

Thạc sĩ AI MSE, tốt nghiệp thủ khoa với điểm 9,4/10. Đồng sáng lập, CTO E-University, SVOnline: số hóa 10+ đại học, 40.000+ sinh viên. Sáng lập AIDev và VietPlatform, xây hệ thống AI cho doanh nghiệp. Anh trực tiếp biên soạn và giảng dạy toàn bộ lộ trình AI Engineer.