使用说明

项目简介

n8n Nabi MCP Server 项目提供了一个 MCP 服务器的实现,它允许 AI 系统(如大型语言模型)发现和使用 n8n 工作流作为 "工具"。通过集成 n8n 和 MCP,AI 代理可以利用自然语言触发或管理 n8n 工作流,实现更强大的自动化和外部功能调用。该项目使用 FastMCP 库构建,支持 SSE 和 Stdio 传输协议,并提供 HTTP API 用于测试。

主要功能点

  • MCP 协议支持: 实现了 Model Context Protocol 服务器,能够处理 MCP 客户端的请求和响应。
  • 工具注册与执行: 允许注册和执行 n8n 工作流相关的工具,例如列出 n8n 工作流。
  • HTTP 请求工具: 提供通用的 HTTP 请求工具,允许 AI 代理调用外部 API。
  • SSE 传输协议: 支持基于 Server-Sent Events (SSE) 的 MCP 通信,实现实时的双向通信。
  • Stdio 传输协议: 支持基于标准输入输出流 (Stdio) 的 MCP 通信。
  • 本地开发与 Docker 支持: 提供 Docker Compose 快速启动环境,方便本地开发和测试。
  • AWS EKS 部署示例: 提供基于 AWS EKS 的部署配置,方便在云端部署 MCP 服务器和 n8n。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/yoonsoo-park/n8n-nabi.git
    cd n8n-nabi
  2. 本地开发 (使用 Docker Compose):

  3. AWS EKS 部署 (简要步骤):

    • 前提条件: 确保已配置 AWS CLI, eksctl, kubectl 等工具,并拥有 AWS 账号和 EKS 集群。
    • 创建 EKS 集群: 使用 'eksctl create cluster' 命令创建 EKS 集群。
    • 构建 MCP Server Docker 镜像: 在 'mcp-server' 目录下构建 Docker 镜像并推送到镜像仓库。
    • 部署 Kubernetes 资源: 按照 'k8s/base/' 和 'k8s/secrets/' 目录下的 YAML 文件顺序执行 'kubectl apply -f' 命令部署到 Kubernetes 集群。
    • 访问 n8n: 获取 n8n Service 的 Load Balancer URL,并创建 DNS 记录。

服务器配置

以下是 MCP 客户端连接 n8n Nabi MCP Server 的配置信息示例 (JSON 格式),假设使用 SSE 传输协议:

{
  "serverName": "n8n-nabi-mcp",
  "command": "node dist/server.js",
  "args": [
    "--transportType", "sse",
    "--port", "1991",
    "--sseEndpoint", "/sse"
  ],
  "env": {
    "N8N_BASE_URL": "http://n8n:5678/api/v1",  // n8n API 基础 URL,通常为 http://<n8n-service-name>:<port>/api/v1
    "N8N_API_KEY": "<your_n8n_api_key>"      // n8n API Key,需要提前在 n8n 中生成
    // 其他环境变量,例如 MCP_TRANSPORT_TYPE, MCP_SERVER_PORT 等,如果需要覆盖默认值可以在这里配置
  }
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,客户端用于标识连接的服务器。
  • 'command': 启动 MCP 服务器的命令。对于 n8n Nabi MCP Server,通常使用 'node dist/server.js',假设已编译 TypeScript 代码到 'dist' 目录。
  • 'args': 传递给启动命令的参数列表。
    • '--transportType': 指定 MCP 传输协议,这里设置为 'sse' (Server-Sent Events)。
    • '--port': 指定 MCP 服务器监听的端口,这里设置为 '1991'。
    • '--sseEndpoint': 指定 SSE 端点路径,这里设置为 '/sse'。
  • 'env': 环境变量配置。
    • 'N8N_BASE_URL': 必需。指向 n8n API 的基础 URL。需要根据实际 n8n 部署情况配置,例如在 Docker Compose 环境中可以使用 'http://n8n:5678/api/v1',在 Kubernetes 集群中需要使用 n8n Service 的地址。
    • 'N8N_API_KEY': 必需。用于访问 n8n API 的 API Key。需要在 n8n UI 中生成 API Key 并配置在此处。

注意: 实际部署时,需要根据环境和需求调整 'command'、'args' 和 'env' 中的参数。例如,如果使用 Stdio 传输协议,则 '--transportType' 应设置为 'stdio',并且不需要 '--port' 和 '--sseEndpoint' 参数。

基本使用方法

  1. 启动 MCP 服务器: 根据安装步骤启动 n8n Nabi MCP Server。
  2. 配置 MCP 客户端: 在 MCP 客户端中,配置上述 JSON 格式的服务器配置信息。
  3. 连接 MCP 服务器: MCP 客户端根据配置信息连接到 n8n Nabi MCP Server 的 SSE 或 Stdio 端点。
  4. 调用工具: MCP 客户端可以使用 JSON-RPC 协议向 MCP 服务器发送工具调用请求,例如调用 'n8n_list_workflows' 工具列出 n8n 工作流,或调用 'http_request' 工具发送 HTTP 请求。
  5. 接收响应: MCP 服务器执行工具后,会将结果通过 JSON-RPC 响应返回给 MCP 客户端。

示例工具调用 (JSON-RPC over SSE):

{
  "jsonrpc": "2.0",
  "id": "123",
  "method": "tool",
  "params": {
    "name": "n8n_list_workflows",
    "parameters": {}
  }
}

已提供的工具

  • 'n8n_list_workflows': 列出 n8n 中可用的工作流。
  • 'http_request': 发送 HTTP 请求到指定的 URL。
  • 'ncino-cli': (待实现) 用于与 ncino-cli 工具交互。

信息

分类

开发者工具