这是一个用于与 Cloud.ru 容器应用和工件注册表交互的模型上下文协议(MCP)服务器。
模型上下文协议(MCP)是一个开放标准,它使AI助手能够无缝地与外部工具或数据源集成。它允许AI模型以安全且受控的方式与您的应用程序、服务和数据进行交互。
通过 MCP,您可以:
您可以简单地询问您的AI助手,而不是手动执行任务:
"通过MCP构建镜像,推送并部署到Cloud.ru容器应用"
您的AI助手,使用这个MCP服务器,可以:
这一切都通过自然语言命令自动完成,使得复杂的DevOps任务对每个人来说都变得容易。
go install github.com/Nick1994209/cloudru-containerapps-mcp/cmd/cloudru-containerapps-mcp@latest
添加MCP设置
{
"mcpServers": {
"cloudru-containerapps-mcp": {
"command": "cloudru-containerapps-mcp",
"args": [],
"env": {
"CLOUDRU_KEY_ID": "********",
"CLOUDRU_KEY_SECRET": "********",
"CLOUDRU_PROJECT_ID": "********",
},
"timeout": 900,
"disabledTools": []
}
}
}
该服务器将在标准输入/输出上监听JSON-RPC消息。
返回此MCP的使用说明。
使用提供的凭据登录到Cloud.ru Docker注册表。
参数:
registry_name:注册表名称(如果未提供,则回退到CLOUDRU_REGISTRY_NAME环境变量)如果登录失败,您需要:
构建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环境变量,函数将尝试重新登录并重试推送操作。
从Cloud.ru获取容器应用列表。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)根据名称从Cloud.ru获取特定的容器应用。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)containerapp_name:要检索的容器应用名称在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)从Cloud.ru删除容器应用。警告:此操作不可逆!
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)containerapp_name:要删除的容器应用名称启动Cloud.ru中的容器应用。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)containerapp_name:要启动的容器应用名称停止Cloud.ru中的容器应用。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)containerapp_name:要停止的容器应用名称根据名称从Cloud.ru获取特定容器应用的日志。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)containerapp_name:要获取日志的容器应用名称从Cloud.ru获取Docker注册表列表。项目ID可以通过CLOUDRU_PROJECT_ID环境变量设置,并从console.cloud.ru获得。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)在Cloud.ru中创建一个新的Docker注册表。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到CLOUDRU_PROJECT_ID环境变量)registry_name:要创建的Docker注册表名称registry_is_public:布尔标志,指示注册表是否应公开(true)或私有(false)从Cloud.ru的Docker注册表获取镜像列表。
参数:
registry_name:注册表名称(如果未提供,则回退到CLOUDRU_REGISTRY_NAME环境变量)注意:此功能目前在main.go文件中被禁用(第56行被注释掉)。
根据名称从Cloud.ru获取特定容器应用的系统日志。项目ID可以通过PROJECT_ID环境变量设置,并从console.cloud.ru获得。
参数:
project_id:Cloud.ru中的项目ID(如果未提供,则回退到PROJECT_ID环境变量)containerapp_name:要获取系统日志的容器应用名称注意:此功能目前在main.go文件中被禁用(第53行被注释掉)。
以下功能已实现但目前在main.go文件中被禁用:
cloudru_get_containerapp_system_logs() - 获取特定容器应用的系统日志(第53行被注释掉)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