Bizfly云MCP服务器
一个全面的模型上下文协议(MCP)服务器实现,连接到Bizfly Cloud以管理云资源。使用 mark3labs/mcp go SDK。
特性
- 🔧 完整的云管理:管理服务器、卷、负载均衡器、数据库、Kubernetes集群等
- 🔒 安全认证:使用环境变量作为凭据
- 🐳 Docker支持:准备好使用Docker镜像,便于部署
- 📦 10支持的服务:服务器、卷、负载均衡器、Kubernetes、数据库、DNS、CDN、KMS、容器注册表、自动缩放和警报服务
- ✅ 经过全面测试:包含196+个测试用例的全面测试套件
- 🚀 MCP协议:与Cursor和Claude桌面兼容
- 🌐 多区域支持:可配置的区域和API端点
先决条件
地方发展
- 转到1.23或更高版本
- Bizfly Cloud帐户凭据
- 已安装光标或克劳德桌面
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.vn使用docker 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桌面集成
- 构建服务器:
go build -o bizfly-mcp-server- 通过在配置中添加以下内容来配置您的MCP客户端(Cursor或Claude Desktop):
对于光标:
{
"mcpServers": {
"bizfly": {
"command": "/absolute/path/to/bizfly-mcp-server",
"env": {
"BIZFLY_USERNAME": "your_username",
"BIZFLY_PASSWORD": "your_password",
"BIZFLY_REGION": "HaNoi"
}
}
}
}适用于克劳德桌面(~/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"
}
}
}
}可用工具
该服务器提供全面的MCP工具来管理所有Bizfly Cloud服务。所有工具名称前面都有前缀 bizflycloud_ 为了保持一致性。
🖥️ 服务器管理(bizflycloud_*)
bizflycloud_list_servers-列出所有Bizfly云服务器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(密钥管理服务)(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-删除标签
📈 自动缩放管理(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桌面上使用Docker镜像
对于光标(~/.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"
}
}
}
}适用于克劳德桌面(~/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服务器”
- “启动服务器服务器-123”
- “重新启动名为生产web的服务器”
- “列出可用的服务器风格”
卷管理
- “列出我的Bizfly Cloud帐户中的所有卷”
- “创建一个名为数据存储的100GB卷”
- “将卷vol-123连接到服务器服务器-456”
- “显示所有快照”
负载均衡器
- “列出所有负载平衡器”
- “为我的web服务器创建新的负载平衡器”
Kubernetes
- “列出所有Kubernetes集群”
- “显示群集cluster-123中的节点”
- “将工作池调整为5个节点”
数据库
- “显示所有数据库”
- “创建MySQL 8.0数据库”
- “列出数据库db-123的备份”
域名系统
- “列出所有DNS区域”
- “为www.example.com创建指向1.2.3.4的A记录”
- “显示zone example.com中的所有记录”
内容分发网络
- “列出所有CDN域”
- “创建CDN域,例如.com”
- “清除域CDN-123的CDN缓存”
集装箱登记处
- “列出所有容器存储库”
- “创建一个名为我的应用程序的公共存储库”
- “显示存储库中我的应用程序的所有标签”
自动缩放和警报
- “列出所有自动缩放组”
- “显示所有警报”
- “列出通知接收者”
MCP实施细节
此服务器使用 mark3labs/mcp go 实现模型上下文协议的SDK:
- 标准I/O传输:使用stdin/stdout与MCP客户端通信
- 工具定义:清晰的工具描述和参数
- 错误处理: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保险库 - AWS密钥管理器/AAzure密钥库/GCP密钥管理器
测试
该项目包括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 ./...看 测试_验证.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 -fMCP功能
- 标准I/O传输:使用stdin/stdout与Cursor/Claude Desktop无缝集成
- 标准化响应格式:所有响应都遵循MCP格式,包括上下文、类型、数据和根字段
- 资源组织:资源在根路径下组织
- 类型安全:所有资源的强打字
- 错误处理:MCP格式的标准化错误响应
- 全面的工具覆盖:80多种工具,涵盖10项Bizfly云服务
- 安全: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 ./... - 提交拉取请求
许可证
\[在此处添加您的许可证\]
支持
对于问题、疑问或贡献,请在GitHub上打开问题。
