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 TEST_COVERAGE.md 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.
Recommend MCP Servers 💡
@hardik-id/azure-resource-graph-mcp-server
Model Context Protocol (MCP) server that provides access to Azure Resource Graph queries. It allows you to retrieve information about Azure resources across your subscriptions using Resource Graph queries.
polarsignals
Today we're excited to announce that Polar Signals Cloud now supports the Model Context Protocol (MCP), bringing the power of AI to performance analysis.
wuying_mcp_server
Alibaba Cloud's Wuying AgentBay is a cloud infrastructure providing a one-click configurable and serverless execution environment for AI Agent tasks, integrating tools via its MCP Server.
pythonanywhere-mcp-server
A Model Context Protocol (MCP) server acts as a bridge between AI-powered tools and your PythonAnywhere account, enabling secure, programmatic management of files, websites, webapps, and scheduled tasks. By exposing a standardized interface, it allows language models and automation clients to perform operations—such as editing files, deploying web apps, or scheduling jobs -- on your behalf, all while maintaining fine-grained control and auditability.
maxcompute-mcp-server
An MCP server that provides tools to interact with Alibaba Cloud MaxCompute (ODPS) for querying data and managing table schemas.
contentful-mcp
MCP server for the Contentful Management API