AI工作流控制服务器

n8n MCP Server是一个模型上下文协议服务器,允许AI助手通过自然语言与n8n工作流进行交互,实现工作流的程序化管理和控制。

  • by leonardsellem
  • TypeScript
  • 本地部署
  • 1629 星标
  • 更新于
在 GitHub 查看 leonardsellem/n8n-mcp-server

使用说明

n8n MCP服务器

一种模型上下文协议(MCP)服务器,允许AI助手通过自然语言与n8n工作流进行交互。

概述

该项目提供了一个模型上下文协议(MCP)服务器,使AI助手能够与流行的工作流自动化工具n8n无缝交互。它充当桥梁,使AI助手能够使用自然语言命令以编程方式管理和控制n8n工作流和执行。

安装

先决条件

  • Node.js 20或更高版本
  • 已启用API访问的n8n实例

从npm安装

npm install -g @leonardsellem/n8n-mcp-server

从源代码安装

# Clone the repository
git clone https://github.com/leonardsellem/n8n-mcp-server.git
cd n8n-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Optional: Install globally
npm install -g .

Docker安装

您还可以使用Docker运行服务器:

# Pull the image
docker pull leonardsellem/n8n-mcp-server

# Run the container with your n8n API configuration
docker run -e N8N_API_URL=http://your-n8n:5678/api/v1 \
  -e N8N_API_KEY=your_n8n_api_key \
  -e N8N_WEBHOOK_USERNAME=username \
  -e N8N_WEBHOOK_PASSWORD=password \
  leonardsellem/n8n-mcp-server

更新服务器

如何更新服务器取决于最初的安装方式。

1.通过npm全球安装

如果您使用安装服务器 npm install -g @leonardsellem/n8n-mcp-server:

  1. 打开终端或命令提示符。
  2. 运行以下命令以获取最新版本:
    npm install -g @leonardsellem/n8n-mcp-server@latest
    
  3. 如果服务器当前正在运行(例如,作为后台进程或服务),您需要重新启动它才能使更改生效。

2.从源头安装

如果您克隆了存储库并从源代码安装:

  1. 打开终端或命令提示符。
  2. 导航到克隆项目的目录:
    cd path/to/n8n-mcp-server
    
  3. 如果您对要保留的代码进行了任何本地更改,请考虑将其隐藏(可选):
    git stash
    
    您可以稍后使用 git stash pop.
  4. 从存储库中提取最新更改(假设您在 main 分支):
    git pull origin main
    
    如果您在其他分支机构,请更换 main 使用您的分行名称。
  5. 安装或更新任何更改的依赖关系:
    npm install
    
  6. 重新生成项目以包含最新更新:
    npm run build
    
  7. 如果您之前使用以下命令从该源文件夹全局安装了它 npm install -g .,您可能需要再次运行此命令以更新全局链接:
    npm install -g .
    
  8. 重新启动服务器。
    • 如果您直接使用以下命令运行服务器 node build/index.js 在AI助手的MCP配置中,确保路径仍然正确。使用 npm install -g . 然后 n8n-mcp-server 因为命令应该保持一致。

3.使用Docker

如果你使用Docker运行服务器:

  1. 从Docker Hub中提取最新映像:
    docker pull leonardsellem/n8n-mcp-server:latest
    
  2. 停下来,取出你的旧容器。您需要容器的名称或ID(您可以使用 docker ps):
    docker stop <your_container_name_or_id>
    docker rm <your_container_name_or_id>
    
  3. 使用更新的映像启动一个新容器。使用相同 docker run 您之前使用的命令,包括所有必要的环境变量(示例命令请参阅“Docker安装”部分)。例如:
    docker run -e N8N_API_URL=http://your-n8n:5678/api/v1 \
      -e N8N_API_KEY=your_n8n_api_key \
      -e N8N_WEBHOOK_USERNAME=username \
      -e N8N_WEBHOOK_PASSWORD=password \
      leonardsellem/n8n-mcp-server:latest
    
    确保您使用 :latest 或者您要运行的特定版本标记。

配置

创建一个 .env 您将运行服务器的目录中的文件,使用 .env.example 作为模板:

cp .env.example .env

配置以下环境变量:

