Bizfly Cloud MCP Server について
Bizfly Cloud MCP Serverは、MCPクライアントからBizfly Cloudのリソースを管理するためのMCPサーバーです。コンピューティング、ストレージ、ネットワークなどを扱い、リージョンとAPIエンドポイントを設定できます。
主な機能
- 01サーバー、ボリューム、ロードバランサーの管理
- 02Kubernetesクラスターとデータベースの管理
- 03DNS、CDN、コンテナレジストリの管理
- 04KMS、自動スケーリング、アラートの管理
- 05環境変数による認証情報とリージョンの設定
- 06Dockerデプロイとマルチリージョン設定
活用シーン
- 01クラウドサーバーの確認、起動、停止、サイズ変更
- 02ボリュームやスナップショットの作成と接続
- 03Kubernetesクラスターとワーカープールの管理
- 04DNSレコードの作成やCDNキャッシュの消去
MCP 対応
標準入出力でMCPクライアントと通信し、Bizfly Cloudリソースを操作するツールを公開します。READMEではCursorとClaude Desktopとの連携が示されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Bizfly Cloud MCP サーバー
Bizfly Cloud に接続してクラウドリソースを管理する、包括的な Model Context Protocol(MCP)サーバー実装です。mark3labs/mcp-go SDK を使用して構築されています。
特長
- 🔧 包括的なクラウド管理:サーバー、ボリューム、ロードバランサー、データベース、Kubernetes クラスターなどを管理できます
- 🔒 セキュアな認証:認証情報には環境変数を使用します
- 🐳 Docker 対応:簡単にデプロイできる、すぐに使える Docker イメージを提供します
- 📦 10 のサービスに対応:サーバー、ボリューム、ロードバランサー、Kubernetes、データベース、DNS、CDN、KMS、コンテナーレジストリ、自動スケーリング、アラートサービス
- ✅ 十分なテスト済み:196 件以上のテストケースを含む包括的なテストスイート
- 🚀 MCP プロトコル:Cursor および Claude Desktop と互換性があります
- 🌐 マルチリージョン対応:リージョンと API エンドポイントを設定できます
前提条件
ローカル開発
- Go 1.23 以降
- Bizfly Cloud アカウントの認証情報
- Cursor または Claude Desktop がインストールされていること
Docker でのデプロイ
- Docker 20.10 以降
- Docker Compose(任意)
セットアップ
オプション 1:Docker(推奨)
-
リポジトリをクローンします:
git clone https://github.com/your-username/bizflycloud-mcp-server.git cd bizflycloud-mcp-server -
Docker イメージをビルドします:
docker build -t bizfly-mcp-server:latest . -
コンテナーを実行します:
docker run -it --rm \ -e BIZFLY_USERNAME=your_username \ -e BIZFLY_PASSWORD=your_password \ -e BIZFLY_REGION=HaNoi \ bizfly-mcp-server:latest -
Docker Compose を使用する場合:
.envファイルを作成します:BIZFLY_USERNAME=your_username BIZFLY_PASSWORD=your_password BIZFLY_REGION=HaNoi BIZFLY_API_URL=https://manage.bizflycloud.vndocker-compose で実行します:
docker-compose up
オプション 2:ローカル開発
-
リポジトリをクローンします:
git clone https://github.com/your-username/bizflycloud-mcp-server.git cd bizflycloud-mcp-server -
環境変数を設定します:
export BIZFLY_USERNAME=your_username export BIZFLY_PASSWORD=your_password export BIZFLY_REGION=HaNoi # Optional, defaults to HaNoi export BIZFLY_API_URL=https://manage.bizflycloud.vn # Optional, defaults to https://manage.bizflycloud.vn -
依存関係をインストールします:
go mod download -
サーバーをビルドします:
go build -o bizfly-mcp-server
サーバーの実行
Cursor/Claude Desktop との連携
-
サーバーをビルドします:
go build -o bizfly-mcp-server -
次の内容を設定に追加して、MCP クライアント(Cursor または Claude Desktop)を設定します:
Cursor の場合:
{
"mcpServers": {
"bizfly": {
"command": "/absolute/path/to/bizfly-mcp-server",
"env": {
"BIZFLY_USERNAME": "your_username",
"BIZFLY_PASSWORD": "your_password",
"BIZFLY_REGION": "HaNoi"
}
}
}
}
Claude Desktop の場合(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"bizfly": {
"command": "/absolute/path/to/bizfly-mcp-server",
"env": {
"BIZFLY_USERNAME": "your_username",
"BIZFLY_PASSWORD": "your_password",
"BIZFLY_REGION": "HaNoi"
}
}
}
}
利用可能なツール
このサーバーは、Bizfly Cloud のすべてのサービスを管理するための包括的な MCP ツールを提供します。一貫性を保つため、すべてのツール名には bizflycloud_ の接頭辞が付いています。
🖥️ サーバー管理(bizflycloud_*)
bizflycloud_list_servers- すべての Bizfly Cloud サーバーを一覧表示bizflycloud_get_server- サーバーの詳細情報を取得bizflycloud_start_server- 停止中のサーバーを起動bizflycloud_stop_server- 実行中のサーバーを停止bizflycloud_reboot_server- サーバーをソフトリブートbizflycloud_hard_reboot_server- サーバーをハードリブートbizflycloud_delete_server- サーバーを削除bizflycloud_resize_server- サーバーを別のフレーバーにサイズ変更bizflycloud_list_flavors- 利用可能なサーバーフレーバーを一覧表示
💾 ボリューム管理(bizflycloud_*)
bizflycloud_list_volumes- すべてのボリュームを一覧表示bizflycloud_get_volume- ボリュームの詳細情報を取得bizflycloud_create_volume- 新しいボリュームを作成bizflycloud_delete_volume- ボリュームを削除bizflycloud_resize_volume- ボリュームのサイズを変更bizflycloud_attach_volume- ボリュームをサーバーに接続bizflycloud_detach_volume- ボリュームをサーバーから切断bizflycloud_list_snapshots- すべてのボリュームスナップショットを一覧表示bizflycloud_create_snapshot- ボリュームスナップショットを作成bizflycloud_delete_snapshot- ボリュームスナップショットを削除
⚖️ ロードバランサー管理(bizflycloud_*)
bizflycloud_list_loadbalancers- すべてのロードバランサーを一覧表示bizflycloud_get_loadbalancer- ロードバランサーの詳細情報を取得bizflycloud_create_loadbalancer- 新しいロードバランサーを作成bizflycloud_update_loadbalancer- ロードバランサーのプロパティを更新bizflycloud_delete_loadbalancer- ロードバランサーを削除
☸️ Kubernetes の管理(bizflycloud_*)
bizflycloud_list_kubernetes_clusters- Kubernetes クラスターをすべて一覧表示しますbizflycloud_get_kubernetes_cluster- クラスターの詳細情報を取得しますbizflycloud_create_kubernetes_cluster- 新しい Kubernetes クラスターを作成しますbizflycloud_delete_kubernetes_cluster- Kubernetes クラスターを削除しますbizflycloud_list_kubernetes_nodes- クラスター/プール内のノードを一覧表示しますbizflycloud_update_kubernetes_pool- ワーカープールの構成を更新しますbizflycloud_resize_kubernetes_pool- ワーカープールのサイズを変更しますbizflycloud_delete_kubernetes_pool- ワーカープールを削除します
🗄️ データベースの管理(bizflycloud_*)
bizflycloud_list_databases- データベースインスタンスをすべて一覧表示しますbizflycloud_list_datastores- 利用可能なデータベースエンジンとバージョンを一覧表示しますbizflycloud_get_database- データベースの詳細情報を取得しますbizflycloud_create_database- 新しいデータベースインスタンスを作成しますbizflycloud_delete_database- データベースインスタンスを削除しますbizflycloud_list_database_backups- データベースインスタンスのバックアップを一覧表示しますbizflycloud_create_database_backup- データベースインスタンスのバックアップを作成します
🌐 DNS の管理(bizflycloud_*)
bizflycloud_list_dns_zones- DNS ゾーンをすべて一覧表示しますbizflycloud_get_dns_zone- DNS ゾーンの詳細情報を取得しますbizflycloud_create_dns_zone- 新しい DNS ゾーンを作成しますbizflycloud_delete_dns_zone- DNS ゾーンを削除しますbizflycloud_create_dns_record- DNS レコード(A、AAAA、CNAME、MX、SRV、TXT、NS、PTR)を作成しますbizflycloud_get_dns_record- DNS レコードの詳細情報を取得しますbizflycloud_delete_dns_record- DNS レコードを削除します
🚀 CDN の管理(bizflycloud_*)
bizflycloud_list_cdn_domains- CDN ドメインをすべて一覧表示しますbizflycloud_get_cdn_domain- CDN ドメインの詳細情報を取得しますbizflycloud_create_cdn_domain- 新しい CDN ドメインを作成しますbizflycloud_update_cdn_domain- CDN ドメインの構成を更新しますbizflycloud_delete_cdn_domain- CDN ドメインを削除しますbizflycloud_delete_cdn_cache- CDN キャッシュ(すべてまたは特定のファイル)を削除します
🔐 KMS(Key Management Service)(bizflycloud_*)
bizflycloud_list_kms_certificates- KMS 証明書をすべて一覧表示しますbizflycloud_get_kms_certificate- 証明書の詳細情報を取得しますbizflycloud_create_kms_certificate- 新しい KMS 証明書コンテナーを作成しますbizflycloud_delete_kms_certificate- KMS 証明書を削除します
📦 コンテナレジストリの管理(bizflycloud_*)
bizflycloud_list_container_registries- コンテナレジストリ/リポジトリをすべて一覧表示しますbizflycloud_create_container_registry- 新しいリポジトリを作成しますbizflycloud_update_container_registry- リポジトリの設定を更新します(例:パブリック/プライベート)bizflycloud_delete_container_registry- リポジトリを削除しますbizflycloud_list_container_registry_tags- リポジトリ内のタグを一覧表示しますbizflycloud_get_container_registry_tag- タグの詳細情報を取得しますbizflycloud_delete_container_registry_tag- タグを削除します
📈 AutoScaling の管理(bizflycloud_*)
bizflycloud_list_autoscaling_groups- オートスケーリンググループをすべて一覧表示しますbizflycloud_get_autoscaling_group- オートスケーリンググループの詳細情報を取得しますbizflycloud_create_autoscaling_group- 新しいオートスケーリンググループを作成しますbizflycloud_delete_autoscaling_group- オートスケーリンググループを削除します
🚨 アラート/CloudWatcher の管理(bizflycloud_*)
bizflycloud_list_alarms- アラームをすべて一覧表示しますbizflycloud_get_alarm- アラームの詳細情報を取得しますbizflycloud_list_receivers- 通知受信先をすべて一覧表示しますbizflycloud_get_receiver- 受信先の詳細情報を取得します
Docker の構成
Cursor/Claude Desktop で Docker イメージを使用する
Cursor の場合(~/.cursor/mcp.json):
{
"mcpServers": {
"bizfly": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "BIZFLY_USERNAME",
"-e", "BIZFLY_PASSWORD",
"-e", "BIZFLY_REGION",
"bizfly-mcp-server:latest"
],
"env": {
"BIZFLY_USERNAME": "your_username",
"BIZFLY_PASSWORD": "your_password",
"BIZFLY_REGION": "HaNoi"
}
}
}
}
Claude Desktop の場合(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"bizfly": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "BIZFLY_USERNAME",
"-e", "BIZFLY_PASSWORD",
"-e", "BIZFLY_REGION",
"bizfly-mcp-server:latest"
],
"env": {
"BIZFLY_USERNAME": "your_username",
"BIZFLY_PASSWORD": "your_password",
"BIZFLY_REGION": "HaNoi"
}
}
}
}
使用例
Cursor または Claude Desktop で自然言語のクエリを使ってサーバーとやり取りできます。
サーバー管理
- 「Bizfly Cloud のすべてのサーバーを表示して」
- 「server-123 を起動して」
- 「production-web という名前のサーバーを再起動して」
- 「利用可能なサーバーフレーバーを一覧表示して」
ボリューム管理
- 「Bizfly Cloud アカウント内のすべてのボリュームを一覧表示して」
- 「data-storage という名前で 100GB のボリュームを作成して」
- 「ボリューム vol-123 をサーバー server-456 に接続して」
- 「すべてのスナップショットを表示して」
ロードバランサー
- 「すべてのロードバランサーを一覧表示して」
- 「ウェブサーバー用のロードバランサーを新規作成して」
Kubernetes
- 「すべての Kubernetes クラスターを一覧表示して」
- 「クラスター cluster-123 のノードを表示して」
- 「ワーカープールを 5 ノードにサイズ変更して」
データベース
- 「すべてのデータベースを表示して」
- 「MySQL 8.0 データベースを作成して」
- 「データベース db-123 のバックアップを一覧表示して」
DNS
- 「すべての DNS ゾーンを一覧表示して」
- 「www.example.com が 1.2.3.4 を指す A レコードを作成して」
- 「ゾーン example.com のすべてのレコードを表示して」
CDN
- 「すべての CDN ドメインを一覧表示して」
- 「example.com の CDN ドメインを作成して」
- 「ドメイン cdn-123 の CDN キャッシュをクリアして」
コンテナレジストリ
- 「すべてのコンテナリポジトリを一覧表示して」
- 「my-app という名前のパブリックリポジトリを作成して」
- 「リポジトリ my-app のすべてのタグを表示して」
オートスケーリングとアラート
- 「すべてのオートスケーリンググループを一覧表示して」
- 「すべてのアラームを表示して」
- 「通知先を一覧表示して」
MCP の実装詳細
このサーバーは、Model Context Protocol を実装するために mark3labs/mcp-go SDK を使用します。
- 標準入出力トランスポート:MCP クライアントとの通信に stdin/stdout を使用します
- ツール定義:明確なツールの説明とパラメーターを定義します
- エラー処理:MCP 形式で適切にエラーを報告します
- テキスト形式:リソース一覧を人が読みやすい形式で出力します
環境変数
サーバーは設定に環境変数を使用します。
必須変数
BIZFLY_USERNAME:Bizfly Cloud のユーザー名BIZFLY_PASSWORD:Bizfly Cloud のパスワード
オプション変数
BIZFLY_REGION:リージョン名(デフォルトは "HaNoi")- 利用可能なリージョン:
HaNoi、HoChiMinhなど BIZFLY_API_URL:API エンドポイント URL(デフォルトは "https://manage.bizflycloud.vn")
セキュリティのベストプラクティス
⚠️ 重要:認証情報を安全に保管し、バージョン管理にコミットしないでください。
-
Docker の場合:
.envファイルまたは Docker シークレットを使用します# .env file (add to .gitignore) BIZFLY_USERNAME=your_username BIZFLY_PASSWORD=your_password -
ローカル開発の場合:環境変数または
.envファイルローダーを使用しますexport BIZFLY_USERNAME=your_username export BIZFLY_PASSWORD=your_password -
本番環境の場合:次の使用を検討してください。
- Docker シークレット
- Kubernetes シークレット
- HashiCorp Vault
- AWS Secrets Manager/Azure Key Vault/GCP Secret Manager
テスト
このプロジェクトには、196 件以上のテストケースを含む包括的なテストカバレッジがあります。
# Run all tests
go test ./...
# Run tests with verbose output
go test -v ./...
# Run a specific test
go test -v ./... -run TestServerToolsRegistration
# Run tests with coverage
go test -cover ./...
テストカバレッジの詳細については、TEST_COVERAGE.md を参照してください。
Docker コマンド
イメージをビルドする
docker build -t bizfly-mcp-server:latest .
コンテナを実行する
docker run -it --rm \
-e BIZFLY_USERNAME=your_username \
-e BIZFLY_PASSWORD=your_password \
-e BIZFLY_REGION=HaNoi \
bizfly-mcp-server:latest
特定のプラットフォーム向けにビルドする
# For ARM64 (Apple Silicon)
docker build --platform linux/arm64 -t bizfly-mcp-server:arm64 .
# For AMD64
docker build --platform linux/amd64 -t bizfly-mcp-server:amd64 .
Docker Compose を使用する
# Start the container
docker-compose up
# Start in detached mode
docker-compose up -d
# Stop the container
docker-compose down
# View logs
docker-compose logs -f
MCP の機能
- 標準入出力トランスポート:Cursor/Claude Desktop とシームレスに連携するため、stdin/stdout を使用します
- 標準化されたレスポンス形式:すべてのレスポンスは、context、type、data、root フィールドを含む MCP 形式に従います
- リソースの整理:リソースはルートパスの下に整理されます
- 型安全性:すべてのリソースに強い型付けを行います
- エラー処理:MCP 形式で標準化されたエラーレスポンスを返します
- 包括的なツールカバレッジ:Bizfly Cloud の 10 サービスをカバーする 80 以上のツール
- セキュリティ:Docker コンテナ内で非 root ユーザーを使用し、認証情報を安全に扱います
開発
プロジェクト構成
.
├── main.go # Entry point
├── server_tools.go # Server management tools
├── volume_tools.go # Volume management tools
├── loadbalancer_tools.go # Load balancer tools
├── kubernetes_tools.go # Kubernetes management tools
├── database_tools.go # Database management tools
├── dns_tools.go # DNS service tools
├── cdn_tools.go # CDN service tools
├── kms_tools.go # KMS service tools
├── container_registry_tools.go # Container registry tools
├── autoscaling_tools.go # AutoScaling tools
├── alert_tools.go # Alert/CloudWatcher tools
├── *_test.go # Test files
├── test_helpers.go # Test utilities
├── Dockerfile # Docker image definition
├── docker-compose.yml # Docker Compose configuration
└── README.md # This file
貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 新機能のテストを追加します
- すべてのテストが通ることを確認します:
go test ./... - プルリクエストを送信します
ライセンス
[Add your license here]
サポート
問題や質問、貢献については、GitHubでissueを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。