MCP服务器统一部署
MCP(模型上下文协议)服务器的统一部署和管理工具。该项目将以各种形式(uvx、npx等)部署的MCP服务器转换为标准化的SSE(服务器发送事件)部署,便于不同工具的统一调用。
目录
- - - 使用预构建映像进行生产部署 -
中文导航
- 特性 - 前提条件 - 安装 - 配置 - 服务器类型 - 环境变量 - 使用方法 - 基本命令 - 示例 - 客户端配置 - 目录结构 - - 贡献 - 许可证
特性
- 统一管理:从单个界面管理多个MCP服务器
- SSE标准化:将各种MCP服务器实现转换为SSE协议
- 交叉平台的:适用于Windows、macOS和Linux
- 灵活的配置:轻松配置不同的服务器类型和环境
MCP服务器统一部署
特性
- 统一管理:从单个界面管理多个MCP服务器
- SSE标准化:将各种MCP服务器实现转换为SSE协议
- 交叉平台的:适用于Windows、macOS和Linux
- 灵活的配置:轻松配置不同的服务器类型和环境
- 流程管理:启动、停止、重新启动和检查MCP服务器的状态
- Docker支持:全面的Docker部署和管理选项
- GitHub工作流集成:用于自动化测试和部署的CI/CD管道
先决条件
- Python 3.12+
- Git(用于源代码类型的服务器)
- Node.js和npm(用于基于Node.js的服务器)
- uv(用于依赖性管理)
- pipx(用于安装
mcp-proxy,建议mcp-proxy通过以下方式安装pipx).
- uvx(用于基于uvx的服务器)
- Docker和Docker Compose(可选,用于容器化部署)
安装
- 克隆此存储库:
git clone https://github.com/BigUncle/MCP-Server-Unified-Deployment.git
cd MCP-Server-Unified-Deployment- 使用uv设置虚拟环境并安装依赖项:
# Install uv if you don't have it
pip install uv
# Create a virtual environment
uv venv --python=3.12
# install from requirements.txt
uv pip install -r requirements.txt
# OR install dependencies with uv
# uv pip install -e .
# Activate the virtual environment (Windows)
.venv\Scripts\activate
# OR Activate the virtual environment (Linux/MacOS)
# source .venv/bin/activate或者,您可以使用我们的设置脚本:
python scripts/setup_env.py- 使用pipx安装mcp代理(推荐):
# Install pipx if you don't have it
pip install pipx
pipx ensurepath
# Install mcp-proxy
pipx install mcp-proxy- 创建配置文件:
cp config/mcp_servers.example.json config/mcp_servers.json- 编辑配置文件以符合您的要求。
配置
配置文件(config/mcp_servers.json)包含您要管理的所有MCP服务器的设置。每个服务器条目包括:
{
"name": "server-name", // Unique name for the server
"enabled": true, // Whether the server is enabled
"type": "uvx", // Server type (uvx, node, source_code, etc.)
"sse_host": "localhost", // Host for SSE endpoint
"sse_port": 23001, // Port for SSE endpoint
"allow_origin": "*", // CORS setting for SSE endpoint
"install_commands": [ // Commands to install the server
"uvx -v mcp-server-fetch"
],
"sse_start_command": "mcp-proxy {start_command} --sse-host={sse_host} --sse-port={sse_port} --allow-origin='{allow_origin}' ", // Command template for SSE mode
"start_command": "uvx mcp-server-fetch", // Original start command
"env": {}, // Environment variables for the server
"working_directory": "", // Optional working directory for running commands
"repo_url": "", // For source_code type, git repository URL
"branch": "main" // For source_code type, git branch to use
}服务器类型
- uvx:使用uvx部署的服务器
- 节点:基于Node.js的服务器
- 源代码:需要从源代码构建的服务器
- 码头工人:在Docker容器中运行的服务器
环境变量
您可以在中为每个服务器指定环境变量 env 章节:
"env": {
"NODE_ENV": "production",
"DEBUG": "true"
}用法
基本命令
# Start all enabled servers
python scripts/manage_mcp.py start
# Start a specific server
python scripts/manage_mcp.py start
# Stop all servers
python scripts/manage_mcp.py stop
# Stop a specific server
python scripts/manage_mcp.py stop
# Restart a specific server
python scripts/manage_mcp.py restart
# Check status of all servers
python scripts/manage_mcp.py status示例
要启动获取服务器,请执行以下操作:
python scripts/manage_mcp.py start fetch集成配置生成器脚本
这 integrate_config_generator.py 脚本用于基于以下内容生成特定于客户端的配置文件 mcp_servers.json 文件。上面写着 mcp_servers.json 文件,并在中生成特定于客户端的配置文件 config/client_configs/ 目录。
用法
python scripts/integrate_config_generator.py此脚本将为中找到的每个客户端创建配置文件 mcp_servers.json 将它们归档并放置在 config/client_configs/ 目录。生成的配置文件名为 mcp__*.json,在哪里 `` 是客户的名称。然后,您可以使用这些配置文件来配置您的客户端。
目录结构
.
├── config
│ ├── host_info.json # Host info cache (auto-generated, used for network/config assist)
│ ├── mcp_servers.example.json # Example MCP server configuration
│ ├── mcp_servers.json # Main MCP server configuration
│ └── client_configs/ # Client configuration files generated by integrate_config_generator.py
| └── mcp__*.json # Client configuration files
├── docker
│ ├── docker-compose.yml # Production Docker Compose configuration
│ ├── Dockerfile # Production Docker image build file
│ ├── entrypoint.sh # Container entrypoint script
│ └── README.md # Docker-related documentation
├── docker-dev
│ ├── docker-compose.yml # Development Docker Compose configuration
│ ├── Dockerfile # Development Docker image build file
│ └── .devcontainer # Devcontainer directory
│ └─ devcontainer.json # VS Code devcontainer configuration
├── docs/ # Project documentation
├── logs/ # Server runtime logs
├── mcp-data/ # Runtime data storage (if needed)
├── mcp-servers/ # MCP server source code (if any)
├── node-modules/ # Node.js dependencies (if needed)
├── npm-global # Global npm dependencies and cache
│ ├── bin
│ ├── _cacache
│ ├── lib
│ ├── _logs
│ ├── _npx
├── pids/ # Process ID files
├── scripts
│ ├── mcp_manager # Management modules (commands, config, process utils, etc.)
│ │ ├── commands.py # Command modules
│ │ ├── config.py # Configuration modules
│ │ └── process_utils.py # Process utilities
│ ├── container_startup.py # Container startup helper script
│ ├── detect_host_ip.py # Host IP detection script
│ ├── integrate_config_generator.py # Client config generator script
│ ├── manage_mcp.py # Main MCP management script
│ └── setup_env.py # Environment setup script
├── uv-cache/ # Python dependency cache (auto-generated by uv)
├── README.md # Project documentation
└── requirements.txt # Python dependency list笔记:
config/client_configs/:存储由生成的特定于客户端的配置文件integrate_config_generator.py.config/host_info.json:自动生成的主机信息缓存,用于网络配置和自动化。docker/和docker-dev/:生产和开发Docker配置,便于环境切换。mcp-servers/:如果需要,请将您的自定义或扩展MCP服务器源代码放在此处。scripts/:所有管理、自动化和配置脚本。主要切入点是manage_mcp.py.- 其他目录,如
logs/,pids/,mcp-data/,uv-cache/用于运行时或缓存数据,不需要手动维护。
Docker支持
该项目为开发和部署环境提供了全面的Docker支持。
Docker部署选项
- 开发环境:
- 预装了所有必要工具的开发容器 - 通过devcontainer配置集成Visual Studio代码
- 生产部署:
- 使用Docker Compose进行多容器设置 - 具有适当隔离的单个服务器容器 - 数据和配置的持久卷管理
使用Docker进行开发
要启动开发环境,请执行以下操作:
# Start the development container
docker compose -f docker-dev/docker-compose.yml up -d
# Connect to the container
docker exec -it mcp-dev zsh使用预构建映像进行生产部署
要在生产环境中部署,您可以使用Docker Hub中的预构建映像。
docker pull biguncle2018/mcp-server-unified:latest
# Start the production container
docker run -d --name mcp-server-unified biguncle2018/mcp-server-unified:latest
# View logs
docker logs -f mcp-server-unified
# Connect to the container
docker exec -it mcp-server-unified zsh使用Docker Compose进行生产部署
要在生产环境中部署:
配置
复制示例配置文件:
cp config/mcp_servers.example.json config/mcp_servers.json或者根据需要编辑配置文件。
修改Dockerfile
如有必要,修改Dockerfile或 docker-compose.yml 在 docker/ 目录以满足您的需求。 例如,您可能需要调整 ENTRYPOINT 或 REAL_HOST_IP 变量或 TIME ZONE 变量。
构建和启动容器
# Build and start all containers
docker compose -f docker/docker-compose.yml up -d
# View logs
docker compose -f docker/docker-compose.yml logs -f
贡献
欢迎投稿!请看 贡献.md 了解详情。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
MCP服务器统一部署工具
这是一个用于统一部署和管理MCP(Model Context Protocol)服务器的工具。该项目将以不同形式(uvx、npx等)部署的MCP服务器统一转换为标准化的SSE(Server-Sent Events)部署方式,方便不同工具的统一调用。
特性
- 统一管理:通过单一界面管理多个MCP服务器
- SSE标准化:将各种MCP服务器实现转换为SSE协议
- 跨平台:支持Windows、macOS和Linux
- 灵活配置:轻松配置不同类型和环境的服务器
- 进程管理:启动、停止、重启和检查MCP服务器状态
- Docker支持:全面的Docker部署和管理选项
- GitHub工作流集成:自动化测试和部署的CI/CD管道
前提条件
- Python 3.12+
- Git(用于源代码类型服务器)
- Node.js和npm(用于基于Node.js的服务器)
- uv(用于依赖管理)
- pipx(用于安装mcp-proxy)
- uvx(用于基于uvx的服务器)
- Docker和Docker Compose(可选,用于容器化部署)
安装
- 克隆此仓库:
git clone https://github.com/BigUncle/MCP-Server-Unified-Deployment.git
cd MCP-Server-Unified-Deployment- 使用uv设置虚拟环境并安装所需的Python依赖:
# 如果没有安装uv,先安装uv
pip install uv
# 创建虚拟环境
uv venv --python=3.12
# 使用uv安装依赖
uv pip install -r requirements.txt
# 激活虚拟环境(Windows)
.venv\Scripts\activate
# 或激活虚拟环境(Linux/MacOS)
# source .venv/bin/activate或者,您可以使用我们的设置脚本:
python scripts/setup_env.py- 使用pipx安装mcp-proxy(推荐):
# 如果没有安装pipx,先安装pipx
pip install pipx
pipx ensurepath
# 安装mcp-proxy
pipx install mcp-proxy- 创建配置文件:
cp config/mcp_servers.example.json config/mcp_servers.json- 编辑配置文件以满足您的需求。
配置
配置文件(config/mcp_servers.json)包含您想要管理的所有MCP服务器的设置。每个服务器条目包括:
{
"name": "server-name", // 服务器的唯一名称
"enabled": true, // 服务器是否启用
"type": "uvx", // 服务器类型(uvx、node、source_code等)
"sse_host": "localhost", // SSE端点的主机
"sse_port": 23001, // SSE端点的端口
"allow_origin": "*", // SSE端点的CORS设置
"install_commands": [ // 安装服务器的命令
"uvx -v mcp-server-fetch"
],
"sse_start_command": "mcp-proxy {start_command} --sse-host={sse_host} --sse-port={sse_port} --allow-origin='{allow_origin}' ", // SSE模式的命令模板
"start_command": "uvx mcp-server-fetch", // 原始启动命令
"env": {}, // 服务器的环境变量
"working_directory": "", // 运行命令的可选工作目录
"repo_url": "", // 对于source_code类型,git仓库URL
"branch": "main" // 对于source_code类型,使用的git分支
}服务器类型
- uvx:使用uvx部署的服务器
- 节点:基于Node.js的服务器
- 源代码:需要从源代码构建的服务器
- 码头工人:在Docker容器中运行的服务器
环境变量
您可以在env部分为每个服务器指定环境变量:
"env": {
"NODE_ENV": "production",
"DEBUG": "true"
}使用方法
基本命令
# 启动所有已启用的服务器
python scripts/manage_mcp.py start
# 启动特定服务器
python scripts/manage_mcp.py start
# 停止所有服务器
python scripts/manage_mcp.py stop
# 停止特定服务器
python scripts/manage_mcp.py stop
# 重启特定服务器
python scripts/manage_mcp.py restart
# 检查所有服务器的状态
python scripts/manage_mcp.py status示例
启动fetch服务器:
python scripts/manage_mcp.py start fetch目录结构
.
├── config/ # 配置文件
│ ├── host_info.json # 主机信息缓存文件(自动生成/用于辅助配置)
│ ├── mcp_servers.example.json # MCP服务器配置示例
│ ├── mcp_servers.json # MCP服务器主配置文件
| └── client_configs/ # 由integrate_config_generator.py生成的客户端配置
| └── mcp__*.json # 客户端配置文件
├── docker
│ ├── docker-compose.yml # 生产环境 Docker Compose 配置
│ ├── Dockerfile # 生产环境 Docker 镜像构建文件
│ ├── entrypoint.sh # 容器入口脚本
│ └── README.md # Docker 相关说明文档
├── docker-dev
│ ├── docker-compose.yml # 开发环境 Docker Compose 配置
│ ├── Dockerfile # 开发环境 Docker 镜像构建文件
│ └── .devcontainer # 容器目录
│ └─ devcontainer.json # devcontainer.json
├── docs/ # 项目文档目录
├── logs/ # 服务器运行日志目录
├── mcp-data/ # 运行时数据存储目录(如有需要)
├── mcp-servers/ # MCP服务器源代码目录(如有需要)
├── node-modules/ # Node.js 依赖目录(如有需要)
├── npm-global # 全局 npm 依赖及缓存目录
│ ├── bin
│ ├── _cacache
│ ├── lib
│ ├── _logs
│ ├── _npx
├── pids/ # 进程ID文件目录
├── scripts
│ ├── mcp_manager/ # 管理模块(如命令、配置、进程工具等)
│ │ ├── commands.py #
│ │ ├── config.py # 配置管理
│ │ └── process_utils.py # 进程工具
│ ├── container_startup.py # 容器启动辅助脚本
│ ├── detect_host_ip.py # 主机IP检测脚本
│ ├── integrate_config_generator.py # 客户端配置生成脚本
│ ├── manage_mcp.py # MCP统一管理主脚本
│ └── setup_env.py # 环境初始化脚本
├── uv-cache/ # Python依赖缓存目录(uv工具自动生成)
├── README.md # 项目说明文档
└── requirements.txt # Python依赖清单Docker支持
本项目为开发和部署环境提供全面的Docker支持。
Docker部署选项
- 开发环境:
- 预装所有必要工具的开发容器 - 通过devcontainer配置集成Visual Studio Code
- 生产部署:
- 使用Docker Compose的多容器设置 - 具有适当隔离的单独服务器容器 - 用于数据和配置的持久卷管理
使用Docker进行开发
启动开发环境:
# 启动开发容器
docker compose -f docker-dev/docker-compose.yml up -d
# 连接到容器
docker exec -it mcp-dev zsh拉取项目镜像生产部署
见 镜像部署推荐流程
使用Docker compose 进行生产部署
在生产环境中部署:
配置
cp config/mcp_servers.example.json config/mcp_servers.json或者根据需求编辑配置文件。
修改Dockerfile
有需要时,修改docker/目录中的Dockerfile或docker-compose.yml以适应您的需求。 比如,您可能需要调整ENTRYPOINT或REAL_HOST_IP变量或TIME ZONE变量。
构建和启动容器
# 构建并启动所有容器
docker compose -f docker/docker-compose.yml up -d
# 查看日志
docker compose -f docker/docker-compose.yml logs -f贡献
欢迎贡献!详情请参阅贡献.md。
许可证
本项目采用MIT许可证 - 详情请参阅许可证文件。