变量 描述 示例
N8N_API_URL n8n API的完整URL,包括 /api/v1 http://localhost:5678/api/v1
N8N_API_KEY 用于使用n8n进行身份验证的API密钥 n8n_api_...
N8N_WEBHOOK_USERNAME webhook身份验证的用户名(如果使用webhook) username
N8N_WEBHOOK_PASSWORD webhook身份验证密码 password
DEBUG 启用调试日志记录(可选) true 或 false

生成n8n API密钥

  1. 在浏览器中打开n8n实例
  2. 前往“设置”>“API”>“API密钥”
  3. 创建具有适当权限的新API密钥
  4. 将密钥复制到您的 .env 文件

用法

运行服务器

从安装目录:

n8n-mcp-server

或者,如果全局安装:

n8n-mcp-server

与AI助手集成

构建服务器后(npm run build),您需要配置您的AI助手(如带有Claude扩展的VS Code或Claude Desktop应用程序)来运行它。这通常涉及编辑JSON配置文件。

示例配置(例如,在VS代码中 settings.json 或克劳德桌面 claude_desktop_config.json):

{
  "mcpServers": {
    // Give your server a unique name
    "n8n-local": {
      // Use 'node' to execute the built JavaScript file
      "command": "node",
      // Provide the *absolute path* to the built index.js file
      "args": [
        "/path/to/your/cloned/n8n-mcp-server/build/index.js"
        // On Windows, use double backslashes:
        // "C:\\path\\to\\your\\cloned\\n8n-mcp-server\\build\\index.js"
      ],
      // Environment variables needed by the server
      "env": {
        "N8N_API_URL": "http://your-n8n-instance:5678/api/v1", // Replace with your n8n URL
        "N8N_API_KEY": "YOUR_N8N_API_KEY", // Replace with your key
        // Add webhook credentials only if you plan to use webhook tools
        // "N8N_WEBHOOK_USERNAME": "your_webhook_user",
        // "N8N_WEBHOOK_PASSWORD": "your_webhook_password"
      },
      // Ensure the server is enabled
      "disabled": false,
      // Default autoApprove settings
      "autoApprove": []
    }
    // ... other servers might be configured here
  }
}

要点:

  • 替换 /path/to/your/cloned/n8n-mcp-server/ 使用克隆和构建存储库的实际绝对路径。
  • 为您的操作系统使用正确的路径分隔符(正斜杠 / 对于macOS/Linux,双反斜杠 \\ 适用于Windows)。
  • 确保提供正确的 N8N_API_URL (包括 /api/v1)以及 N8N_API_KEY.
  • 需要构建服务器(npm run build)在助手能够运行之前 build/index.js 文件。

可用工具

服务器提供以下工具:

使用Webhooks

此MCP服务器支持通过n8n webhooks执行工作流。要使用此功能,请执行以下操作:

  1. 在n8n中创建由webhook触发的工作流。
  2. 在webhook节点上设置基本身份验证。
  3. 使用 run_webhook 工具来触发工作流,只传递工作流名称。

例子:

const result = await useRunWebhook({
  workflowName: "hello-world", // Will call <n8n-url>/webhook/hello-world
  data: {
    prompt: "Hello from AI assistant!"
  }
});

webhook身份验证是使用 N8N_WEBHOOK_USERNAME 和 N8N_WEBHOOK_PASSWORD 环境变量。

工作流管理

  • workflow_list:列出所有工作流
  • workflow_get:获取特定工作流的详细信息
  • workflow_create:创建新工作流
  • workflow_update:更新现有工作流
  • workflow_delete:删除工作流
  • workflow_activate:激活工作流
  • workflow_deactivate:停用工作流

执行管理

  • execution_run:通过API执行工作流
  • run_webhook:通过webhook执行工作流
  • execution_get:获取特定执行的详细信息
  • execution_list:列出工作流的执行情况
  • execution_stop:停止正在运行的执行

资源

服务器提供以下资源:

  • n8n://workflows/list:所有工作流列表
  • n8n://workflow/{id}:特定工作流的详细信息
  • n8n://executions/{workflowId}:工作流的执行列表
  • n8n://execution/{id}:具体执行的详细信息

路线图

n8n MCP服务器是一个由社区驱动的项目,其未来的发展方向将取决于您的反馈和贡献!

目前,我们的路线图是灵活的,正在不断发展。我们相信根据用户的需求和想法来改进服务器。

我们鼓励您参与塑造此工具的未来:

  • 建议功能: 对新的工具、资源或改进有想法吗?
  • 讨论优先事项: 想谈谈我们接下来应该关注什么吗?

