一键部署n8n MCP服务器
模型上下文协议(MCP)服务器,允许AI代理通过自然语言与n8n工作流交互。
部署
一键部署到铁路

注: 单击按钮后,Railway将提示您配置必要的环境变量(见下文)。
Docker部署(手动/本地测试)
这 Dockerfile 在此存储库中配置为构建 n8n-mcp-server 并使用Supergateway运行它。
- 构建Docker镜像:
docker build -t n8n-mcp-server-supergateway .- 运行Docker容器:
docker run --rm -it -p 8080:8080 \
-e PORT=8080 \
-e N8N_API_URL="YOUR_N8N_API_URL" \
-e N8N_API_KEY="YOUR_N8N_API_KEY" \
-e N8N_WEBHOOK_USERNAME="your_webhook_user" \
-e N8N_WEBHOOK_PASSWORD="your_webhook_password" \
-e DEBUG=true \
n8n-mcp-server-supergateway将占位符值替换为实际的n8n凭据。服务器将可通过SSE访问 http://localhost:8080。超级网关提供默认路径 /sse 对于事件流和 /message 用于发布消息。
配置
服务器需要以下环境变量。使用按钮部署到Railway时,系统将提示您输入这些内容。对于本地Docker运行,使用 -e 如上图所示。
N8N_API_URL:您的n8n实例API URL(例如。,https://n8n.example.com/api/v1). 必修的。N8N_API_KEY:您的n8n API密钥。 必需 并被视为秘密。N8N_WEBHOOK_USERNAME:n8n webhook节点上基本身份验证的用户名(如果您的工作流使用受基本身份验证保护的webhook触发器)。违约:anyname.N8N_WEBHOOK_PASSWORD:n8n webhook节点上基本身份验证的密码。违约:somepassword.DEBUG:设置为true用于n8n mcp服务器和Supergateway的详细日志记录,或false用于生产。违约:false.PORT:应用程序将侦听的端口。Railway会自动设置此端口。超级网关使用此变量。这Dockerfile默认值为8080.
生成n8n API密钥
- 在浏览器中打开n8n实例。
- 转到“设置”>“API”(或类似路径,具体取决于n8n版本)。
- 创建具有适当权限的新API密钥。
- 复制钥匙。
连接到服务器(客户端集成)
一旦 n8n-mcp-server 如果正在运行(例如,部署在Railway上或本地Docker中),它会通过服务器发送事件(SSE)公开MCP接口。
Docker容器中的Supergateway实例(定义见 Dockerfile)通常使MCP服务器在以下位置可用:
- SSE流: `http://:
/sse`
- 消息终结点: `http://:
/message`
(如果部署在铁路上, : 将是您的公共铁路URL,例如。, https://my-n8n-mcp.up.railway.app)
AI代理或MCP客户端有几种连接方式:
- 直接SSE连接:
如果您的MCP客户端(例如,您的AI代理的框架)本机支持通过SSE URL和消息端点连接到MCP服务器,请使用上述URL对其进行配置。
示例 mcp.json 直接SSE的配置:
{
"n8n_local_docker_sse": {
"url": "https://my-n8n-mcp.up.railway.app/sse",
"disabled": false,
"alwaysAllow": [
"mcp_n8n_docker_direct_list_workflows",
"mcp_n8n_docker_direct_get_workflow",
"mcp_n8n_docker_direct_create_workflow",
"mcp_n8n_docker_direct_update_workflow",
"mcp_n8n_docker_direct_delete_workflow",
"mcp_n8n_docker_direct_activate_workflow",
"mcp_n8n_docker_direct_deactivate_workflow",
"mcp_n8n_docker_direct_list_executions"
],
"timeout": 300
}
}部署时,添加变量并确保公开railway中的8080端口。
- 在客户端使用超级网关(SSE到stdio网桥):
如果您的MCP客户端希望启动通过stdio(标准输入/输出)进行通信的本地命令,您可以使用 *另一个* 客户端计算机上本地的超级网关实例,用于将远程SSE连接桥接回stdio。
示例 mcp.json 或类似的客户端配置:
{
"mcpServers": {
"n8n-remote-sse": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse", "http://:
", // Replace with your actual server URL
"--outputTransport", "stdio",
"--logLevel", "info" // Optional: for debugging Supergateway on the client
],
"env": {
// Any environment variables Supergateway client might need, usually none for this mode
},
"disabled": false
}
}
}在此客户端超级网关设置中:
- 您的AI代理的MCP客户端正在运行 npx -y supergateway --sse ... 作为他的命令。 - 此本地超级网关连接到您的远程 n8n-mcp-server的SSE端点。 - 然后,它通过stdio向您的AI代理提供MCP接口。
可用工具
服务器提供以下工具(通过上述建立的MCP连接访问):
使用 Webhooks
此MCP服务器支持通过n8n webhooks执行工作流。要使用此功能,请执行以下操作:
- 在n8n中创建由webhook触发的工作流。
- 在webhook节点上设置基本身份验证(可选,但建议)。
- 使用
run_webhook工具来触发工作流,只传递工作流名称。
示例(概念性客户端代码):
// Assuming 'mcp.tools.run_webhook' is available on your connected MCP client instance
const result = await mcp.tools.run_webhook({
workflowName: "hello-world", // Will call /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,通常是触发的首选。
execution_get:获取特定执行的详细信息execution_list:列出工作流的执行情况
// execution_stop 可能无法在所有n8n版本或基础服务器中实现。
自助主机(高级)
对于喜欢在Docker或Railway等平台之外运行服务器的用户,可以直接运行Node.js应用程序。这为您提供了更多的控制,但需要手动设置执行环境,如果需要SSE,还可能需要超级网关。
- 克隆存储库:
git clone https://github.com/YOUR_USERNAME/YOUR_REPONAME.git # Replace with your repository URL
cd YOUR_REPONAME- 安装依赖关系:
npm install- 构建服务器:
npm run build这将TypeScript编译为JavaScript build 目录。
- 配置环境变量:
创建一个 .env 项目根目录中的文件(您可以复制 .env.example)并填写n8n API的详细信息(N8N_API_URL, N8N_API_KEY等)和任何其他所需变量,如 PORT (如果不是8080)或 DEBUG.
- 运行stdio MCP服务器:
node build/index.js这将启动 n8n-mcp-server 通过标准输入/输出(stdio)进行通信。
- \*\*通过SSE进行曝光(可选,手动超级网关设置):
如果你需要通过SSE访问这个自托管服务器,你需要运行自己的Supergateway实例来包装上面的stdio命令。例如:
npx -y supergateway --stdio "node build/index.js" --port 8080 # Add other Supergateway flags as needed确保步骤4中配置的环境变量可供访问 node build/index.js 当Supergateway启动时。
这种方法比Docker或Railway部署更复杂,后者在容器内自动处理Supergateway集成。
鸣谢
基于此回购:https://github.com/leonardsellem/n8n-mcp-server/
许可证
麻省理工学院
