{"slug":"render-automation","title":"render-automation","summary":"Automate Render tasks via Rube MCP (Composio): services, deployments, projects. Always search tools first for current schemas.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-14T20:53:45.116957Z","repo":{"url":"https://github.com/davepoon/buildwithclaude","stars":3556,"forks":535,"license":"MIT","updatedAt":"2026-09-27T03:56:38Z"},"bodyHtml":"<hr>\n<h2>name: render-automation\ndescription: \"Automate Render tasks via Rube MCP (Composio): services, deployments, projects. Always search tools first for current schemas.\"\nrequires:\nmcp: [rube]\ncategory: infrastructure-cloud</h2>\n<h1>Render Automation via Rube MCP</h1>\n<p>Automate Render cloud platform operations through Composio's Render toolkit via Rube MCP.</p>\n<p><strong>Toolkit docs</strong>: <a href=\"https://composio.dev/toolkits/render\">composio.dev/toolkits/render</a></p>\n<h2>Prerequisites</h2>\n<ul>\n<li>Rube MCP must be connected (RUBE_SEARCH_TOOLS available)</li>\n<li>Active Render connection via <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>render</code></li>\n<li>Always call <code>RUBE_SEARCH_TOOLS</code> first to get current tool schemas</li>\n</ul>\n<h2>Setup</h2>\n<p><strong>Get Rube MCP</strong>: Add <code>https://rube.app/mcp</code> as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.</p>\n<ol>\n<li>Verify Rube MCP is available by confirming <code>RUBE_SEARCH_TOOLS</code> responds</li>\n<li>Call <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>render</code></li>\n<li>If connection is not ACTIVE, follow the returned auth link to complete Render authentication</li>\n<li>Confirm connection status shows ACTIVE before running any workflows</li>\n</ol>\n<h2>Core Workflows</h2>\n<h3>1. List and Browse Services</h3>\n<p><strong>When to use</strong>: User wants to find or inspect Render services (web services, static sites, workers, cron jobs)</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>RENDER_LIST_SERVICES</code> - List all services with optional filters [Required]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>name</code>: Filter services by name substring</li>\n<li><code>type</code>: Filter by service type ('web_service', 'static_site', 'private_service', 'background_worker', 'cron_job')</li>\n<li><code>limit</code>: Maximum results per page (default 20, max 100)</li>\n<li><code>cursor</code>: Pagination cursor from previous response</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Service types must match exact enum values: 'web_service', 'static_site', 'private_service', 'background_worker', 'cron_job'</li>\n<li>Pagination uses cursor-based approach; follow <code>cursor</code> until absent</li>\n<li>Name filter is substring-based, not exact match</li>\n<li>Service IDs follow the format 'srv-xxxxxxxxxxxx'</li>\n<li>Default limit is 20; set higher for comprehensive listing</li>\n</ul>\n<h3>2. Trigger Deployments</h3>\n<p><strong>When to use</strong>: User wants to manually deploy or redeploy a service</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>RENDER_LIST_SERVICES</code> - Find the service to deploy [Prerequisite]</li>\n<li><code>RENDER_TRIGGER_DEPLOY</code> - Trigger a new deployment [Required]</li>\n<li><code>RENDER_RETRIEVE_DEPLOY</code> - Monitor deployment progress [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li>For TRIGGER_DEPLOY:\n<ul>\n<li><code>serviceId</code>: Service ID to deploy (required, format: 'srv-xxxxxxxxxxxx')</li>\n<li><code>clearCache</code>: Set <code>true</code> to clear build cache before deploying</li>\n</ul>\n</li>\n<li>For RETRIEVE_DEPLOY:\n<ul>\n<li><code>serviceId</code>: Service ID</li>\n<li><code>deployId</code>: Deploy ID from trigger response (format: 'dep-xxxxxxxxxxxx')</li>\n</ul>\n</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>serviceId</code> is required; resolve via LIST_SERVICES first</li>\n<li>Service IDs start with 'srv-' prefix</li>\n<li>Deploy IDs start with 'dep-' prefix</li>\n<li><code>clearCache: true</code> forces a clean build; takes longer but resolves cache-related issues</li>\n<li>Deployment is asynchronous; use RETRIEVE_DEPLOY to poll status</li>\n<li>Triggering a deploy while another is in progress may queue the new one</li>\n</ul>\n<h3>3. Monitor Deployment Status</h3>\n<p><strong>When to use</strong>: User wants to check the progress or result of a deployment</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>RENDER_RETRIEVE_DEPLOY</code> - Get deployment details and status [Required]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>serviceId</code>: Service ID (required)</li>\n<li><code>deployId</code>: Deployment ID (required)</li>\n<li>Response includes <code>status</code>, <code>createdAt</code>, <code>updatedAt</code>, <code>finishedAt</code>, <code>commit</code></li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Both <code>serviceId</code> and <code>deployId</code> are required</li>\n<li>Deploy statuses include: 'created', 'build_in_progress', 'update_in_progress', 'live', 'deactivated', 'build_failed', 'update_failed', 'canceled'</li>\n<li>'live' indicates successful deployment</li>\n<li>'build_failed' or 'update_failed' indicate deployment errors</li>\n<li>Poll at reasonable intervals (10-30 seconds) to avoid rate limits</li>\n</ul>\n<h3>4. Manage Projects</h3>\n<p><strong>When to use</strong>: User wants to list and organize Render projects</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>RENDER_LIST_PROJECTS</code> - List all projects [Required]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>limit</code>: Maximum results per page (max 100)</li>\n<li><code>cursor</code>: Pagination cursor from previous response</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Projects group related services together</li>\n<li>Pagination uses cursor-based approach</li>\n<li>Project IDs are used for organizational purposes</li>\n<li>Not all services may be assigned to a project</li>\n</ul>\n<h2>Common Patterns</h2>\n<h3>ID Resolution</h3>\n<p><strong>Service name -&gt; Service ID</strong>:</p>\n<pre><code>1. Call RENDER_LIST_SERVICES with name=service_name\n2. Find service by name in results\n3. Extract id (format: 'srv-xxxxxxxxxxxx')\n</code></pre>\n<p><strong>Deployment lookup</strong>:</p>\n<pre><code>1. Store deployId from RENDER_TRIGGER_DEPLOY response\n2. Call RENDER_RETRIEVE_DEPLOY with serviceId and deployId\n3. Check status for completion\n</code></pre>\n<h3>Deploy and Monitor Pattern</h3>\n<pre><code>1. RENDER_LIST_SERVICES -&gt; find service by name -&gt; get serviceId\n2. RENDER_TRIGGER_DEPLOY with serviceId -&gt; get deployId\n3. Loop: RENDER_RETRIEVE_DEPLOY with serviceId + deployId\n4. Check status: 'live' = success, 'build_failed'/'update_failed' = error\n5. Continue polling until terminal state reached\n</code></pre>\n<h3>Pagination</h3>\n<ul>\n<li>Use <code>cursor</code> from response for next page</li>\n<li>Continue until <code>cursor</code> is absent or results are empty</li>\n<li>Both LIST_SERVICES and LIST_PROJECTS use cursor-based pagination</li>\n<li>Set <code>limit</code> to max (100) for fewer pagination rounds</li>\n</ul>\n<h2>Known Pitfalls</h2>\n<p><strong>Service IDs</strong>:</p>\n<ul>\n<li>Always prefixed with 'srv-' (e.g., 'srv-abcd1234efgh')</li>\n<li>Deploy IDs prefixed with 'dep-' (e.g., 'dep-d2mqkf9r0fns73bham1g')</li>\n<li>Always resolve service names to IDs via LIST_SERVICES</li>\n</ul>\n<p><strong>Service Types</strong>:</p>\n<ul>\n<li>Must use exact enum values when filtering</li>\n<li>Available types: web_service, static_site, private_service, background_worker, cron_job</li>\n<li>Different service types have different deployment behaviors</li>\n</ul>\n<p><strong>Deployment Behavior</strong>:</p>\n<ul>\n<li>Deployments are asynchronous; always poll for completion</li>\n<li>Clear cache deploys take longer but resolve stale cache issues</li>\n<li>Failed deploys do not roll back automatically; the previous version stays live</li>\n<li>Concurrent deploy triggers may be queued</li>\n</ul>\n<p><strong>Rate Limits</strong>:</p>\n<ul>\n<li>Render API has rate limits</li>\n<li>Avoid rapid polling; use 10-30 second intervals</li>\n<li>Bulk operations should be throttled</li>\n</ul>\n<p><strong>Response Parsing</strong>:</p>\n<ul>\n<li>Response data may be nested under <code>data</code> key</li>\n<li>Timestamps use ISO 8601 format</li>\n<li>Parse defensively with fallbacks for optional fields</li>\n</ul>\n<h2>Quick Reference</h2>\n<table>\n<thead>\n<tr>\n<th>Task</th>\n<th>Tool Slug</th>\n<th>Key Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>List services</td>\n<td>RENDER_LIST_SERVICES</td>\n<td>name, type, limit, cursor</td>\n</tr>\n<tr>\n<td>Trigger deploy</td>\n<td>RENDER_TRIGGER_DEPLOY</td>\n<td>serviceId, clearCache</td>\n</tr>\n<tr>\n<td>Get deploy status</td>\n<td>RENDER_RETRIEVE_DEPLOY</td>\n<td>serviceId, deployId</td>\n</tr>\n<tr>\n<td>List projects</td>\n<td>RENDER_LIST_PROJECTS</td>\n<td>limit, cursor</td>\n</tr>\n</tbody>\n</table>\n<hr>\n<p><em>Powered by <a href=\"https://composio.dev\">Composio</a></em></p>\n","files":[{"path":"SKILL.md","sizeBytes":6694,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-14T20:55:11.485948Z","sha256":"8813C8F0C3942586C9149C71E90BDAA6272185EE6274F19AB7A264B70C552E76","sizeBytes":2725},"review":null,"source":{"repositoryUrl":"https://github.com/davepoon/buildwithclaude","path":"plugins/all-skills/skills/render-automation","license":"MIT","commit":"6178ae2b0900b3600419853206de1dddf0f28311","subtreeSha":"0BB2902BF1A36848D46A95C156427ECC1DC0D836E581E2222B227DC53714906E","lastSyncedAt":"2026-09-27T19:47:46.68834Z"},"reviewedAt":"2026-09-14T20:59:54.659662Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/davepoon/buildwithclaude/tree/main/plugins/all-skills/skills/render-automation"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install davepoon-buildwithclaude@llmmart"},{"target":"git","command":"git clone https://github.com/davepoon/buildwithclaude.git"}]}