name: render-automation description: “通过Rube MCP(Composio)自动化Render任务:服务、部署、项目。始终首先搜索工具以获取当前模式。” requires: mcp: [rube] category: devops
通过Rube MCP的Render自动化
通过Composio的Render工具包和Rube MCP自动化Render云平台操作。
工具包文档: composio.dev/toolkits/render
先决条件
- Rube MCP必须已连接(RUBE_SEARCH_TOOLS可用)
- 通过
RUBE_MANAGE_CONNECTIONS的活跃Render连接,工具包为render - 始终首先调用
RUBE_SEARCH_TOOLS以获取当前工具模式
设置
获取Rube MCP: 在您的客户端配置中添加https://rube.app/mcp作为MCP服务器。无需API密钥——只需添加端点即可工作。
- 通过确认
RUBE_SEARCH_TOOLS响应来验证Rube MCP可用 - 使用工具包
render调用RUBE_MANAGE_CONNECTIONS - 如果连接未激活,请按照返回的认证链接完成Render认证
- 在运行任何工作流之前确认连接状态显示为ACTIVE
核心工作流
1. 列出和浏览服务
何时使用: 用户想要查找或检查Render服务(Web服务、静态站点、工作者、定时任务)
工具序列:
RENDER_LIST_SERVICES- 列出所有服务,可选过滤器 [必需]
关键参数:
name: 按名称子字符串过滤服务type: 按服务类型过滤(‘web_service’, ‘static_site’, ‘private_service’, ‘background_worker’, ‘cron_job’)limit: 每页最大结果数(默认20,最大100)cursor: 来自先前响应的分页游标
常见问题:
- 服务类型必须匹配精确枚举值:‘web_service’, ‘static_site’, ‘private_service’, ‘background_worker’, ‘cron_job’
- 分页使用基于游标的方法;跟随
cursor直到消失 - 名称过滤器基于子字符串,非精确匹配
- 服务ID格式为’srv-xxxxxxxxxxxx’
- 默认限制为20;设置更高以进行全面列表
2. 触发部署
何时使用: 用户想要手动部署或重新部署服务
工具序列:
RENDER_LIST_SERVICES- 找到要部署的服务 [前提条件]RENDER_TRIGGER_DEPLOY- 触发新部署 [必需]RENDER_RETRIEVE_DEPLOY- 监控部署进度 [可选]
关键参数:
- 对于TRIGGER_DEPLOY:
serviceId: 要部署的服务ID(必需,格式:‘srv-xxxxxxxxxxxx’)clearCache: 设置为true以在部署前清除构建缓存
- 对于RETRIEVE_DEPLOY:
serviceId: 服务IDdeployId: 来自触发响应的部署ID(格式:‘dep-xxxxxxxxxxxx’)
常见问题:
serviceId是必需的;首先通过LIST_SERVICES解析- 服务ID以’srv-'前缀开头
- 部署ID以’dep-'前缀开头
clearCache: true强制干净构建;时间更长但解决缓存相关问题- 部署是异步的;使用RETRIEVE_DEPLOY轮询状态
- 在另一个部署进行中触发部署可能会排队新部署
3. 监控部署状态
何时使用: 用户想要检查部署的进度或结果
工具序列:
RENDER_RETRIEVE_DEPLOY- 获取部署详情和状态 [必需]
关键参数:
serviceId: 服务ID(必需)deployId: 部署ID(必需)- 响应包括
status,createdAt,updatedAt,finishedAt,commit
常见问题:
serviceId和deployId都是必需的- 部署状态包括:‘created’, ‘build_in_progress’, ‘update_in_progress’, ‘live’, ‘deactivated’, ‘build_failed’, ‘update_failed’, ‘canceled’
- 'live’表示成功部署
- 'build_failed’或’update_failed’表示部署错误
- 以合理间隔(10-30秒)轮询以避免速率限制
4. 管理项目
何时使用: 用户想要列出和组织Render项目
工具序列:
RENDER_LIST_PROJECTS- 列出所有项目 [必需]
关键参数:
limit: 每页最大结果数(最大100)cursor: 来自先前响应的分页游标
常见问题:
- 项目将相关服务分组在一起
- 分页使用基于游标的方法
- 项目ID用于组织目的
- 并非所有服务都可能分配给项目
常见模式
ID解析
服务名称 -> 服务ID:
1. 使用name=service_name调用RENDER_LIST_SERVICES
2. 在结果中按名称找到服务
3. 提取id(格式:'srv-xxxxxxxxxxxx')
部署查找:
1. 从RENDER_TRIGGER_DEPLOY响应存储deployId
2. 使用serviceId和deployId调用RENDER_RETRIEVE_DEPLOY
3. 检查状态以确定完成
部署和监控模式
1. RENDER_LIST_SERVICES -> 按名称找到服务 -> 获取serviceId
2. 使用serviceId调用RENDER_TRIGGER_DEPLOY -> 获取deployId
3. 循环:使用serviceId + deployId调用RENDER_RETRIEVE_DEPLOY
4. 检查状态:'live' = 成功,'build_failed'/'update_failed' = 错误
5. 继续轮询直到达到终端状态
分页
- 使用响应中的
cursor获取下一页 - 继续直到
cursor消失或结果为空 - 无论是LIST_SERVICES还是LIST_PROJECTS都使用基于游标的分页
- 将
limit设置为最大值(100)以减少分页轮数
已知问题
服务IDs:
- 始终以’srv-'为前缀(例如:‘srv-abcd1234efgh’)
- 部署IDs以’dep-'为前缀(例如:‘dep-d2mqkf9r0fns73bham1g’)
- 始终通过LIST_SERVICES解析服务名称到IDs
服务类型:
- 过滤时必须使用精确枚举值
- 可用类型:web_service, static_site, private_service, background_worker, cron_job
- 不同服务类型具有不同的部署行为
部署行为:
- 部署是异步的;始终轮询完成
- 清除缓存部署时间更长但解决陈旧缓存问题
- 失败部署不会自动回滚;先前版本保持活动
- 并发部署触发可能会排队
速率限制:
- Render API有速率限制
- 避免快速轮询;使用10-30秒间隔
- 批量操作应节流
响应解析:
- 响应数据可能嵌套在
data键下 - 时间戳使用ISO 8601格式
- 使用后备防御性解析可选字段
快速参考
| 任务 | 工具名称 | 关键参数 |
|---|---|---|
| 列出服务 | RENDER_LIST_SERVICES | name, type, limit, cursor |
| 触发部署 | RENDER_TRIGGER_DEPLOY | serviceId, clearCache |
| 获取部署状态 | RENDER_RETRIEVE_DEPLOY | serviceId, deployId |
| 列出项目 | RENDER_LIST_PROJECTS | limit, cursor |
由Composio提供支持