使用说明
n8n MCP服务器
MCP(模型上下文协议)服务器,使Claude能够与您的自托管n8n工作流进行交互。此服务器提供直接从Claude列出、检查和监视n8n工作流的工具。
特性
- list_workflows -获取所有工作流及其ID、名称和活动状态
- get_workflow -检索完整的工作流定义,包括节点和连接
- getexecutions -查看最近的执行历史记录,包括状态和错误详细信息
先决条件
- Node.js 18或更高版本
- 启用了API访问的自托管n8n实例
- n8n API密钥
安装
- 克隆此存储库:
git clone <repository-url>
cd n8n-mcp-server
- 安装依赖项:
npm install
- 构建项目:
npm run build
配置
获取n8n API密钥
- 登录您的n8n实例
- 前往设置→ API
- 如果没有,请单击“创建API密钥”
- 复制API密钥
设置环境变量
创建 .env 在项目根目录中创建文件或直接设置环境变量:
N8N_URL=https://your-n8n-instance.com
N8N_API_KEY=your-api-key-here
重要提示:
- 这
N8N_URL应该是您的完整n8n实例URL(例如。,https://n8n.example.com) - 不要在URL中包含尾随斜线
- 确保API密钥的安全,并且永远不要将其提交给版本控制
配置Claude桌面
将此服务器添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"n8n": {
"command": "node",
"args": ["/absolute/path/to/n8n-mcp-server/build/index.js"],
"env": {
"N8N_URL": "https://your-n8n-instance.com",
"N8N_API_KEY": "your-api-key-here"
}
}
}
}
替换 /absolute/path/to/n8n-mcp-server 与这个项目的实际路径。
用法
配置后,重新启动Claude Desktop。现在,您可以让Claude与您的n8n工作流进行交互:
示例提示
- “列出我的所有n8n工作流”
- “显示工作流ID abc123的详细信息”
- “获取我的数据同步工作流的最近执行历史记录”
- “我有哪些当前处于活动状态的工作流?”
- “检查我的Slack通知工作流是否已成功运行”
可用工具
1.列表_工作流
列出n8n实例中的所有工作流。
退货:
{
"success": true,
"count": 5,
"workflows": [
{
"id": "1",
"name": "My Workflow",
"active": true,
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-02T00:00:00.000Z",
"tags": []
}
]
}
2.获取工作流
获取完整的工作流定义,包括所有节点和连接。
参数:
workflow_id(string,必填):要获取的工作流的ID
退货:
{
"success": true,
"workflow": {
"id": "1",
"name": "My Workflow",
"active": true,
"nodes": [...],
"connections": {...},
"settings": {...}
}
}
3.get_executions
获取工作流的最近执行历史记录。
参数:
workflow_id(字符串,必填):工作流的IDlimit(number,可选):要返回的执行次数(默认值:10,最大值:100)
退货:
{
"success": true,
"workflowId": "1",
"count": 3,
"executions": [
{
"id": "exec1",
"workflowId": "1",
"finished": true,
"mode": "manual",
"startedAt": "2024-01-01T00:00:00.000Z",
"stoppedAt": "2024-01-01T00:01:00.000Z",
"status": "success",
"error": null
}
]
}
局限性
此MCP服务器专注于 工作流检查和监控,而不是执行。
此服务器的功能:
- ✅ 列出并检查工作流配置
- ✅ 监控执行历史和状态
- ✅ 通过检查执行数据调试工作流问题
- ✅ 了解工作流结构(节点、连接、设置)
此服务器不做什么:
- ❌ 以编程方式触发工作流执行
- ❌ 修改工作流配置
- ❌ 创建或删除工作流
为什么没有工作流触发?
工作流应通过其本机触发器类型触发:
- Webhooks: 将webhook URL用于HTTP触发的工作流
- 手动触发器: 使用n8n UI中的“测试工作流”或“执行工作流”按钮
- 计划触发因素: 在n8n中配置cron表达式
- 其他触发因素: 使用n8n的内置触发机制
程序化工作流执行很复杂,因为不同的触发器类型需要不同的数据格式和处理。该服务器通过专注于检查和监控来保持简单可靠。
Claude使用示例
这是一个真实的对话,显示了MCP服务器的运行情况:
用户: “你能给我看看我所有的n8n工作流吗?”
克劳德: [使用list_workflows工具]
“您有5个工作流:
- “客户入职电子邮件”(ID:1,活动)
- “松弛通知管道”(ID:3,活动)
- “数据同步到Airtable”(ID:7,未激活)
- “周报生成器”(ID:12,活动)
- '测试工作流'(ID:15,未激活)”
用户: “显示Slack通知工作流的详细信息”
克劳德: [使用ID为3的get_workflow工具]
“Slack通知管道工作流有4个节点:
- Webhook触发器(监听/Webhook/lack警报)
- 筛选器节点(检查严重性是“高”还是“严重”)
- 设置节点(为Slack设置消息格式)
- Slack节点(发送到#警报通道)
工作流当前处于活动状态,将在收到对webhook URL的POST请求时触发。”
用户: “此工作流是否已成功运行?检查最近10次执行情况”
克劳德: [使用ID为3的get_executions工具,限制为10]
“Slack通知管道的最近执行历史:
✅ 8次成功执行 ❌ 2次执行失败
失败发生在2025年12月13日14:23和15:45。两者都在Slack节点上失败,错误为:“channel_not_found-channel#警报不存在”
建议:检查Slack工作区中是否存在#alerts频道,或更新工作流以使用其他频道。"
发展
建筑
npm run build
观看模式
npm run watch
发展模式
npm run dev
错误处理
服务器包括全面的错误处理:
- 身份验证错误(401/403):API密钥无效或丢失
- 未发现错误(404):工作流或资源不存在
- 网络错误:n8n实例的连接问题
- 无效参数:缺少或无效的工具参数
所有错误都以结构化格式返回,并带有清晰的消息。
安全注意事项
- 永远不要将API密钥提交到版本控制
- 使用环境变量或安全配置管理
- 确保您的n8n实例在生产环境中使用HTTPS
- 定期旋转API键
- 如果可能,限制API密钥权限
故障排除
“N8N_URL环境变量是必需的”
确保您已设置 N8N_URL 在您的Claude Desktop配置中。
“身份验证失败”
请检查您的API密钥是否正确并具有必要的权限。
“找不到资源”
请验证工作流ID是否存在,以及您的API密钥是否有权访问该ID。
连接超时
确保您的n8n实例是可访问的,并且不在阻止请求的防火墙后面。
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交拉取请求。