返回市场
云容器应用MCP

云容器应用MCP

作者:Nick19942095 星标更新:2025-10-28

项目介绍

Cloud.ru 容器应用 MCP

这是一个用于与 Cloud.ru 容器应用和工件注册表交互的模型上下文协议(MCP)服务器。

什么是 MCP?

模型上下文协议(MCP)是一个开放标准,它使AI助手能够无缝地与外部工具或数据源集成。它允许AI模型以安全且受控的方式与您的应用程序、服务和数据进行交互。

通过 MCP,您可以:

  • 扩展AI助手的功能,超越其训练数据
  • 实现实时与实时系统和API的交互
  • 提供来自您自己的数据源的相关上下文信息
  • 在不离开AI助手界面的情况下执行复杂的流程

示例用法

您可以简单地询问您的AI助手,而不是手动执行任务:

"通过MCP构建镜像,推送并部署到Cloud.ru容器应用"

您的AI助手,使用这个MCP服务器,可以:

  1. 构建您的应用程序的Docker镜像
  2. 将其推送到Cloud.ru工件注册表
  3. 使用新镜像更新您的容器应用
  4. 返回部署状态

这一切都通过自然语言命令自动完成,使得复杂的DevOps任务对每个人来说都变得容易。

安装 cloudru-containerapps-mcp 到您的系统

go install github.com/Nick1994209/cloudru-containerapps-mcp/cmd/cloudru-containerapps-mcp@latest

docs/INSTALLATION.md

将 cloudru-containerapps-mcp 添加到您的IDE。例如VisualStudioCode或Cursor

添加MCP设置

{
  "mcpServers": {
    "cloudru-containerapps-mcp": {
      "command": "cloudru-containerapps-mcp",
      "args": [],
      "env": {
        "CLOUDRU_KEY_ID": "********",
        "CLOUDRU_KEY_SECRET": "********",
        "CLOUDRU_PROJECT_ID": "********",
      },
      "timeout": 900,
      "disabledTools": []
    }
  }
}

docs/HOW_ADD_TO_IDE.md

该服务器将在标准输入/输出上监听JSON-RPC消息。

MCP环境变量

docs/ENVIRONMENT_VARIABLES.md

函数

cloudru_containerapps_description()

返回此MCP的使用说明。

cloudru_docker_login(registry_name)

使用提供的凭据登录到Cloud.ru Docker注册表。

参数:

  • registry_name:注册表名称(如果未提供,则回退到CLOUDRU_REGISTRY_NAME环境变量)

如果登录失败,您需要:

  1. 转到Cloud.ru进化工件注册表
  2. 创建一个注册表
  3. 获取访问密钥
  4. 查看文档:https://cloud.ru/docs/container-apps-evolution/ug/topics/tutorials__before-work

cloudru_docker_build_and_push(registry_name, repository_name, image_version, dockerfile_path, dockerfile_target, dockerfile_folder, show_commands)

构建Docker镜像并将其推送到Cloud.ru工件注册表。

参数:

  • registry_name:注册表名称(如果未提供,则回退到CLOUDRU_REGISTRY_NAME环境变量)
  • repository_name:仓库名称(如果未提供,则回退到CLOUDRU_REPOSITORY_NAME环境变量,然后是当前目录名称)
  • image_version:镜像版本/标签(可选,默认为'latest')
  • dockerfile_path:Dockerfile路径(可选,默认为'Dockerfile')
  • dockerfile_target:多阶段Dockerfile的目标阶段(可选,默认为'-'表示无目标)
  • dockerfile_folder:Dockerfile文件夹(构建上下文,默认为'.'表示当前目录)
  • show_commands:如果为true,则返回Docker构建和推送命令而不执行它们(可选,默认为'true')

如果由于身份验证问题导致Docker推送失败,并且设置了CLOUDRU_KEY_ID/CLOUDRU_KEY_SECRET环境变量,函数将尝试重新登录并重试推送操作。

cloudru_get_list_containerapps(project_id)

从Cloud.ru获取容器应用列表。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)

cloudru_get_containerapp(project_id, containerapp_name)

根据名称从Cloud.ru获取特定的容器应用。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • containerapp_name:要检索的容器应用名称

cloudru_create_containerapp(project_id, containerapp_name, containerapp_port, containerapp_image, containerapp_auto_deployments_enabled, containerapp_auto_deployments_pattern, containerapp_privileged, containerapp_idle_timeout, containerapp_timeout, containerapp_cpu)

在Cloud.ru中创建一个新的容器应用。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • containerapp_name:要创建的容器应用名称
  • containerapp_port:容器应用的端口号
  • containerapp_image:容器应用的镜像
  • containerapp_auto_deployments_enabled:启用自动部署(可选,默认为"false")
  • containerapp_auto_deployments_pattern:自动部署模式(可选,默认为"latest")
  • containerapp_privileged:以特权模式运行容器(可选,默认为"false")
  • containerapp_idle_timeout:容器空闲超时时间(可选,默认为"600s")
  • containerapp_timeout:请求超时时间(可选,默认为"60s")
  • containerapp_cpu:CPU分配(可选,默认为"0.1",选项:0.1, 0.2, 0.5, 1)

cloudru_delete_containerapp(project_id, containerapp_name)

从Cloud.ru删除容器应用。警告:此操作不可逆!

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • containerapp_name:要删除的容器应用名称

cloudru_start_containerapp(project_id, containerapp_name)

启动Cloud.ru中的容器应用。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • containerapp_name:要启动的容器应用名称

cloudru_stop_containerapp(project_id, containerapp_name)

停止Cloud.ru中的容器应用。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • containerapp_name:要停止的容器应用名称

cloudru_get_containerapp_logs(project_id, containerapp_name)

根据名称从Cloud.ru获取特定容器应用的日志。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • containerapp_name:要获取日志的容器应用名称

cloudru_get_list_docker_registries(project_id)

从Cloud.ru获取Docker注册表列表。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)

cloudru_create_docker_registry(project_id, registry_name, registry_is_public)

在Cloud.ru中创建一个新的Docker注册表。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)
  • registry_name:要创建的Docker注册表名称
  • registry_is_public:布尔标志,指示注册表是否应公开(true)或私有(false)

cloudru_get_registry_images(registry_name)

从Cloud.ru的Docker注册表获取镜像列表。

参数:

  • registry_name:注册表名称(如果未提供,则回退到CLOUDRU_REGISTRY_NAME环境变量)

注意:此功能目前在main.go文件中被禁用(第56行被注释掉)。

cloudru_get_containerapp_system_logs(project_id, containerapp_name)

根据名称从Cloud.ru获取特定容器应用的系统日志。项目ID可以通过PROJECT_ID环境变量设置,并从console.cloud.ru获得。

参数:

  • project_id:Cloud.ru中的项目ID(如果未提供,则回退到PROJECT_ID环境变量)
  • containerapp_name:要获取系统日志的容器应用名称

注意:此功能目前在main.go文件中被禁用(第53行被注释掉)。

当前禁用的功能

以下功能已实现但目前在main.go文件中被禁用:

  1. cloudru_get_containerapp_system_logs() - 获取特定容器应用的系统日志(第53行被注释掉)
  2. cloudru_get_registry_images() - 获取Docker注册表的镜像列表(第56行被注释掉)

要启用这些功能,请取消main.go文件中相应注册行的注释。cmd/cloudru-containerapps-mcp/main.go

文档

有关Cloud.ru容器应用的更多信息,请参阅: https://cloud.ru/docs/container-apps-evolution/ug/topics/tutorials__before-work