mcpField
B
Bizfly Cloud MCP Server

Bizfly Cloud MCP Server

本地服务
github.com/bizflycloud云与基础设施152 周前更新

关于 Bizfly Cloud MCP Server

Bizfly Cloud MCP Server 是用于管理 Bizfly Cloud 资源的 MCP 服务,供云平台运维人员通过支持的客户端操作多类云服务。它覆盖计算、存储、网络及其他服务,并支持配置区域和 API 端点。

主要功能

  1. 01管理服务器、卷和负载均衡器
  2. 02管理 Kubernetes 集群与数据库
  3. 03管理 DNS、CDN 和容器仓库
  4. 04管理 KMS、自动伸缩和告警
  5. 05通过环境变量配置凭据和区域
  6. 06支持 Docker 部署及多区域配置

适用场景

  1. 01查看并启停或调整云服务器
  2. 02创建卷、快照并挂载到服务器
  3. 03管理 Kubernetes 集群和工作节点池
  4. 04创建 DNS 记录或清理 CDN 缓存

MCP 相关

该 MCP 服务通过标准输入输出连接 MCP 客户端,并提供 Bizfly Cloud 资源管理工具。README 提到可与 Cursor 和 Claude Desktop 配合使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bizflycloud": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Bizfly Cloud MCP 服务

一个全面的模型上下文协议(MCP)服务实现,可连接 Bizfly Cloud 以管理云资源。使用 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(推荐)
  1. 克隆仓库:

    git clone https://github.com/your-username/bizflycloud-mcp-server.git
    cd bizflycloud-mcp-server
    
  2. 构建 Docker 镜像:

    docker build -t bizfly-mcp-server:latest .
    
  3. 运行容器:

    docker run -it --rm \
      -e BIZFLY_USERNAME=your_username \
      -e BIZFLY_PASSWORD=your_password \
      -e BIZFLY_REGION=HaNoi \
      bizfly-mcp-server:latest
    
  4. 使用 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:本地开发
  1. 克隆仓库:

    git clone https://github.com/your-username/bizflycloud-mcp-server.git
    cd bizflycloud-mcp-server
    
  2. 设置环境变量:

    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
    
  3. 安装依赖:

    go mod download
    
  4. 构建服务:

    go build -o bizfly-mcp-server
    

运行服务

集成 Cursor/Claude Desktop
  1. 构建服务:

    go build -o bizfly-mcp-server
    
  2. 通过将以下内容添加到配置中,配置 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"
            }
        }
    }
}

可用工具

该服务提供全面的 MCP 工具,用于管理所有 Bizfly Cloud 服务。为保持一致,所有工具名称均以 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(密钥管理服务)(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 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”
  • “显示所有快照”
负载均衡器
  • “列出所有负载均衡器”
  • “为我的 Web 服务器创建一个新的负载均衡器”
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 实现细节

此服务使用 mark3labs/mcp-go SDK 实现 Model Context Protocol:

  1. 标准输入/输出传输:使用 stdin/stdout 与 MCP 客户端通信
  2. 工具定义:提供清晰的工具描述和参数
  3. 错误处理:以 MCP 格式正确报告错误
  4. 文本格式化:以易读的格式输出资源列表

环境变量

此服务使用环境变量进行配置:

必需变量
  • BIZFLY_USERNAME:你的 Bizfly Cloud 用户名
  • BIZFLY_PASSWORD:你的 Bizfly Cloud 密码
可选变量
  • BIZFLY_REGION:区域名称(默认为“HaNoi”)
  • 可用区域:HaNoi、HoChiMinh 等
  • BIZFLY_API_URL:API 端点 URL(默认为“https://manage.bizflycloud.vn”)
安全最佳实践

⚠️ 重要:请妥善保管凭据,切勿将其提交到版本控制系统。

  1. 对于 Docker:使用 .env 文件或 Docker secrets

    # .env file (add to .gitignore)
    BIZFLY_USERNAME=your_username
    BIZFLY_PASSWORD=your_password
    
  2. 对于本地开发:使用环境变量或 .env 文件加载器

    export BIZFLY_USERNAME=your_username
    export BIZFLY_PASSWORD=your_password
    
  3. 对于生产环境:可考虑使用:

    • Docker secrets
    • Kubernetes secrets
    • 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 功能

  1. 标准输入/输出传输:使用 stdin/stdout 与 Cursor/Claude Desktop 无缝集成
  2. 标准化响应格式:所有响应均遵循 MCP 格式,包含 context、type、data 和 root 字段
  3. 资源组织:资源按根路径组织
  4. 类型安全:为所有资源提供强类型
  5. 错误处理:以 MCP 格式返回标准化错误响应
  6. 全面的工具覆盖:80+ 个工具覆盖 10 项 Bizfly Cloud 服务
  7. 安全性: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
贡献
  1. Fork 此仓库
  2. 创建功能分支
  3. 进行更改
  4. 为新功能添加测试
  5. 确保所有测试通过:go test ./...
  6. 提交拉取请求

许可证

[在此添加许可证]

支持

如有问题、疑问或想要贡献,请在 GitHub 上提交 issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。