N8N MCP 服务器

N8N MCP 服务器是一个用于与N8N API交互的模型控制协议(MCP)服务器,提供通过MCP端点访问N8N功能的简化接口。

  • by bader1919
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 bader1919/n8n-mcp-server

使用说明

N8N MCP服务器

这是一个模型控制协议(MCP)服务器,用于与N8N的API交互。它提供了一个简化的接口,可以通过MCP端点访问N8N功能。

这是什么?

此MCP服务器充当Claude等AI助手和N8N自动化平台之间的桥梁。它允许AI助手:

  • 列出、创建、更新和删除工作流
  • 执行工作流并管理工作流执行
  • 管理凭据和标签
  • 将N8N功能集成到对话流中

需求

  • Node.js 16+
  • 具有API访问权限的N8N实例
  • N8N API密钥

设置

  1. 克隆此存储库:

    git clone https://github.com/bader1919/n8n-mcp-server.git
    cd n8n-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 配置环境变量:

    • 复制 .env.example 向 .env
    • 填写您的N8N API详细信息:
      • N8N_API_BASE_URL:N8N API的URL(默认值:http://localhost:5678/api/v1)
      • N8N_API_KEY:您的N8N API密钥
      • PORT:此MCP服务器将运行的端口(默认值:3000)
  4. 启动服务器:

    npm start
    

可用端点

工作流

  • /mcp/listWorkflows:获取所有工作流
  • /mcp/getWorkflow:按ID获取特定工作流
  • /mcp/createWorkflow:创建新工作流
  • /mcp/updateWorkflow:更新现有工作流
  • /mcp/deleteWorkflow:删除工作流
  • /mcp/activateWorkflow:激活工作流
  • /mcp/deactivateWorkflow:停用工作流

执行

  • /mcp/listExecutions:获取所有执行,可选择按工作流筛选
  • /mcp/getExecution:按ID获取特定执行
  • /mcp/deleteExecution:删除执行
  • /mcp/executeWorkflow:使用可选数据执行工作流

凭证

  • /mcp/listCredentials:获取所有凭据
  • /mcp/getCredential:通过ID获取特定凭证
  • /mcp/createCredential:创建新凭据
  • /mcp/updateCredential:更新现有凭据
  • /mcp/deleteCredential:删除凭据

标签

  • /mcp/listTags:获取所有标签
  • /mcp/createTag:创建新标记
  • /mcp/deleteTag:删除标记

与克劳德一起使用

要将此MCP服务器与Claude一起使用,请按如下方式安装:

install_local_mcp_server path="./n8n-mcp-server"

然后,您可以通过MCP端点访问N8N功能。Claude可以通过自然语言对话帮助您构建和执行N8N工作流。

示例用法

以下是一个如何列出所有工作流的示例:

// Example call to listWorkflows
const result = await listWorkflows();
console.log(result);

要执行工作流,请执行以下操作:

// Example call to executeWorkflow
const result = await executeWorkflow({
  workflowId: "1234",
  data: {
    input1: "value1",
    input2: "value2"
  }
});
console.log(result);

看 example-client.js 更多示例。

安全考虑

  • 此MCP服务器需要N8N API凭据才能正常工作
  • 小心将此服务器暴露在公共互联网上
  • 如果在生产中部署,请考虑使用API密钥或其他身份验证机制

许可证

麻省理工学院

贡献

欢迎拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。