bizflycloud/bizflycloud-mcp-server
If you are the rightful owner of bizflycloud-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Bizfly Cloud MCP Server is a Model Context Protocol server implementation that connects to Bizfly Cloud to manage cloud resources using the mark3labs/mcp-go SDK.
Bizfly Cloud MCP Server
A comprehensive Model Context Protocol (MCP) server implementation that connects to Bizfly Cloud to manage cloud resources. Built using the mark3labs/mcp-go SDK.
Features
- 🔧 Complete Cloud Management: Manage servers, volumes, load balancers, databases, Kubernetes clusters, and more
- 🔒 Secure Authentication: Uses environment variables for credentials
- 🐳 Docker Support: Ready-to-use Docker image for easy deployment
- 📦 10 Services Supported: Server, Volume, Load Balancer, Kubernetes, Database, DNS, CDN, KMS, Container Registry, AutoScaling, and Alert services
- ✅ Fully Tested: Comprehensive test suite with 196+ test cases
- 🚀 MCP Protocol: Compatible with Cursor and Claude Desktop
- 🌐 Multi-Region Support: Configurable region and API endpoints
Prerequisites
Local Development
- Go 1.23 or later
- Bizfly Cloud account credentials
- Cursor or Claude Desktop installed
Docker Deployment
- Docker 20.10 or later
- Docker Compose (optional)
Setup
Option 1: Docker (Recommended)
-
Clone the repository:
git clone https://github.com/your-username/bizflycloud-mcp-server.git cd bizflycloud-mcp-server -
Build the Docker image:
docker build -t bizfly-mcp-server:latest . -
Run the container:
docker run -it --rm \ -e BIZFLY_USERNAME=your_username \ -e BIZFLY_PASSWORD=your_password \ -e BIZFLY_REGION=HaNoi \ bizfly-mcp-server:latest -
Using Docker Compose:
Create a
.envfile:BIZFLY_USERNAME=your_username BIZFLY_PASSWORD=your_password BIZFLY_REGION=HaNoi BIZFLY_API_URL=https://manage.bizflycloud.vnRun with docker-compose:
docker-compose up
Option 2: Local Development
-
Clone the repository:
git clone https://github.com/your-username/bizflycloud-mcp-server.git cd bizflycloud-mcp-server -
Set up environment variables:
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 -
Install dependencies:
go mod download -
Build the server:
go build -o bizfly-mcp-server
Running the Server
For Cursor/Claude Desktop Integration
-
Build the server:
go build -o bizfly-mcp-server -
Configure your MCP client (Cursor or Claude Desktop) by adding the following to the configuration:
For Cursor:
{
"mcpServers": {
"bizfly": {
"command": "/absolute/path/to/bizfly-mcp-server",
"env": {
"BIZFLY_USERNAME": "your_username",
"BIZFLY_PASSWORD": "your_password",
"BIZFLY_REGION": "HaNoi"
}
}
}
}
For 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"
}
}
}
}
Available Tools
The server provides comprehensive MCP tools for managing all Bizfly Cloud services. All tool names are prefixed with bizflycloud_ for consistency.
🖥️ Server Management (bizflycloud_*)
bizflycloud_list_servers- List all Bizfly Cloud serversbizflycloud_get_server- Get detailed information about a serverbizflycloud_start_server- Start a stopped serverbizflycloud_stop_server- Stop a running serverbizflycloud_reboot_server- Soft reboot a serverbizflycloud_hard_reboot_server- Hard reboot a serverbizflycloud_delete_server- Delete a serverbizflycloud_resize_server- Resize a server to a different flavorbizflycloud_list_flavors- List available server flavors
💾 Volume Management (bizflycloud_*)
bizflycloud_list_volumes- List all volumesbizflycloud_get_volume- Get detailed information about a volumebizflycloud_create_volume- Create a new volumebizflycloud_delete_volume- Delete a volumebizflycloud_resize_volume- Resize a volumebizflycloud_attach_volume- Attach a volume to a serverbizflycloud_detach_volume- Detach a volume from a serverbizflycloud_list_snapshots- List all volume snapshotsbizflycloud_create_snapshot- Create a volume snapshotbizflycloud_delete_snapshot- Delete a volume snapshot
⚖️ Load Balancer Management (bizflycloud_*)
bizflycloud_list_loadbalancers- List all load balancersbizflycloud_get_loadbalancer- Get detailed information about a load balancerbizflycloud_create_loadbalancer- Create a new load balancerbizflycloud_update_loadbalancer- Update load balancer propertiesbizflycloud_delete_loadbalancer- Delete a load balancer
☸️ Kubernetes Management (bizflycloud_*)
bizflycloud_list_kubernetes_clusters- List all Kubernetes clustersbizflycloud_get_kubernetes_cluster- Get detailed information about a clusterbizflycloud_create_kubernetes_cluster- Create a new Kubernetes clusterbizflycloud_delete_kubernetes_cluster- Delete a Kubernetes clusterbizflycloud_list_kubernetes_nodes- List nodes in a cluster/poolbizflycloud_update_kubernetes_pool- Update worker pool configurationbizflycloud_resize_kubernetes_pool- Resize a worker poolbizflycloud_delete_kubernetes_pool- Delete a worker pool
🗄️ Database Management (bizflycloud_*)
bizflycloud_list_databases- List all database instancesbizflycloud_list_datastores- List available database engines and versionsbizflycloud_get_database- Get detailed information about a databasebizflycloud_create_database- Create a new database instancebizflycloud_delete_database- Delete a database instancebizflycloud_list_database_backups- List backups for a database instancebizflycloud_create_database_backup- Create a backup for a database instance
🌐 DNS Management (bizflycloud_*)
bizflycloud_list_dns_zones- List all DNS zonesbizflycloud_get_dns_zone- Get detailed information about a DNS zonebizflycloud_create_dns_zone- Create a new DNS zonebizflycloud_delete_dns_zone- Delete a DNS zonebizflycloud_create_dns_record- Create a DNS record (A, AAAA, CNAME, MX, SRV, TXT, NS, PTR)bizflycloud_get_dns_record- Get detailed information about a DNS recordbizflycloud_delete_dns_record- Delete a DNS record
🚀 CDN Management (bizflycloud_*)
bizflycloud_list_cdn_domains- List all CDN domainsbizflycloud_get_cdn_domain- Get detailed information about a CDN domainbizflycloud_create_cdn_domain- Create a new CDN domainbizflycloud_update_cdn_domain- Update CDN domain configurationbizflycloud_delete_cdn_domain- Delete a CDN domainbizflycloud_delete_cdn_cache- Delete CDN cache (all or specific files)
🔐 KMS (Key Management Service) (bizflycloud_*)
bizflycloud_list_kms_certificates- List all KMS certificatesbizflycloud_get_kms_certificate- Get detailed information about a certificatebizflycloud_create_kms_certificate- Create a new KMS certificate containerbizflycloud_delete_kms_certificate- Delete a KMS certificate
📦 Container Registry Management (bizflycloud_*)
bizflycloud_list_container_registries- List all container registries/repositoriesbizflycloud_create_container_registry- Create a new repositorybizflycloud_update_container_registry- Update repository settings (e.g., public/private)bizflycloud_delete_container_registry- Delete a repositorybizflycloud_list_container_registry_tags- List tags in a repositorybizflycloud_get_container_registry_tag- Get detailed information about a tagbizflycloud_delete_container_registry_tag- Delete a tag
📈 AutoScaling Management (bizflycloud_*)
bizflycloud_list_autoscaling_groups- List all auto scaling groupsbizflycloud_get_autoscaling_group- Get detailed information about an auto scaling groupbizflycloud_create_autoscaling_group- Create a new auto scaling groupbizflycloud_delete_autoscaling_group- Delete an auto scaling group
🚨 Alert/CloudWatcher Management (bizflycloud_*)
bizflycloud_list_alarms- List all alarmsbizflycloud_get_alarm- Get detailed information about an alarmbizflycloud_list_receivers- List all notification receiversbizflycloud_get_receiver- Get detailed information about a receiver
Docker Configuration
Using Docker Image with Cursor/Claude Desktop
For 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"
}
}
}
}
For 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"
}
}
}
}
Example Usage
You can interact with the server through natural language queries in Cursor or Claude Desktop:
Server Management
- "Show me all my Bizfly Cloud servers"
- "Start server server-123"
- "Reboot the server named production-web"
- "List available server flavors"
Volume Management
- "List all volumes in my Bizfly Cloud account"
- "Create a 100GB volume named data-storage"
- "Attach volume vol-123 to server server-456"
- "Show me all snapshots"
Load Balancer
- "List all load balancers"
- "Create a new load balancer for my web servers"
Kubernetes
- "List all Kubernetes clusters"
- "Show me the nodes in cluster cluster-123"
- "Resize the worker pool to 5 nodes"
Database
- "Show me all databases"
- "Create a MySQL 8.0 database"
- "List backups for database db-123"
DNS
- "List all DNS zones"
- "Create an A record for www.example.com pointing to 1.2.3.4"
- "Show me all records in zone example.com"
CDN
- "List all CDN domains"
- "Create a CDN domain for example.com"
- "Clear CDN cache for domain cdn-123"
Container Registry
- "List all container repositories"
- "Create a public repository named my-app"
- "Show me all tags in repository my-app"
AutoScaling & Alerts
- "List all auto scaling groups"
- "Show me all alarms"
- "List notification receivers"
MCP Implementation Details
This server uses the mark3labs/mcp-go SDK to implement the Model Context Protocol:
- Standard I/O Transport: Uses stdin/stdout for communication with MCP clients
- Tool Definitions: Clear tool descriptions and parameters
- Error Handling: Proper error reporting in MCP format
- Text Formatting: Human-readable output for resource listings
Environment Variables
The server uses environment variables for configuration:
Required Variables
BIZFLY_USERNAME: Your Bizfly Cloud usernameBIZFLY_PASSWORD: Your Bizfly Cloud password
Optional Variables
BIZFLY_REGION: Region name (defaults to "HaNoi")- Available regions:
HaNoi,HoChiMinh, etc. BIZFLY_API_URL: API endpoint URL (defaults to "https://manage.bizflycloud.vn")
Security Best Practices
⚠️ Important: Keep your credentials secure and never commit them to version control.
-
For Docker: Use
.envfiles or Docker secrets# .env file (add to .gitignore) BIZFLY_USERNAME=your_username BIZFLY_PASSWORD=your_password -
For Local Development: Use environment variables or a
.envfile loaderexport BIZFLY_USERNAME=your_username export BIZFLY_PASSWORD=your_password -
For Production: Consider using:
- Docker secrets
- Kubernetes secrets
- HashiCorp Vault
- AWS Secrets Manager / Azure Key Vault / GCP Secret Manager
Testing
The project includes comprehensive test coverage with 196+ test cases:
# 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 ./...
See for detailed test coverage information.
Docker Commands
Build the Image
docker build -t bizfly-mcp-server:latest .
Run Container
docker run -it --rm \
-e BIZFLY_USERNAME=your_username \
-e BIZFLY_PASSWORD=your_password \
-e BIZFLY_REGION=HaNoi \
bizfly-mcp-server:latest
Build for Specific Platform
# 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 .
Using 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 Features
- Standard I/O Transport: Uses stdin/stdout for seamless integration with Cursor/Claude Desktop
- Standardized Response Format: All responses follow the MCP format with context, type, data, and root fields
- Resource Organization: Resources are organized under root paths
- Type Safety: Strong typing for all resources
- Error Handling: Standardized error responses in MCP format
- Comprehensive Tool Coverage: 80+ tools covering 10 Bizfly Cloud services
- Security: Non-root user in Docker container, secure credential handling
Development
Project Structure
.
├── 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
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new features
- Ensure all tests pass:
go test ./... - Submit a pull request
License
[Add your license here]
Support
For issues, questions, or contributions, please open an issue on GitHub.