n8n MCP 服务器
这个仓库包含服务器的实现 模型上下文协议(MCP) 基于FastAPI,该工具允许ChatGPT通过官方REST API管理n8n的工作流程。
功能/可能性
- SSE接口
/mcp/request用于以MCP格式进行交互。 - 支持的方法:
- list_workflows — GET /rest/workflows - create_workflow — POST /rest/workflows - update_workflow — PATCH /rest/workflows/{id} - delete_workflow — DELETE /rest/workflows/{id} - run_workflow — POST /rest/workflows/run - get_execution_status — GET /rest/executions/{id}
- 异步HTTP客户端
httpx.AsyncClient支持n8n的API密钥。 - 使用Pydantic模式对MCP请求和响应进行严格验证。
- 记录进入n8n的请求和调用日志。
要求
- Python 3.10或更高版本。
- 已启动的n8n实例,可通过HTTP访问且已启用REST API。
- 具有读取和修改工作流权限的n8n API令牌。
安装和启动
- 克隆仓库并进入项目目录:
git clone https://github.com/Peakviker/MCPn8n.git
cd MCPn8n- 创建虚拟环境并安装依赖项:
python -m venv .venv
source .venv/bin/activate
pip install fastapi uvicorn[standard] sse-starlette httpx python-dotenv- 复制配置示例并设置环境变量:
cp .env.example .env
# отредактируйте значения по необходимости可用参数:
| 变量 | 描述 | 默认值 |
|---|---|---|
N8N_URL | n8n REST API 基本 URL | http://localhost:5678/api/v1/ |
N8N_API_KEY | n8n API令牌 | 空(匿名访问) |
N8N_TIMEOUT | HTTP请求超时时间(秒) | 30.0 |
- 启动MCP服务器:
uvicorn mcp_server:app --reload --port 8080- 检查服务器是否响应:
curl http://localhost:8080/healthz
curl http://localhost:8080/mcp/discover使用MCP工具
POST /mcp/request 接受JSON格式,例如:
{
"id": "",
"method": "list_workflows",
"params": { "limit": 20 }
}通过SSE以事件形式接收响应 result 或者 error. 田野 result 含有MCP结构 json_schema 从n8n获取的数据。
工作流启动示例
curl -N \
-H "Content-Type: application/json" \
-X POST http://localhost:8080/mcp/request \
-d '{
"id": "demo-run",
"method": "run_workflow",
"params": {
"workflow_id": "123",
"payload": {
"runData": {
"HTTP Trigger": [[ { "json": { "foo": "bar" } } ]]
},
"startNodes": ["HTTP Trigger"],
"destinationNode": "Respond to Webhook"
}
}
}'为了跟踪执行情况,请使用以下方法 get_execution_status 使用n8n启动时返回的标识符。
开发
- 所有主要设置都在
mcp_server.py. - 在添加新方法时,请更新字典
METHOD_PARAM_MODELS以及客户端类别N8nClient。 - 日志记录已设置为级别
INFO. 如有需要,请通过传递值来更改级别logging.basicConfig。
许可证
如有需要,请添加LICENSE文件。
