通过Docker在本地运行自托管的N8N集成MCP UVX服务器——无需任何云依赖即可在您的N8N工作流中使用UVX驱动的MCP服务器。
一个Docker化的设置,将Astral UV/UVX MCP服务器直接集成到您的本地N8N实例中——无需外部云服务。
此仓库提供了所有您需要的内容,以便使用Docker在N8N工作流中自托管MCP UVX服务器。它将Astral UV/UVX CLI工具安装到N8N容器中,公开用于MCP资产的数据目录,并配置了一个Docker Compose服务以实现无缝本地自动化。
uv和uvx,用于MCP服务器管理。克隆此仓库
git clone https://github.com/The-AI-Workshops/n8n-uvx.git
cd n8n-
复制**.env.example到.env**并编辑它(根据需要更新变量——参见环境变量)。
构建Docker镜像:
docker build -t n8n-uvx .
使用Docker Compose启动:
docker-compose up -d
**替代方案使用**docker run(无Compose):
docker run -d \
--name n8n-uvx \
-p ${N8N_PORT}:5678 \
-e N8N_BASIC_AUTH_ACTIVE=${N8N_BASIC_AUTH_ACTIVE} \
-e N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER} \
-e N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD} \
-e N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=${N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE} \
-v ${N8N_DATA_DIR}:/home/node/.n8n \
-v ${MCP_DATA_DIR}:/data/mcp \
n8n-uvx
Dockerfile扩展了官方N8N镜像,并包括安装系统依赖项和Astral UV/UVX的步骤:
FROM n8nio/n8n:latest
USER root
# 安装必要的系统包
RUN apk add --no-cache \
curl \
git \
build-base \
chromium \
bash \
tar \
xz \
util-linux \
coreutils
# 安装Astral uv/uvx并使其全局可用
RUN curl -Ls https://astral.sh/uv/install.sh | bash \
&& cp /root/.local/bin/uv /usr/local/bin/uv \
&& cp /root/.local/bin/uvx /usr/local/bin/uvx \
&& chmod a+rx /usr/local/bin/uv /usr/local/bin/uvx \
&& mkdir -p /data/mcp \
&& chown -R node:node /data/mcp
ENV PATH="/usr/local/bin:/root/.local/bin:${PATH}"
USER node
在项目根目录创建一个.env文件,包含以下值:
# N8N设置
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=admin123
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
N8N_PORT=5678
# 数据卷路径
N8N_DATA_DIR=./data
MCP_DATA_DIR=./mcp
在docker-compose.yml中使用明确的变量映射:
version: '3.8'
services:
n8n:
build: .
ports:
- "${N8N_PORT}:5678"
environment:
# N8N核心
N8N_BASIC_AUTH_ACTIVE: "${N8N_BASIC_AUTH_ACTIVE}"
N8N_BASIC_AUTH_USER: "${N8N_BASIC_AUTH_USER}"
N8N_BASIC_AUTH_PASSWORD: "${N8N_BASIC_AUTH_PASSWORD}"
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE: "${N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE}"
# 卷路径(为了清晰)
N8N_DATA_DIR: "${N8N_DATA_DIR}"
MCP_DATA_DIR: "${MCP_DATA_DIR}"
volumes:
- "${N8N_DATA_DIR}:/home/node/.n8n"
- "${MCP_DATA_DIR}:/data/mcp"
N8N_PORT。./data和./mcp存在且具有正确的权限。admin123密码为安全的秘密。http://localhost:${N8N_PORT}并登录。git checkout -b feature/xyz)。git commit -m "添加功能")。本项目根据MIT许可证授权。