MCP Server Unified Deployment について
MCP Server Unified Deployment は、MCP サーバーを一括でデプロイ・管理するオープンソースツールです。uvx や npx などの形態で提供されるサーバーを、複数のツールから呼び出せる標準的な SSE 形式に変換します。
主な機能
- 01単一のインターフェースで複数の MCP サーバーを管理
- 02MCP サーバーの SSE プロトコルへの変換
- 03サーバーの起動、停止、再起動、状態確認
- 04Docker によるデプロイと管理のオプション
活用シーン
- 01uvx や npx ベースの複数の MCP サーバーを SSE で統一デプロイ
- 02クライアントごとの設定ファイルの生成
- 03Docker Compose を使ったプロダクション環境へのデプロイ
MCP 対応
このプロジェクトは MCP サーバーを SSE エンドポイントに変換し、MCP クライアントから統一的にアクセスできるようにします。サーバーは設定ファイルで管理されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー統合デプロイ
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のインストール用。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-proxy をインストールします(推奨)。
# 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: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 のデプロイオプション
-
開発環境:
- 必要なツールがすべて事前にインストールされた開発用コンテナー
- devcontainer 設定による Visual Studio Code との統合
-
本番環境へのデプロイ:
- 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 サーバー統合デプロイツール
これは、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: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部署选项
-
开发环境:
- 预装所有必要工具的开发容器
- 通过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
贡献
欢迎贡献!详情请参阅CONTRIBUTING.md。
许可证
本项目采用MIT许可证 - 详情请参阅LICENSE文件。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。