返回市场
尼八尼紫外线

尼八尼紫外线

作者:The-AI-Workshops9 星标更新:2025-05-22

项目介绍

仓库描述

通过Docker在本地运行自托管的N8N集成MCP UVX服务器——无需任何云依赖即可在您的N8N工作流中使用UVX驱动的MCP服务器。


n8n-uvx

一个Docker化的设置,将Astral UV/UVX MCP服务器直接集成到您的本地N8N实例中——无需外部云服务。

目录

介绍

此仓库提供了所有您需要的内容,以便使用Docker在N8N工作流中自托管MCP UVX服务器。它将Astral UV/UVX CLI工具安装到N8N容器中,公开用于MCP资产的数据目录,并配置了一个Docker Compose服务以实现无缝本地自动化。

特性

  • 🐳 Docker优先:完全容器化设置,便于移植和隔离。
  • ⚙️ Astral CLI工具:通过Astral的安装程序安装uvuvx,用于MCP服务器管理。
  • 📁 持久数据卷:分别为N8N工作流和MCP资产提供独立目录。
  • 🔒 仅本地:将所有数据和执行保留在您的机器上——适合敏感或离线环境。

前置条件

  • Docker (20.10+)
  • Docker Compose
  • 基本的本地N8N设置(v0.x或更高版本)
  • 对Docker和环境变量的基本了解

安装

  1. 克隆此仓库

    git clone https://github.com/The-AI-Workshops/n8n-uvx.git
    cd n8n-
    
  2. 复制**.env.example.env**并编辑它(根据需要更新变量——参见环境变量)。

  3. 构建Docker镜像

    docker build -t n8n-uvx .
    
  4. 使用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概述

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)

在项目根目录创建一个.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设置

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"

配置

  • 端口:如果5678端口被占用,请调整N8N_PORT
  • :确保./data./mcp存在且具有正确的权限。
  • 认证:更改默认的admin123密码为安全的秘密。

使用方法

  1. 访问http://localhost:${N8N_PORT}并登录。
  2. 如需安装MCP客户端节点:设置 > 社区节点 > n8n-nodes-mcp-client
  3. 使用N8N的执行命令节点或自定义节点创建使用uv/uvxCLI命令的工作流。

额外资源

贡献指南

  1. 分叉仓库。
  2. 创建分支(git checkout -b feature/xyz)。
  3. 提交更改(git commit -m "添加功能")。
  4. 推送到原点并打开PR。

许可证

本项目根据MIT许可证授权。