MCP Fly Deployer について
MCP Fly Deployerは、stdioベースのMCPサーバーをFly.ioにデプロイするための設定を生成するMCPサーバーです。Dockerfile、fly.toml、デプロイスクリプトを作成し、supergatewayでstdioサーバーをSSEまたはWebSocket経由で公開します。
主な機能
- 01Fly.ioのデプロイ設定生成
- 02実行環境に応じたDockerfile作成
- 03fly.toml設定のカスタマイズ
- 04Python、Node.js、Go、カスタムバイナリに対応
- 05環境変数、シークレット、リージョンの設定
活用シーン
- 01stdio MCPサーバーのデプロイ計画作成
- 02複数の実行環境向けDockerfile作成
- 03Fly.ioのリージョンやアプリ設定
- 04stdioサーバーをSSEまたはWebSocketサービスに変換
MCP 対応
対象サーバーのコマンド、実行環境、デプロイパラメーターをクライアントから受け取り、設定を生成するMCPサーバーです。デフォルトではSSEトランスポートを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Fly Deployer
Fly.io に MCP サーバーをデプロイするための、専用の構成ジェネレーターです。このツールは、stdio ベースの MCP サーバー向けに、Dockerfile、fly.toml の設定、デプロイスクリプトの作成を自動化します。
このプロジェクトは supergateway を統合し、MCP stdio サーバーが SSE(Server-Sent Events)または WebSockets を介して通信できるようにすることで、Fly.io のインフラストラクチャへのシームレスなデプロイを実現します。
機能
- 🚀 Fly.io のデプロイ設定を自動生成
- 🐳 ランタイムに基づいて Dockerfile を動的に生成
- ⚙️ カスタマイズ可能な
fly.toml設定 - 🔧 複数のランタイムをサポート:
- Python
- Node.js
- Go
- カスタムバイナリ
- 🔑 環境変数とシークレットの管理
- 🌐 リージョンとデプロイオプションを設定可能
仕組み
MCP Fly Deployer は supergateway を使用して、以下を行います:
- stdio ベースの MCP サーバーを SSE または WebSocket サービスに変換
- リモートアクセスとデバッグ機能を有効化
- JSON-RPC のバージョン管理を自動化
- パッケージのメタデータの送信を処理
基盤となるゲートウェイ技術の詳細については、supergateway のドキュメントを参照してください。
前提条件
- Python 3.13 以降
- pip(Python パッケージマネージャー)
- Fly.io CLI のインストールと設定
- Node.js と npm(supergateway の機能に必要)
インストール
- リポジトリをクローンします:
git clone https://github.com/yourusername/mcp-fly-deployer.git
cd mcp-fly-deployer
- 仮想環境を作成して有効化します:
python -m venv .venv
source .venv/bin/activate # On Unix/macOS
# OR
.venv\Scripts\activate # On Windows
- 依存関係をインストールします:
uv sync
使い方
- MCP サーバーを起動します:
python mcp_server_generator.py
サーバーはデフォルトでポート 8000 で起動し、SSE(Server-Sent Events)トランスポートを使用します。
- 以下のパラメーターを指定して、デプロイ計画の生成リクエストを送信します:
{
"server_command": "node", # Command to run the target stdio server
"server_args": ["index.js"], # Arguments for the server command
"runtime": "node", # Runtime ('python', 'node', 'go', 'binary')
"runtime_version": "20", # Specific runtime version
"dependencies": [], # List of dependencies
"requirements_file_content": None, # Content of requirements.txt for Python
"files_to_create": [], # Files to create in the image
"required_env_vars": [], # Required environment variables
"target_port": 8000, # Port the container will listen on (default: 8000)
"app_name": "mcp-server-app", # Suggested Fly.io app name
"primary_region": "ord" # Suggested Fly.io primary region
}
設定オプション
サポートされるランタイム
python:バージョンを指定できる Python ランタイムnode:バージョンを指定できる Node.js ランタイムgo:Go ランタイムbinary:カスタムバイナリのデプロイ
デプロイリージョン
Fly.io のリージョンは、primary_region パラメーターで指定できます。一般的なオプション:
ord:シカゴiad:バージニア州北部dfw:ダラスlax:ロサンゼルスbom:ムンバイ
例
Node.js MCP サーバーのデプロイ計画を生成する簡単な例を示します:
{
"server_command": "node",
"server_args": ["index.js"],
"runtime": "node",
"runtime_version": "20",
"dependencies": ["@modelcontextprotocol/server"],
"target_port": 8080,
"app_name": "my-mcp-server",
"primary_region": "ord"
}
開発
プロジェクトに貢献するには:
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- プルリクエストを送信します
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
貢献
皆さまからの貢献を歓迎します!お気軽にプルリクエストを送信してください。
サポート
問題が発生した場合や質問がある場合は、イシューを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。