Cloud.ru容器应用程序MCP
用于与Cloud.ru容器应用程序和工件注册表交互的模型上下文协议(MCP)服务器。
什么是MCP?
模型上下文协议(MCP)是一个开放标准,可实现AI助手和外部工具或数据源之间的无缝集成。它允许AI模型以安全和可控的方式与您的应用程序、服务和数据进行交互。
使用MCP,您可以:
- 将AI助手的功能扩展到训练数据之外
- 实现与实时系统和API的实时交互
- 从您自己的数据源提供与上下文相关的信息
- 在不离开AI助手界面的情况下执行复杂的工作流程
示例用法
你可以简单地问你的人工智能助手,而不是手动执行任务:
"Build image, push and deploy to Cloud.ru Container Apps via MCP"使用此MCP服务器,您的AI助手可以:
- 构建应用程序的Docker镜像
- 将其推送到Cloud.ru工件注册表
- 用新图像更新您的容器应用程序
- 报告部署状态
所有这些都是通过自然语言命令自动完成的,使每个人都可以访问复杂的DevOps任务。
将cloudru containerapps mcp安装到您的系统
go install github.com/Nick1994209/cloudru-containerapps-mcp/cmd/cloudru-containerapps-mcp@latest或
go install ./cmd/cloudru-containerapps-mcp将cloudru containerapps mcp添加到您的IDE中。例如VisualStudioCode或游标
添加MCP设置
{
"mcpServers": {
"cloudru-containerapps-mcp": {
"command": "cloudru-containerapps-mcp",
"args": [],
"env": {
"CLOUDRU_KEY_ID": "********",
"CLOUDRU_KEY_SECRET": "********",
"CLOUDRU_PROJECT_ID": "********",
},
"timeout": 900,
"disabledTools": []
}
}
}服务器将在stdin/stdout上监听JSON-RPC消息。
MCP环境变量
函数
cloudru_containraps_description()
返回此MCP的使用说明。
cloudru_docker_login(注册表名)
使用提供的凭据登录Cloud.ru Docker注册表。
参数:
registry_name:注册表名称(回退到CLOUDRU_registry_Name env var)
如果登录失败,您需要:
- 转到Cloud.ru进化工件注册表
- 创建注册表
- 获取访问密钥
- 参见文件:https://cloud.ru/docs/container-apps-evolution/ug/topics/tutorials\_\_before-work
cloudru_docker_build_and_push(注册表名、存储库名、图像版本、停靠文件路径、停靠文件目标、停靠文件文件夹、显示命令)
构建Docker镜像并将其推送到Cloud.ru工件注册表。
参数:
registry_name:注册表名称(回退到CLOUDRU_registry_Name env var)repository_name:存储库的名称(回退到CLOUDRU_repository_Name env var,然后是当前目录名)image_version:图像的版本/标签(可选,默认为“最新”)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_containraps(project_id)
从Cloud.ru获取容器应用程序的列表。项目ID可以通过CLOUDRU_Project_ID环境变量设置,并从console.Cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)
cloudru_get_containerapp(项目id,容器名称)
按名称从Cloud.ru获取特定的容器应用程序。项目ID可以通过CLOUDRU_Project_ID环境变量设置,并从console.cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)containerapp_name:要检索的容器应用程序的名称
cloudru_create_containrapp(project_id、containerapp_name、containerapp_port、containerapp_image、containerapp_auto_deployments_enabled、containerapp.auto_deploymements_pattern、containerappprivileged、containerapp_id超时、containerapp_timeout、containerapp_cpu、containerapp_min_instance_count、containerapp_max_instance_account、containerappe_description、containerapp_Public_accessible、containerapp_protocol、containerapp_environment变量、containerapp_command、containerapp_adger)
在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:自动部署模式(可选,默认为“最新”)containerapp_privileged:以特权模式运行容器(可选,默认为“false”)containerapp_idle_timeout:容器空闲超时(可选,默认为“600秒”)containerapp_timeout:请求超时(可选,默认为“60秒”)containerapp_cpu:CPU分配(可选,默认为“0.1”,选项:0.1、0.2、0.5、1)containerapp_min_instance_count:缩放的最小实例数(可选,默认为“0”)containerapp_max_instance_count:可缩放的最大实例数(可选,默认为“1”)containerapp_description:容器应用程序的描述(可选,默认为空字符串)containerapp_publicly_accessible:容器应用程序是否可公开访问(可选,默认为“true”)containerapp_protocol:容器应用程序的协议(可选,默认为“http_1”,选项:http_1、http_2)containerapp_environment_variables:格式中的环境变量 ='';\='value2'(可选)containerapp_command:在容器中运行的命令(逗号分隔值)(可选)containerapp_args:命令的参数(逗号分隔值)(可选)
cloudru_patch_containrapp(项目id、containerapp_name、containerapp_port、containerapp_image、containerapp_auto_deployments_enabled、containerapp.auto_deploymements_pattern、containerapp_id超时、containerapp_timeout、containerapp_cpu、containerapp_min_instance_count、containerapp_max_instance_account、containerapp_description、containerapp_Public_access、containerapp_protocol、containerapp_environment变量、containerapp_command、containerapp_args)
修补Cloud.ru中现有的Container App。此函数获取当前状态,将其与新值合并,并更新容器应用程序。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)containerapp_name:要修补的容器应用程序的名称containerapp_port:容器应用程序的端口号(可选,如果没有提供,将保留现有端口号)containerapp_image:容器应用程序的图像(可选,如果不提供,将保留现有图像)containerapp_auto_deployments_enabled:启用自动部署(可选,如果不提供,将保留现有部署)containerapp_auto_deployments_pattern:自动部署模式(可选,如果没有提供,将保留现有模式)containerapp_idle_timeout:容器空闲超时(可选,如果没有提供,将保留现有)containerapp_timeout:请求超时(可选,如果没有提供,将保留现有)containerapp_cpu:CPU分配(可选,如果没有提供,将保留现有的)containerapp_min_instance_count:用于扩展的最小实例数(可选,如果不提供,将保留现有实例)containerapp_max_instance_count:可扩展的最大实例数(可选,如果不提供,将保留现有实例)containerapp_description:容器应用程序的描述(可选,如果没有提供,将保留现有的)containerapp_publicly_accessible:容器应用程序是否可公开访问(可选,如果不提供,将保留现有应用程序)containerapp_protocol:容器应用程序的协议(可选,如果没有提供,将保留现有协议)containerapp_environment_variables:格式中的环境变量 ='';\='value2'(可选,如果不提供,将保留现有值)containerapp_command:在容器中运行的命令(逗号分隔值)(可选,如果未提供,将保留现有值)containerapp_args:命令的参数(逗号分隔值)(可选,如果不提供,将保留现有值)
注: privileged 字段是只读的,不能通过此函数修改。
cloudru_delete_containerapp(项目id,容器名称)
从Cloud.ru中删除容器应用程序。警告:此操作无法撤消!
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)containerapp_name:要删除的容器应用程序的名称
cloudru_start_containrapp(项目id,容器应用名称)
在Cloud.ru中启动容器应用程序。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)containerapp_name:要启动的容器应用程序的名称
cloudru_stop_containrapp(项目id,容器应用名称)
停止Cloud.ru中的容器应用程序。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)containerapp_name:要停止的容器应用程序的名称
cloudru_get_containerapp_logs(项目id,容器app_name)
按名称从Cloud.ru获取特定容器应用程序的日志。项目ID可以通过CLOUDRU_Project_ID环境变量设置,并从console.cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)containerapp_name:从中获取日志的容器应用程序的名称
cloudru_get_list_dockerregistries(project_id)
从Cloud.ru获取Docker注册表列表。项目ID可以通过CLOUDRU_Project_ID环境变量设置,也可以从console.Cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)
cloudru_create_docker_register(项目id、注册表名、注册表名公共)
在Cloud.ru中创建一个新的Docker注册表。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)registry_name:要创建的Docker注册表的名称registry_is_public:布尔标志,指示注册表是公共(true)还是私有(false)
cloudru_get_register_images(注册表名)
从Cloud.ru中的Docker注册表获取映像列表。
参数:
registry_name:注册表名称(回退到CLOUDRU_registry_Name env var)
注意:此功能当前在main.go文件中已禁用(第56行已注释掉)。
cloudru_get_containerapp_system_logs(项目id,容器app_name)
按名称从Cloud.ru获取特定容器应用程序的系统日志。项目ID可以通过Project_ID环境变量设置,并从console.cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到Project_ID环境变量)containerapp_name:从中获取系统日志的容器应用程序的名称
注意:此功能当前在main.go文件中已禁用(第53行已注释掉)。
cloudru_jobs_list(项目id,页面大小)
从Cloud.ru获取作业的分页列表。项目ID可以通过CLOUDRU_Project_ID环境变量设置,也可以从console.Cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)page_size:每页项目数(可选)
cloudru_create_job(项目id、作业名、作业图像、作业特权、作业pu、作业描述、作业环境变量、作业命令、作业参数、作业重试计数、作业执行超时、作业运行立即)
在Cloud.ru中创建新作业。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)job_name:要创建的作业的名称job_image:工作图片job_privileged:以特权模式运行容器(可选,默认为“false”)job_cpu:CPU分配(可选,默认为“0.1”,选项:0.1、0.2、0.5、1)job_description:作业描述(可选)job_environment_variables:格式中的环境变量 ='';\='value2'(可选)job_command:在容器中运行的命令(逗号分隔值)(可选)job_args:命令的参数(逗号分隔值)(可选)job_retry_count:重试次数(可选)job_execution_timeout:执行超时(秒)(可选)job_run_immediately:创建后立即运行作业(可选,默认为“false”)
cloudru_patch_job(项目id、作业名称、作业图像、作业优先级、作业配置、作业描述、作业环境变量、作业命令、作业参数、作业尝试计数、作业执行超时、作业运行立即)
修补Cloud.ru中的现有作业。此函数获取当前状态,将其与新值合并,并更新作业。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)job_name:要修补的作业的名称job_image:作业图像(可选,如果未提供,将保留现有图像)job_privileged:以特权模式运行容器(可选,如果没有提供,将保留现有容器)job_cpu:CPU分配(可选,如果没有提供,将保留现有的)job_description:工作描述(可选,如果没有提供,将保留现有内容)job_environment_variables:格式中的环境变量 ='';\='value2'(可选,如果不提供,将保留现有值)job_command:在容器中运行的命令(逗号分隔值)(可选,如果未提供,将保留现有值)job_args:命令的参数(逗号分隔值)(可选,如果不提供,将保留现有值)job_retry_count:重试次数(可选,如果不提供,将保留现有次数)job_execution_timeout:执行超时时间(秒)(可选,如果没有提供,将保留现有时间)job_run_immediately:修补后立即运行作业(可选,如果没有提供,将保留现有作业)
cloudru_execute-job(项目id、作业名称、参数)
按名称在Cloud.ru中执行作业。项目ID可以通过CLOUDRU_Project_ID环境变量设置,并从console.cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)job_name:要执行的作业的名称params:带有作业执行参数的JSON字符串(可选)
cloudru_jobexecutions_list(项目id、作业名称、页面大小)
从Cloud.ru获取作业执行的分页列表。项目ID可以通过CLOUDRU_Project_ID环境变量设置,也可以从console.Cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)job_name:要执行的作业的名称page_size:每页项目数(可选)
cloudru_get_hob(项目id,作业名称)
按名称从Cloud.ru获取特定作业。项目ID可以通过CLOUDRU_Project_ID环境变量设置,并从console.cloud.ru获取。
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)job_name:要检索的作业的名称
cloudru_delete_job(项目id,作业名称)
从Cloud.ru中删除作业。警告:此操作无法撤消!
参数:
project_id:Cloud.ru中的项目ID(回退到CLOUDRU_Project_ID环境变量)job_name:要删除的作业的名称
当前禁用的功能
以下功能已实现,但目前在main.go文件中已禁用:
cloudru_get_containerapp_system_logs()-获取特定容器应用程序的系统日志(第53行已注释掉)cloudru_get_registry_images()-从Docker注册表中获取映像列表(第56行已被注释掉)
要启用这些功能,请在中取消注释相应的注册行 cmd/cloudru-containerapps-mcp/main.go.
开发指南
在为这个项目做出贡献时,请遵循我们的 Git提交指南 用于使用常规提交格式的英文一致提交消息。
文档
有关Cloud.ru容器应用程序的更多信息,请参阅: https://cloud.ru/docs/container-apps-evolution/ug/topics/tutorials\_\_before-work
