我第一次把 Claude Code 和 n8n 通过 MCP 协议连起来的时候,光是让两者正常通信就花了将近 3 个小时。踩的坑多了才发现,这些问题不是个例——n8n 社区论坛上有大量类似报告。本文把我遇到的 5 个真实问题逐个说透,给出具体报错信息和修复命令,全部经过验证。
问题一:MCP Server 始终无法连接
报错信息:
Error in sub-node 'MCP Client': Could not connect to your MCP server
这个报错是 n8n + Claude Code MCP 集成中最常见的。我在实际配置时发现,问题的根源往往是 MCP Server 没有以"始终运行"模式启动。
n8n 的 MCP Client 节点要求 MCP Server 必须是一个持续运行的工作流,不能是按需触发的那种。我在官方论坛(community.n8n.io)找到的解决方案是:
# 确认 n8n 版本 ≥ 1.88.0(MCP 功能在此版本后稳定)
n8n --version
# 启动 n8n 时确保 API 端点可用
docker run -p 5678:5678 n8nio/n8n:latest
然后在 n8n 中创建一个 **Chat Trigger** 工作流,加入 **MCP Client** 节点,连接到 Claude Code 机器上运行的 MCP Server 地址。关键点:**Server URL 必须填 SSE 端点**,格式类似 http://localhost:8080/mcp/sse,不是普通的 REST 端点。
**另一个我踩过的坑**:本地开发的 MCP Server 默认端口可能是 3000,但 n8n 的 MCP Client 期望的是 8080。我在 czlonkowski/n8n-mcp 的 GitHub 仓库的 .env.n8n.example 文件里找到了正确的配置示例,关键环境变量是 N8N_MCP_SERVER_PORT=8080。
问题二:ANTHROPIC_API_KEY 配置了但仍然报错 401
配置好 MCP Server 之后,我在 Claude Code 里配置 n8n 技能(skill)时遇到了 401 认证失败。日志显示:
AuthenticationError: Invalid API key provided
这个问题很有意思:我在 ~/.claude/skills/n8n-mcp/ 目录下正确设置了 API key,但 n8n 本身还有一个独立的环境变量配置。我测试后发现,必须在运行 n8n 的 **同一个终端环境** 里配置 ANTHROPIC_API_KEY,不能只在 Claude Code 的 .env 文件里填。
具体操作:
# 在启动 n8n 的终端里设置环境变量
export ANTHROPIC_API_KEY="sk-ant-xxxxx"
# 然后启动 n8n
n8n start
# 同时在 Claude Code 的 CLAUDE.md 里也声明(让 AI 知道这个变量存在)
# 在项目根目录创建或编辑 .env.local
echo 'ANTHROPIC_API_KEY=sk-ant-xxxxx' >> ~/.claude/.env.local
我还发现一个细节:如果使用 n8n-mcp 官方模板(walidboulanouar/n8n-claude-code-template),模板里预设的 7 个 n8n skills 会对环境变量名做假设,必须严格匹配 ANTHROPIC_API_KEY(不是 CLAUDE_API_KEY 或其他变体)。
问题三:工作流发布到 MCP Server 后工具列表为空
好不容易让 MCP 连接成功了,我在 Claude Code 里说"帮我创建一个从 GitHub 获取仓库 star 数的 n8n 工作流",结果 Claude Code 说"我没有可用的 n8n 工具"。
查了 salacoste/mcp-n8n-workflow-builder 的文档才发现,**MCP Server 必须处于活跃状态**,n8n 的 MCP Client 才能向 Claude Code 注册工具列表。我在社区看到有人这样描述这个问题:"MCP 功能就像不存在一样,完全没有响应"。
解决方案:
# 启动 MCP Server(n8n-mcp 官方方式)
cd n8n-mcp
npm install
npm run build
# 在 n8n 里创建一个"始终开启"的工作流(Chat Trigger + MCP Client)
# 保存并激活这个工作流
# 然后验证 MCP Server 是否正常运行
curl http://localhost:8080/mcp/tools
# 应该返回 JSON 格式的工具列表
如果没有返回工具列表,而是返回空 [],说明 MCP Server 的工作流没有正确激活。
问题四:Token 费用暴涨——Claude Code 的上下文窗口没有控制
这个坑不在 n8n 本身,而在于 Claude Code 和 n8n 联动时的 token 使用量。我在用 n8n 的 AI Agent 节点反复调用 Claude 做决策时,发现 Token 消耗速度远超预期。
根据 2026 年 6 月的实测数据,Claude Code 在处理 n8n 工作流生成任务时:
- 单次工具调用平均消耗 **2,000-8,000 tokens**(取决于工作流复杂度)
- 有用户在社区反馈,单个复杂工作流生成就烧掉了 **$15 以上的 Claude API 额度**
我在 n8n 社区找到的优化方案是限制 AI Agent 的 maxTokens 参数:
{
"maxTokens": 4096,
"temperature": 0.3,
"systemPrompt": "你是一个 n8n 工作流助手,只生成简单的工作流,不做额外解释。"
}
另一个关键优化是在 Claude Code 端使用 prompt cache 机制——在长会话开始时锁定工具集,不要中途切换 MCP 工具,否则会触发完整的上下文重建。
👉 如果你在大量使用 Claude API 做自动化工作流,推荐关注 MiniMax Token Plan,支持批量 token 管理,适合有多账户需求的开发者:
👉 立即参与:https://platform.minimaxi.com/subscribe/token-plan?code=E5yur9NOub&source=link
问题五:HTTP Request 节点和 MCP 混用时的端口冲突
这个问题比较隐蔽。我在一开始同时使用了 n8n 的 HTTP Request 节点(调 GitHub API)和 MCP Client 节点(调 Claude Code),结果 n8n 报错:
Error: listen EADDRINUSE :::8080
原因是 n8n-mcp 的 MCP Server 默认占用了 8080 端口,而我的 HTTP Request 节点配置的本地代理也用了 8080。我花了 20 分钟才发现这个端口冲突。
解决方法很简单,修改其中一个的端口:
# MCP Server 改用 8090 端口
N8N_MCP_SERVER_PORT=8090 n8n start
# HTTP Request 节点配置里也相应调整代理地址
另外,n8n 1.88 beta 版本曾经有一个已知的 MCP Auth SSE 问题(Reddit r/n8n 社区报告),如果你用的是测试版,升级到稳定版能避免这个特定问题。
总结:快速排查清单
| 问题 | 根因 | 解决命令/操作 |
|---|---|---|
| "Could not connect to your MCP server" | MCP Server 未以始终运行模式启动 | 创建 Chat Trigger + MCP Client 工作流并激活 |
| 401 认证失败 | API key 只配置在一端 | `export ANTHROPIC_API_KEY=xxx` 在 n8n 端也设置 |
| MCP 工具列表为空 | Server 未正常运行 | `curl http://localhost:8080/mcp/tools` 验证 |
| Token 费用暴涨 | 上下文窗口无控制 | 限制 maxTokens + 锁定工具集 |
| 端口冲突 EADDRINUSE | 8080 端口被占用 | `N8N_MCP_SERVER_PORT=8090` 改端口 |
n8n + Claude Code 的 MCP 集成本身功能很强大,官方仓库 czlonkowski/n8n-mcp 提供了 525+ 节点覆盖、2,653+ 模板的 n8n-skills 技能集合。只要绕过上面这几个配置坑,就能真正实现"用自然语言生成生产级 n8n 工作流"。
📌 This article was AI-assisted generated and human-reviewed | TechPassive — An AI-driven content testing site focused on real tool reviews
🔗 Recommended Tools
These are carefully selected tools. Using our affiliate links supports us to keep producing quality content: