使用说明
项目简介
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。
安装步骤
-
克隆仓库:
git clone https://github.com/yoonsoo-park/n8n-nabi.git cd n8n-nabi -
本地开发 (使用 Docker Compose):
- 确保已安装 Docker 和 Docker Compose。
- 运行以下命令启动 n8n 和 MCP 服务器:
docker-compose up --scale n8n-worker=2 - 访问 n8n UI: http://localhost:5678
- MCP 服务器地址 (SSE): http://localhost:1991/sse
- MCP 服务器 HTTP API (测试用): http://localhost:1992/api
-
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' 参数。
基本使用方法
- 启动 MCP 服务器: 根据安装步骤启动 n8n Nabi MCP Server。
- 配置 MCP 客户端: 在 MCP 客户端中,配置上述 JSON 格式的服务器配置信息。
- 连接 MCP 服务器: MCP 客户端根据配置信息连接到 n8n Nabi MCP Server 的 SSE 或 Stdio 端点。
- 调用工具: MCP 客户端可以使用 JSON-RPC 协议向 MCP 服务器发送工具调用请求,例如调用 'n8n_list_workflows' 工具列出 n8n 工作流,或调用 'http_request' 工具发送 HTTP 请求。
- 接收响应: 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 工具交互。
信息
分类
开发者工具