请在我们的 GitHub问题页面让我们一起为人工智能助手打造一个强大的工具!

发展

建筑

npm run build

以开发模式运行

npm run dev

测试

npm test

代码检查

npm run lint

贡献

我们欢迎社区的贡献,并很高兴看到您如何帮助改进n8n MCP服务器!无论您是在修复错误、提出新功能还是改进文档,您的帮助都是有价值的。

报告Bug

如果您遇到错误,请在我们的 GitHub问题页面.

提交错误报告时,请包括以下内容:

  • 一个清晰且富有描述性的标题。
  • 问题的详细描述,包括重现错误的步骤。
  • 有关您的环境的信息(例如,Node.js版本、n8n MCP服务器版本、操作系统)。
  • 任何相关的错误消息或屏幕截图。

建议增强功能

我们一直在寻找让服务器更好的方法。如果您对增强功能或新功能有想法,请在我们的 GitHub问题页面.

请提供:

  • 为您的建议提供一个清晰、描述性的标题。
  • 详细解释拟议的增强功能以及为什么它是有益的。
  • 任何潜在的用例或示例。

提交拉取请求

如果你想贡献代码,请按照以下步骤操作:

  1. 分叉存储库: 创建自己的fork n8n mcp服务器存储库.
  2. 创建分支: 在你的fork中为你的更改创建一个新的分支(例如。, git checkout -b feature/your-feature-name 或 bugfix/issue-number).
  3. 进行更改: 实现您的功能或修复错误。
    • 确保你的代码遵循现有的编码风格。(我们使用Prettier进行格式化,可以用 npm run lint).
    • 如果适用,请包括对更改的测试。您可以使用以下命令运行测试 npm test.
  4. 提交您的更改: 写清晰简洁的提交信息。
  5. 推你的叉子: 将您的更改推送到您的分叉存储库。
  6. 打开拉取请求(PR): 向提交PR main 官方分支 n8n-mcp-server 存储库。
    • 为您的PR提供一个清晰的标题和描述,解释您所做的更改并引用任何相关问题。

我们将尽快审核您的PR并提供反馈。感谢您的贡献!

许可证

麻省理工学院

🚀 加入我们的团队:呼吁共同维护者!

该项目是一个充满活力、由社区驱动的工具,被人工智能爱好者和开发人员积极使用。目前,它由一位充满激情的人兼职维护,他不是经验丰富的工程师,但致力于将人工智能与工作流自动化联系起来。为了帮助这个项目蓬勃发展,确保其长期健康,并跟上其不断增长的用户群,我们正在寻找热情的 共同维护者 加入我们的团队!

为什么要贡献?

  • 学习与成长: 提高你在TypeScript、Node.js、API集成和人工智能工具开发等领域的技能。
  • 合作: 与其他有动力的开发人员和人工智能用户一起工作。
  • 产生影响: 直接塑造这个项目的未来,并帮助为人工智能社区构建一个有价值的工具。
  • 开源: 获得参与开源项目的经验。

您如何提供帮助

我们欢迎各种形式的捐款!以下是一些你可以有所作为的领域:

  • Bug修复: 帮助我们识别并清除漏洞,以提高稳定性。
  • 功能开发: 根据用户需求和您的想法实施新的工具和功能。
  • 文档: 改进我们的指南、示例和API参考资料,使项目更易于访问。
  • 测试: 增强我们的测试套件(单元、集成),以确保代码质量和可靠性。
  • CI/CD: 帮助简化我们的开发和部署流程。
  • 代码审查: 对pull请求提供反馈,并帮助维护代码标准。
  • 社区支持: 协助用户解决问题并帮助管理讨论。

参与进来!

如果您对人工智能和工作流自动化的交叉感到兴奋,并且正在寻找一个有价值的开源机会,我们很乐意收到您的来信!

准备好贡献了吗?

  1. 查看我们的 GitHub问题页面 找到现有任务,提出新想法,或表达你成为共同维护者的兴趣。
  2. 您可以打开一个名为“共同维护者应用程序”的问题来正式申请,或者只是开始为现有问题做出贡献。
  3. 或者,如果您有任何问题,可以随时联系现有的维护人员。

让我们共同构建人工智能驱动的工作流自动化的未来! 🙌

感谢社区的支持!