親手把 Claude Skill 包成 n8n MCP server:從 SKILL.md 到 Docker 部署
本篇示範把一個 Claude Skill 包成 n8n MCP server,從 SKILL.md、Node.js MCP SDK、Docker compose 到 n8n MCP Client node 設定,做出可重用的 URL 摘要 workflow node。
本文是《n8n MCP 整合教學》系列的深入文章,先看完整版 Pillar 指南。
TL;DR:n8n MCP 是把 Claude Skill 包成可呼叫 server 的整合方式,透過 SKILL.md、MCP SDK 與 Docker 解決 prompt 難部署、難重用、難接 workflow node 的問題。
這篇把「URL 摘要成 5 條 bullet」變成 n8n MCP tool。之後可改客服草稿、SEO brief,也能接進 n8n 雙 LLM 工作流路由:哪個任務派給 Claude、哪個交給 GPT。
你會做出什麼
成品是 url-summary-skill MCP server。n8n 傳入 URL,server 回傳 JSON 摘要。
先跑通單一 skill,再複製到客服、SEO brief、發票摘要。
所需材料
需要 n8n 1.x、Node 20、Anthropic API key、Docker。節點看 MCP Client Tool 文件,協議看 Model Context Protocol。
Step 1 寫 SKILL.md
---
name: url-summary
description: Summarize URL into 5 Traditional Chinese bullets.
trigger: Input contains URL.
---
## Steps
1. Fetch URL text.
2. Find topic, audience, claims, numbers, actions.
3. Return exactly 5 Traditional Chinese bullets.
## Output
{ "title": "", "bullets": [], "source_url": "" }
Step 2 用官方 mcp SDK 包成 server
貼到 server.js:
import express from"express";import{McpServer}from"@modelcontextprotocol/sdk/server/mcp.js";import{StreamableHTTPServerTransport}from"@modelcontextprotocol/sdk/server/streamableHttp.js";import{z}from"zod";import Anthropic from"@anthropic-ai/sdk";const app=express(),claude=new Anthropic({apiKey:process.env.ANTHROPIC_API_KEY}),s=new McpServer({name:"url-summary-mcp",version:"0.1.0"});app.use(express.json());s.tool("url-summary",{url:z.string().url()},async({url})=>{const html=await fetch(url).then(r=>r.text()),txt=html.replace(/<[^>]+>/g," ").slice(0,12000),m=await claude.messages.create({model:"claude-sonnet-4-5",max_tokens:700,messages:[{role:"user",content:`只回 JSON,摘要 5 條繁中 bullet:${url}\n${txt}`}]});return{content:[{type:"text",text:m.content[0].text}]}});app.post("/mcp",async(req,res)=>{const t=new StreamableHTTPServerTransport({sessionIdGenerator:undefined});await s.connect(t);await t.handleRequest(req,res,req.body)});app.listen(3000);
安裝 @modelcontextprotocol/sdk、@anthropic-ai/sdk、express、zod。更多 server 可看 MCP server 範例庫。
Step 3 Docker compose 跑起來
Dockerfile 用 node:20-alpine、npm install、node server.js。compose 如下:
services:
url-summary-mcp:
build: .
ports: ["3000:3000"]
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
執行 docker compose up --build。
Step 4 在 n8n 裡接上 MCP Client node
新增 Form Trigger 收 URL,再接 MCP Client node。server URL 填 http://host.docker.internal:3000/mcp,tool 選 url-summary。
Docker Linux 用同一個 network 的 service name,別填容器內的 localhost。
Step 5 跑通 + log debug
先用短文章 URL 測試。成功後把 MCP 回傳寫進 Set node,再接 Google Docs、Notion 或 Slack。輸出流程可改成 2026 最新 n8n 模板精選:5 個立即可用的自動化案例。
debug 看 /mcp 是否連通、schema 是否有 url、Claude 回傳是否為 JSON。
常見錯誤排查
fetch failed:改用 service name 或檢查 3000 port。
tool not found:重啟 server 後重新載入節點。
invalid JSON:要求 Claude 只回 JSON,或在 server 端加 parse 檢查。
延伸閱讀
下一步可把 URL 摘要 skill 改成 SEO brief。
- n8n MCP 整合教學:把 Claude Skills 變成 workflow node 的完整指南
- n8n 雙 LLM 工作流路由:哪個任務派給 Claude、哪個交給 GPT
- 2026 最新 n8n 模板精選:5 個立即可用的自動化案例
下一步 CTA
這 1700+ 模板裡,很多流程已整理好 trigger、欄位與輸出節點。到 N8Nmarket 找一條最像現場工作的模板,再接這篇的 MCP server。