mcpField
M
MCP Server Unified Deployment

MCP Server Unified Deployment

本地服务
github.com/BigUncle云与基础设施3978 周前更新

关于 MCP Server Unified Deployment

MCP Server Unified Deployment 是一个用于统一部署和管理 MCP 服务的开源工具。它将 uvx、npx 等不同形式的 MCP 服务转换为标准化的 SSE 部署,便于不同工具统一调用。

主要功能

  1. 01通过单一界面管理多个 MCP 服务
  2. 02将各类 MCP 服务转换为 SSE 协议
  3. 03启动、停止、重启并检查服务状态
  4. 04提供 Docker 部署与管理选项

适用场景

  1. 01将多个 uvx 或 npx 类型的 MCP 服务统一以 SSE 方式部署
  2. 02生成不同客户端所需的配置文件
  3. 03使用 Docker Compose 进行生产环境部署

MCP 相关

该项目将 MCP 服务转换为 SSE 端点,供各类 MCP 客户端统一访问,并通过配置文件管理这些服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 服务统一部署

English | 中文

用于统一部署和管理 MCP(Model Context Protocol)服务的工具。此项目可将以各种形式(uvx、npx 等)部署的 MCP 服务转换为标准化的 SSE(Server-Sent Events)部署,便于不同工具统一调用。

目录

中文导航

特性
  • 统一管理:通过单个界面管理多个 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,建议通过 pipx 安装 mcp-proxy)。

  • uvx(用于基于 uvx 的服务)

  • Docker 和 Docker Compose(可选,用于容器化部署)

安装

  1. 克隆此仓库:
git clone https://github.com/BigUncle/MCP-Server-Unified-Deployment.git
cd MCP-Server-Unified-Deployment
  1. 使用 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
  1. 使用 pipx 安装 mcp-proxy(推荐):
# Install pipx if you don't have it
pip install pipx
pipx ensurepath

# Install mcp-proxy
pipx install mcp-proxy
  1. 创建配置文件:
cp config/mcp_servers.example.json config/mcp_servers.json
  1. 编辑配置文件以满足你的需求。

配置

配置文件(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:基于 Node.js 的服务
  • source_code:需要从源代码构建的服务
  • docker:在 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 <server-name>

# Stop all servers
python scripts/manage_mcp.py stop

# Stop a specific server
python scripts/manage_mcp.py stop <server-name>

# Restart a specific server
python scripts/manage_mcp.py restart <server-name>

# Check status of all servers
python scripts/manage_mcp.py status
示例

启动 fetch 服务:

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_<client>_*.json,其中 <client> 是客户端名称。然后,您可以使用这些配置文件来配置客户端。

目录结构

.
├── 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_<client>_*.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 部署选项
  1. 开发环境:

    • 预装所有必需工具的开发容器
    • 通过 devcontainer 配置与 Visual Studio Code 集成
  2. 生产部署:

    • 使用 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

如有需要,可修改 docker/ 目录中的 Dockerfile 或 docker-compose.yml,以满足您的需求。 例如,您可能需要调整 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

贡献

欢迎贡献!详情请参阅 CONTRIBUTING.md。

许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。


MCP 服务器统一部署工具

English | 中文

这是一个用于统一部署和管理 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(可选,用于容器化部署)

安装

  1. 克隆此仓库:
git clone https://github.com/BigUncle/MCP-Server-Unified-Deployment.git
cd MCP-Server-Unified-Deployment
  1. 使用 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
  1. 使用 pipx 安装 mcp-proxy(推荐):
# 如果没有安装pipx,先安装pipx
pip install pipx
pipx ensurepath

# 安装mcp-proxy
pipx install mcp-proxy
  1. 创建配置文件:
cp config/mcp_servers.example.json config/mcp_servers.json
  1. 编辑配置文件以满足您的需求。

配置

配置文件(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:基于 Node.js 的服务器
  • source_code:需要从源代码构建的服务器
  • docker:在 Docker 容器中运行的服务器
环境变量

您可以在 env 部分为每个服务器指定环境变量:

"env": {
  "NODE_ENV": "production",
  "DEBUG": "true"
}

使用方法

基本命令
# 启动所有已启用的服务器
python scripts/manage_mcp.py start

# 启动特定服务器
python scripts/manage_mcp.py start <server-name>

# 停止所有服务器
python scripts/manage_mcp.py stop

# 停止特定服务器
python scripts/manage_mcp.py stop <server-name>

# 重启特定服务器
python scripts/manage_mcp.py restart <server-name>

# 检查所有服务器的状态
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_<client>_*.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部署选项
  1. 开发环境:

    • 预装所有必要工具的开发容器
    • 通过devcontainer配置集成Visual Studio Code
  2. 生产部署:

    • 使用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

贡献

欢迎贡献!详情请参阅CONTRIBUTING.md。

许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。