n8n工作流管理服务器

为n8n工作流自动化平台提供AI模型访问的MCP协议服务器,支持工作流的创建、读取、更新和删除操作。

  • by masseater
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 masseater/n8n-mcp-server

使用说明

n8n MCP服务器

用于n8n工作流自动化平台的模型上下文协议(MCP)服务器。该服务器通过标准化的MCP接口为AI模型提供对n8n工作流的全面访问。

快速开始

先决条件

  • n8n实例正在运行(本地或远程)
  • n8n API密钥(如何获取API密钥)
  • Node.js 22.10.0或更高版本

安装

直接使用npx安装并运行(不需要本地克隆):

npx @r_masseater/n8n-mcp-server --n8n-url "http://localhost:5678" --api-key "your-api-key"

与Claude Desktop一起使用

将此配置添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": ["@r_masseater/n8n-mcp-server"],
      "env": {
        "N8N_URL": "http://localhost:5678",
        "N8N_API_KEY": "your-api-key"
      }
    }
  }
}

保存后,重新启动Claude Desktop。现在,您可以让Claude管理您的n8n工作流!

示例提示:

  • “列出我的所有n8n工作流”
  • “创建一个名为“电子邮件自动化”的新工作流”
  • “显示工作流ID abc123的详细信息”
  • “更新工作流xyz456以添加新节点”

特性

  • 完整的工作流管理:创建、读取、更新和删除n8n工作流
  • 优化响应:用于AI模型消费的上下文高效数据结构
  • 灵活的身份验证:API基于密钥的身份验证
  • 双重运输支持:stdio和HTTP传输
  • 全面的错误处理:带有有意义消息的结构化错误响应

配置

CLI选项

# Basic usage (uses environment variables)
npx @r_masseater/n8n-mcp-server

# With CLI options
npx @r_masseater/n8n-mcp-server --n8n-url http://localhost:5678 --api-key your-key --log-level debug

# HTTP transport (for development/testing)
npx @r_masseater/n8n-mcp-server --transport http --port 3000

环境变量

或者,您可以使用环境变量:

# Required
export N8N_URL="http://localhost:5678"          # n8n instance URL
export N8N_API_KEY="your-api-key"              # n8n API key

# Optional
export LOG_LEVEL="info"                         # Log level (error|warn|info|debug)

发展

如果你想开发或参与这个项目:

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

# Install dependencies
pnpm install

# Build the project
pnpm run build

# Run in development mode with auto-reload
pnpm run dev

# Run tests
pnpm test

可用的MCP工具

1. list_workflows

列出n8n个具有可选筛选功能的工作流。

参数:

  • active (布尔值,可选):按活动状态筛选
  • tags (字符串数组,可选):按标签筛选
  • limit (数字,可选):要返回的最大工作流数(1-100)
  • offset (数字,可选):要跳过的工作流数量

例子:

{
  "name": "list_workflows",
  "arguments": {
    "active": true,
    "tags": ["automation", "production"],
    "limit": 10
  }
}

2. get_workflow

获取特定工作流的详细信息。

参数:

  • id (字符串,必填):工作流ID

例子:

{
  "name": "get_workflow",
  "arguments": {
    "id": "workflow-123"
  }
}

3. create_workflow

创建新工作流。

参数:

  • name (字符串,必填):工作流名称
  • nodes (数组,可选):工作流节点
  • connections (对象,可选):节点连接
  • active (布尔值,可选):工作流是否处于活动状态
  • tags (字符串数组,可选):工作流标记

例子:

{
  "name": "create_workflow",
  "arguments": {
    "name": "My New Workflow",
    "nodes": [
      {
        "id": "node1",
        "type": "n8n-nodes-base.start",
        "position": [100, 100]
      }
    ],
    "connections": {},
    "active": false,
    "tags": ["automation"]
  }
}

4. update_workflow

更新现有工作流。

参数:

  • id (字符串,必填):工作流ID
  • name (字符串,可选):新工作流名称
  • nodes (数组,可选):更新了工作流节点
  • connections (对象,可选):已更新节点连接
  • active (布尔值,可选):更新活动状态
  • tags (字符串数组,可选):更新了工作流标记

例子:

{
  "name": "update_workflow",
  "arguments": {
    "id": "workflow-123",
    "name": "Updated Workflow Name",
    "active": true,
    "tags": ["updated", "production"]
  }
}

5. delete_workflow

删除工作流。

参数:

  • id (字符串,必填):工作流ID

例子:

{
  "name": "delete_workflow",
  "arguments": {
    "id": "workflow-123"
  }
}

用法示例

与Claude Desktop一起使用

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "n8n": {
      "command": "node",
      "args": ["/path/to/n8n-mcp-server/dist/index.js"],
      "env": {
        "N8N_URL": "http://localhost:5678",
        "N8N_API_KEY": "your-api-key",
        "LOG_LEVEL": "info"
      }
    }
  }
}

与其他MCP客户端一起使用

服务器支持stdio和HTTP传输:

# stdio transport (default)
pnpm start

# HTTP transport
pnpm start --transport http --port 3000

发展

项目结构

src/
├── clients/           # n8n API client implementations
├── config/           # Configuration management
├── interfaces/       # TypeScript interfaces
├── optimizers/      # Response optimization
├── server/          # MCP server implementation
├── types/           # Type definitions
└── index.ts         # Main entry point

脚本

# Development
pnpm run dev          # Start in development mode
pnpm run build        # Build the project
pnpm run type-check   # TypeScript type checking

# Production
pnpm start            # Start the server
pnpm start:stdio      # Start with stdio transport
pnpm start:http      # Start with HTTP transport

测试

# Run type checking
pnpm run type-check

# Build and test
pnpm run build

错误处理

服务器提供结构化错误响应:

{
  "content": [
    {
      "type": "text",
      "text": "Error: Failed to authenticate with n8n API"
    }
  ],
  "isError": true
}

常见错误场景:

  • 身份验证失败:API键无效或n8n实例无法访问
  • 找不到工作流:工作流ID无效
  • 验证错误:参数或工作流结构无效
  • 网络错误:连接超时或API不可用

响应优化

服务器优化了AI模型消费的响应:

  • 最小化上下文:删除不必要的字段和元数据
  • 基本信息:保留关键工作流数据
  • 分页支持:高效处理大型数据集
  • 结构化格式:一致的JSON响应

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行类型检查并构建
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。