Развёртывание приложения на Render
Разбирает проект, готовит файл render.yaml и ведёт по шагам развёртывания приложения на облачной платформе Render.
- Что делает
- Разбирает проект, готовит файл render.yaml и ведёт по шагам развёртывания приложения на облачной платформе Render.
- Когда брать
- Когда нужно захостить или опубликовать приложение, базу данных или задание cron на Render.
- Когда не брать
- Если у проекта нет Git-репозитория и нужно развернуть только готовый образ Docker через MCP.
- Пример запроса
- Разверни моё приложение на Render и подготовь для него render.yaml.
- Нужно подключить
- терминал, Git-репозиторий, аккаунт Render
- Работает лучше с
- MCP-сервер Render, Render CLI
Как включить
- Скачайте архив и распакуйте его.
- Положите папку
render-deployв~/.agents/skills/. - Вызовите скилл командой
$render-deployили найдите его через/skills.
Текст
---
name: render-deploy
description: Развёртывает приложения на Render - анализирует кодовую базу, создаёт Blueprint-файлы render.yaml и выдаёт ссылки для перехода в Dashboard. Используй, когда пользователь хочет развернуть, захостить, опубликовать или настроить своё приложение на облачной платформе Render.
---
Развёртывание на Render
Render поддерживает сервисы, привязанные к Git, и сервисы из готового образа Docker.
Этот скилл описывает процессы для Git:
- Метод Blueprint — создание render.yaml для развёртывания по принципу «инфраструктура как код» (Infrastructure-as-Code)
- Прямое создание — мгновенное создание сервисов через инструменты MCP
Blueprint может запускать и готовый образ Docker через runtime: image, но файл render.yaml всё равно должен лежать в Git-репозитории.
Если Git-удалённого репозитория (remote) нет, остановись и попроси пользователя:
- создать и отправить Git-репозиторий (он может быть минимальным, если нужен только Blueprint), либо
- использовать Render Dashboard или API для развёртывания готового образа Docker (MCP не умеет создавать сервисы на основе образа).
Предварительные условия
- Если песочница блокирует сетевые вызовы развёртывания, перезапусти команду с
sandbox_permissions=require_escalated. - Развёртывание может занять несколько минут. Задавай подходящие значения тайм-аута.
Когда использовать этот скилл
Включай этот скилл, когда пользователь хочет:
- Развернуть приложение на Render
- Создать файл Blueprint render.yaml
- Настроить развёртывание своего проекта на Render
- Захостить или опубликовать своё приложение на облачной платформе Render
- Создать базы данных, задания cron или другие ресурсы Render
Быстрый путь (новые пользователи)
Перед глубоким анализом задай эти короткие вопросы, чтобы снизить трение:
- Спроси, хотят ли они развернуть из Git-репозитория или из готового образа Docker.
- Спроси, должен ли Render создать всё, что нужно приложению (исходя из того, что вероятно следует из описания пользователя), или только само приложение, а свою инфраструктуру они подключат сами. Если зависимости неясны, задай короткий уточняющий вопрос: нужны ли база данных, воркеры, cron или другие сервисы.
Затем действуй по подходящему методу ниже.
Выбор источника
Путь через Git-репозиторий: обязателен и для Blueprint, и для прямого создания. Репозиторий должен быть отправлен на GitHub, GitLab или Bitbucket.
Путь через готовый образ Docker: Render поддерживает его через сервисы на основе образа. MCP его не поддерживает; используй Dashboard или API. Узнай:
- URL образа (реестр и тег)
- Авторизацию в реестре (если он приватный)
- Тип сервиса (web/worker) и порт
Если пользователь выбирает образ Docker, проведи его по процессу развёртывания образа в Render Dashboard или попроси добавить Git-репозиторий (чтобы можно было использовать Blueprint с runtime: image).
Выбор метода развёртывания (Git-репозиторий)
Для обоих методов нужен Git-репозиторий, отправленный на GitHub, GitLab или Bitbucket. (При runtime: image репозиторий может быть минимальным и содержать только render.yaml.)
| Метод | Лучше всего подходит для | Преимущества |
|---|---|---|
| Blueprint | Приложения из нескольких сервисов, процессы с IaC | Под контролем версий, воспроизводимо, поддерживает сложные конфигурации |
| Прямое создание | Отдельные сервисы, быстрое развёртывание | Мгновенное создание, файл render.yaml не нужен |
Правило выбора метода
По умолчанию используй это правило, если пользователь не попросил конкретный метод. Сначала проанализируй кодовую базу; спрашивай только если цель развёртывания неясна (например, база данных, воркеры, cron).
Используй прямое создание (MCP), когда выполняется ВСЁ из перечисленного:
- Один сервис (одно веб-приложение или один статический сайт)
- Нет отдельных сервисов worker/cron
- Нет подключённых баз данных или Key Value
- Только простые переменные окружения (без общих групп переменных)
Если этот путь подходит, а MCP ещё не настроен, остановись и проведи пользователя через настройку MCP, прежде чем продолжать.
Используй Blueprint, когда выполняется ХОТЯ БЫ ОДНО из перечисленного:
- Несколько сервисов (web и worker, API и фронтенд и т. д.)
- Нужны базы данных, Redis/Key Value или другие хранилища данных
- Есть задания cron, фоновые воркеры или приватные сервисы
- Нужна воспроизводимая IaC или файл render.yaml в репозитории
- Монорепозиторий или многоокружение, где нужна единая конфигурация
Если не уверен, задай короткий уточняющий вопрос, но для надёжности выбирай Blueprint по умолчанию. Для одного сервиса настоятельно предпочитай прямое создание через MCP и при необходимости проведи пользователя через настройку MCP.
Проверка предварительных условий
В начале развёртывания по порядку проверь следующее:
1. Подтверди источник (Git или Docker)
Если используешь методы на основе Git (Blueprint или прямое создание), репозиторий должен быть отправлен на GitHub/GitLab/Bitbucket. Blueprint, ссылающийся на готовый образ, всё равно требует Git-репозитория с render.yaml.
git remote -v
- Если удалённого репозитория нет, остановись и попроси пользователя создать и отправить репозиторий или перейти на развёртывание образа Docker.
2. Проверь доступность инструментов MCP (предпочтительно для одного сервиса)
Инструменты MCP дают лучший результат. Проверь, доступны ли они, попробовав выполнить:
list_services()
Если инструменты MCP доступны, для большинства операций установку CLI можно пропустить.
3. Проверь установку Render CLI (для проверки Blueprint)
render --version
Если он не установлен, предложи установить:
- macOS:
brew install render - Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/render-oss/cli/main/bin/install.sh | sh
4. Настройка MCP (если MCP не настроен)
Если list_services() завершается ошибкой, потому что MCP не настроен, спроси, хотят ли они настроить MCP (предпочтительно) или продолжить через запасной вариант с CLI. Если они выбирают MCP, спроси, каким ИИ-инструментом они пользуются, и дай подходящую инструкцию ниже. Всегда используй их ключ API.
Cursor
Проведи пользователя по этим шагам:
- Получи ключ API Render:
https://dashboard.render.com/u/*/settings#api-keys
- Добавь это в
~/.cursor/mcp.json(замени<YOUR_API_KEY>):
{
"mcpServers": {
"render": {
"url": "https://mcp.render.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
- Перезапусти Cursor и повтори
list_services().
Claude Code
Проведи пользователя по этим шагам:
- Получи ключ API Render:
https://dashboard.render.com/u/*/settings#api-keys
- Добавь MCP-сервер в Claude Code (замени
<YOUR_API_KEY>):
claude mcp add --transport http render https://mcp.render.com/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
- Перезапусти Claude Code и повтори
list_services().
Codex
Проведи пользователя по этим шагам:
- Получи ключ API Render:
https://dashboard.render.com/u/*/settings#api-keys
- Задай его в оболочке:
export RENDER_API_KEY="<YOUR_API_KEY>"
- Добавь MCP-сервер через Codex CLI:
codex mcp add render --url https://mcp.render.com/mcp --bearer-token-env-var RENDER_API_KEY
- Перезапусти Codex и повтори
list_services().
Другие инструменты
Если пользователь работает в другом ИИ-приложении, направь его к документации Render по MCP для этого инструмента — там описаны шаги настройки и способ установки.
Выбор рабочего пространства
После настройки MCP попроси пользователя задать активное рабочее пространство Render запросом вроде:
Установи моё рабочее пространство Render: [WORKSPACE_NAME]
5. Проверь аутентификацию (только для запасного варианта с CLI)
Если MCP недоступен, используй CLI и убедись, что у тебя есть доступ к аккаунту:
# Check if user is logged in (use -o json for non-interactive mode)
render whoami -o json
Если render whoami завершается ошибкой или возвращает пустые данные, CLI не аутентифицирован. CLI не всегда сам предлагает войти, поэтому явно попроси пользователя пройти аутентификацию:
Если не настроено ни то ни другое, спроси пользователя, какой способ он предпочитает:
- Ключ API (CLI):
export RENDER_API_KEY="rnd_xxxxx"(получить на https://dashboard.render.com/u/*/settings#api-keys) - Вход:
render login(открывает браузер для OAuth)
6. Проверь контекст рабочего пространства
Проверь активное рабочее пространство:
get_selected_workspace()
Или через CLI:
render workspace current -o json
Чтобы вывести список доступных рабочих пространств:
list_workspaces()
Если пользователю нужно сменить рабочее пространство, он должен сделать это через Dashboard или CLI (render workspace set).
Когда предварительные условия выполнены, переходи к процессу развёртывания.
Метод 1: развёртывание через Blueprint (рекомендуется для сложных приложений)
Процесс с Blueprint
Шаг 1: проанализируй кодовую базу
Проанализируй кодовую базу и определи фреймворк и среду выполнения, команды сборки и запуска, необходимые переменные окружения, хранилища данных и привязку к порту. Используй подробные чек-листы из [references/codebase-analysis.md](references/codebase-analysis.md).
Шаг 2: создай render.yaml
Создай файл Blueprint render.yaml в соответствии со спецификацией Blueprint.
Полная спецификация: [references/blueprint-spec.md](references/blueprint-spec.md)
Ключевые моменты:
- Всегда используй
plan: free, если пользователь не указал иное - Включай ВСЕ переменные окружения, которые нужны приложению
- Секреты помечай
sync: false(пользователь заполняет их в Dashboard) - Используй подходящий тип сервиса:
web,worker,cron,staticилиpserv - Используй подходящую среду выполнения: [references/runtimes.md](references/runtimes.md)
Базовая структура:
services:
- type: web
name: my-app
runtime: node
plan: free
buildCommand: npm ci
startCommand: npm start
envVars:
- key: DATABASE_URL
fromDatabase:
name: postgres
property: connectionString
- key: JWT_SECRET
sync: false # User fills in Dashboard
databases:
- name: postgres
databaseName: myapp_db
plan: free
Типы сервисов:
web: HTTP-сервисы, API, веб-приложения (доступны публично)worker: обработчики фоновых заданий (публично недоступны)cron: задачи по расписанию cronstatic: статические сайты (HTML/CSS/JS через CDN)pserv: приватные сервисы (только для внутреннего использования внутри одного аккаунта)
Подробности о типах сервисов: [references/service-types.md](references/service-types.md) Варианты сред выполнения: [references/runtimes.md](references/runtimes.md) Примеры шаблонов: [assets/](assets/)
Шаг 2.5: ближайшие следующие шаги (давай всегда)
После создания render.yaml всегда давай пользователю короткий явный чек-лист и сразу запускай проверку, если CLI доступен:
- Аутентификация (CLI): выполни
render whoami -o json(если вход не выполнен, выполниrender loginили задайRENDER_API_KEY) - Проверка (рекомендуется): выполни
render blueprints validate - Если CLI не установлен, предложи установить его и дай команду.
- Коммит и отправка:
git add render.yaml && git commit -m "Add Render deployment configuration" && git push origin main - Открой Dashboard: используй ссылку-переход для Blueprint и при запросе пройди OAuth через Git
- Заполни секреты: задай переменные окружения, помеченные
sync: false - Разверни: нажми «Apply» и следи за развёртыванием
Шаг 3: проверь конфигурацию
Проверь файл render.yaml, чтобы поймать ошибки до развёртывания. Если CLI установлен, запускай команды сам; обращайся к пользователю, только если CLI отсутствует:
render whoami -o json # Ensure CLI is authenticated (won't always prompt)
render blueprints validate
Исправь все ошибки проверки, прежде чем идти дальше. Частые проблемы:
- Не хватает обязательных полей (
name,type,runtime) - Недопустимые значения runtime
- Неверный синтаксис YAML
- Недопустимые ссылки на переменные окружения
Руководство по конфигурации: [references/configuration-guide.md](references/configuration-guide.md)
Шаг 4: коммит и отправка
ВАЖНО: перед развёртыванием файл render.yaml нужно влить в репозиторий.
Убедись, что файл render.yaml закоммичен и отправлен в Git-репозиторий:
git add render.yaml
git commit -m "Add Render deployment configuration"
git push origin main
Если Git-репозитория ещё нет, остановись здесь и помоги пользователю создать репозиторий на GitHub/GitLab/Bitbucket, добавить его как origin и отправить код, прежде чем продолжать.
Почему это важно: ссылка в Dashboard считывает render.yaml из твоего репозитория. Если файл не влит и не отправлен, Render не найдёт конфигурацию, и развёртывание не удастся.
Прежде чем переходить к следующему шагу, убедись, что файл есть в удалённом репозитории.
Шаг 5: создай ссылку-переход
Получи URL Git-репозитория:
git remote get-url origin
Команда вернёт URL у твоего Git-провайдера. Если URL в формате SSH, преобразуй его в HTTPS:
| Формат SSH | Формат HTTPS |
|---|---|
git@github.com:user/repo.git | https://github.com/user/repo |
git@gitlab.com:user/repo.git | https://gitlab.com/user/repo |
git@bitbucket.org:user/repo.git | https://bitbucket.org/user/repo |
Правило преобразования: замени git@<host>: на https://<host>/ и убери суффикс .git.
Составь ссылку-переход в Dashboard, используя HTTPS-адрес репозитория:
https://dashboard.render.com/blueprint/new?repo=<REPOSITORY_URL>
Пример:
https://dashboard.render.com/blueprint/new?repo=https://github.com/username/repo-name
Шаг 6: проведи пользователя
КРИТИЧНО: убедись, что пользователь влил и отправил файл render.yaml в свой репозиторий, прежде чем он нажмёт на ссылку-переход. Если файла в репозитории нет, Render не сможет прочитать конфигурацию Blueprint, и развёртывание не удастся.
Дай пользователю ссылку-переход с такими инструкциями:
- Убедись, что render.yaml влит — проверь, что файл есть в твоём репозитории на GitHub/GitLab/Bitbucket
- Нажми на ссылку-переход, чтобы открыть Render Dashboard
- При запросе пройди OAuth у Git-провайдера
- Назови Blueprint (или оставь имя по умолчанию из render.yaml)
- Заполни секретные переменные окружения (помеченные
sync: false) - Проверь конфигурацию сервисов и баз данных
- Нажми «Apply», чтобы развернуть
Развёртывание начнётся автоматически. Пользователи могут следить за ходом в Render Dashboard.
Шаг 7: проверь развёртывание
После того как пользователь развернул проект через Dashboard, убедись, что всё работает.
Проверь статус развёртывания через MCP:
list_deploys(serviceId: "<service-id>", limit: 1)
Ищи status: "live" — он подтверждает успешное развёртывание.
Проверь ошибки времени выполнения (подожди 2–3 минуты после развёртывания):
list_logs(resource: ["<service-id>"], level: ["error"], limit: 20)
Проверь метрики состояния сервиса:
get_metrics(
resourceId: "<service-id>",
metricTypes: ["http_request_count", "cpu_usage", "memory_usage"]
)
Если найдены ошибки, переходи к разделу Проверка после развёртывания и базовый разбор проблем ниже.
Метод 2: прямое создание сервиса (быстрое развёртывание одного сервиса)
Для простого развёртывания без Infrastructure-as-Code создавай сервисы напрямую через инструменты MCP.
Когда использовать прямое создание
- Один веб-сервис или статический сайт
- Быстрые прототипы и демо
- Когда файл render.yaml в репозитории не нужен
- Добавление баз данных или заданий cron в существующие проекты
Предварительные условия для прямого создания
Репозиторий должен быть отправлен Git-провайдеру. Render клонирует репозиторий, чтобы собрать и развернуть сервисы.
git remote -v # Verify remote exists
git push origin main # Ensure code is pushed
Поддерживаемые провайдеры: GitHub, GitLab, Bitbucket
Если удалённого репозитория нет, остановись и попроси пользователя создать и отправить репозиторий или перейти на развёртывание образа Docker.
Примечание: MCP не поддерживает создание сервисов на основе образа. Для развёртывания готового образа Docker используй Dashboard или API.
Процесс прямого создания
Используй краткие шаги ниже, а полные примеры команд MCP и последующую настройку смотри в [references/direct-creation.md](references/direct-creation.md).
Шаг 1: проанализируй кодовую базу
Используй [references/codebase-analysis.md](references/codebase-analysis.md), чтобы определить среду выполнения, команды сборки и запуска, переменные окружения и хранилища данных.
Шаг 2: создай ресурсы через MCP
Создай сервис (web или static) и все необходимые базы данных или хранилища «ключ — значение». Смотри [references/direct-creation.md](references/direct-creation.md).
Если MCP возвращает ошибку об отсутствии учётных данных Git или доступа к репозиторию, остановись и помоги пользователю подключить своего Git-провайдера в Render Dashboard, затем повтори попытку.
Шаг 3: настрой переменные окружения
После создания добавь нужные переменные окружения через MCP. Смотри [references/direct-creation.md](references/direct-creation.md).
Напомни пользователю, что секреты можно задать в Dashboard, если он не хочет передавать их через MCP.
Шаг 4: проверь развёртывание
Проверь статус развёртывания, журналы и метрики. Смотри [references/direct-creation.md](references/direct-creation.md).
Об обнаружении сервисов, подробностях конфигурации, быстрых командах и типичных проблемах смотри [references/deployment-details.md](references/deployment-details.md).
Проверка после развёртывания и базовый разбор проблем (для всех методов)
Делай это коротко и повторяемо. Если какая-либо проверка не проходит, исправь причину до повторного развёртывания.
- Убедись, что последнее развёртывание в статусе
liveи принимает трафик - Обратись к эндпоинту проверки состояния (или к корню) и убедись, что приходит ответ 200
- Просмотри свежие журналы ошибок в поисках чёткого признака сбоя
- Проверь нужные переменные окружения и привязку к порту (
0.0.0.0:$PORT)
Подробный чек-лист и команды: [references/post-deploy-checks.md](references/post-deploy-checks.md)
Если сервис не запускается или проверки состояния заканчиваются тайм-аутом, воспользуйся базовым руководством по разбору проблем: [references/troubleshooting-basics.md](references/troubleshooting-basics.md)
Устранение неполадок
Расширенный сетевой доступ
Если развёртывание не удаётся из-за сетевых проблем (тайм-ауты, ошибки DNS, сброс соединений), перезапусти развёртывание с расширенными правами (используй sandbox_permissions=require_escalated). Развёртывание требует расширенного сетевого доступа, когда сеть в песочнице блокирует исходящие запросы.
Пример того, что сказать пользователю:
Для развёртывания на Render нужен расширенный сетевой доступ. Я могу перезапустить команду с расширенными правами — продолжить?
Необязательно: если нужна более глубокая диагностика (метрики, проверки БД, каталог ошибок), предложи установить скилл render-debug. Он не нужен для основного процесса развёртывания.
Перевод: iiuniversitet. Оригинал: https://github.com/openai/skills/tree/main/skills/.curated/render-deploy, лицензия Apache-2.0. Изменения: перевод на русский язык.
Оригинал на английском
---
name: render-deploy
description: Deploy applications to Render by analyzing codebases, generating render.yaml Blueprints, and providing Dashboard deeplinks. Use when the user wants to deploy, host, publish, or set up their application on Render's cloud platform.
---
# Deploy to Render
Render supports **Git-backed** services and **prebuilt Docker image** services.
This skill covers **Git-backed** flows:
1. **Blueprint Method** - Generate render.yaml for Infrastructure-as-Code deployments
2. **Direct Creation** - Create services instantly via MCP tools
Blueprints can also run a **prebuilt Docker image** by using `runtime: image`, but the `render.yaml` still must live in a Git repo.
If there is no Git remote, stop and ask the user to either:
- Create/push a Git remote (can be minimal if only the Blueprint is needed), or
- Use the Render Dashboard/API to deploy a prebuilt Docker image (MCP cannot create image-backed services).
## Prerequisites
- When sandboxing blocks the deployment network calls, rerun with `sandbox_permissions=require_escalated`.
- The deployment might take a few minutes. Use appropriate timeout values.
## When to Use This Skill
Activate this skill when users want to:
- Deploy an application to Render
- Create a render.yaml Blueprint file
- Set up Render deployment for their project
- Host or publish their application on Render's cloud platform
- Create databases, cron jobs, or other Render resources
## Happy Path (New Users)
Use this short prompt sequence before deep analysis to reduce friction:
1. Ask whether they want to deploy from a Git repo or a prebuilt Docker image.
2. Ask whether Render should provision everything the app needs (based on what seems likely from the user's description) or only the app while they bring their own infra. If dependencies are unclear, ask a short follow-up to confirm whether they need a database, workers, cron, or other services.
Then proceed with the appropriate method below.
## Choose Your Source Path
**Git Repo Path:** Required for both Blueprint and Direct Creation. The repo must be pushed to GitHub, GitLab, or Bitbucket.
**Prebuilt Docker Image Path:** Supported by Render via image-backed services. This is **not** supported by MCP; use the Dashboard/API. Ask for:
- Image URL (registry + tag)
- Registry auth (if private)
- Service type (web/worker) and port
If the user chooses a Docker image, guide them to the Render Dashboard image deploy flow or ask them to add a Git remote (so you can use a Blueprint with `runtime: image`).
## Choose Your Deployment Method (Git Repo)
Both methods require a Git repository pushed to GitHub, GitLab, or Bitbucket. (If using `runtime: image`, the repo can be minimal and only contain `render.yaml`.)
| Method | Best For | Pros |
|--------|----------|------|
| **Blueprint** | Multi-service apps, IaC workflows | Version controlled, reproducible, supports complex setups |
| **Direct Creation** | Single services, quick deployments | Instant creation, no render.yaml file needed |
### Method Selection Heuristic
Use this decision rule by default unless the user requests a specific method. Analyze the codebase first; only ask if deployment intent is unclear (e.g., DB, workers, cron).
**Use Direct Creation (MCP) when ALL are true:**
- Single service (one web app or one static site)
- No separate worker/cron services
- No attached databases or Key Value
- Simple env vars only (no shared env groups)
If this path fits and MCP isn't configured yet, stop and guide MCP setup before proceeding.
**Use Blueprint when ANY are true:**
- Multiple services (web + worker, API + frontend, etc.)
- Databases, Redis/Key Value, or other datastores are required
- Cron jobs, background workers, or private services
- You want reproducible IaC or a render.yaml committed to the repo
- Monorepo or multi-env setup that needs consistent configuration
If unsure, ask a quick clarifying question, but default to Blueprint for safety. For a single service, strongly prefer Direct Creation via MCP and guide MCP setup if needed.
## Prerequisites Check
When starting a deployment, verify these requirements in order:
**1. Confirm Source Path (Git vs Docker)**
If using Git-based methods (Blueprint or Direct Creation), the repo must be pushed to GitHub/GitLab/Bitbucket. Blueprints that reference a prebuilt image still require a Git repo with `render.yaml`.
```bash
git remote -v
```
- If no remote exists, stop and ask the user to create/push a remote **or** switch to Docker image deploy.
**2. Check MCP Tools Availability (Preferred for Single-Service)**
MCP tools provide the best experience. Check if available by attempting:
```
list_services()
```
If MCP tools are available, you can skip CLI installation for most operations.
**3. Check Render CLI Installation (for Blueprint validation)**
```bash
render --version
```
If not installed, offer to install:
- macOS: `brew install render`
- Linux/macOS: `curl -fsSL https://raw.githubusercontent.com/render-oss/cli/main/bin/install.sh | sh`
**4. MCP Setup (if MCP isn't configured)**
If `list_services()` fails because MCP isn't configured, ask whether they want to set up MCP (preferred) or continue with the CLI fallback. If they choose MCP, ask which AI tool they're using, then provide the matching instructions below. Always use their API key.
### Cursor
Walk the user through these steps:
1) Get a Render API key:
```
https://dashboard.render.com/u/*/settings#api-keys
```
2) Add this to `~/.cursor/mcp.json` (replace `<YOUR_API_KEY>`):
```json
{
"mcpServers": {
"render": {
"url": "https://mcp.render.com/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}
```
3) Restart Cursor, then retry `list_services()`.
### Claude Code
Walk the user through these steps:
1) Get a Render API key:
```
https://dashboard.render.com/u/*/settings#api-keys
```
2) Add the MCP server with Claude Code (replace `<YOUR_API_KEY>`):
```bash
claude mcp add --transport http render https://mcp.render.com/mcp --header "Authorization: Bearer <YOUR_API_KEY>"
```
3) Restart Claude Code, then retry `list_services()`.
### Codex
Walk the user through these steps:
1) Get a Render API key:
```
https://dashboard.render.com/u/*/settings#api-keys
```
2) Set it in their shell:
```bash
export RENDER_API_KEY="<YOUR_API_KEY>"
```
3) Add the MCP server with the Codex CLI:
```bash
codex mcp add render --url https://mcp.render.com/mcp --bearer-token-env-var RENDER_API_KEY
```
4) Restart Codex, then retry `list_services()`.
### Other Tools
If the user is on another AI app, direct them to the Render MCP docs for that tool's setup steps and install method.
### Workspace Selection
After MCP is configured, have the user set the active Render workspace with a prompt like:
```
Set my Render workspace to [WORKSPACE_NAME]
```
**5. Check Authentication (CLI fallback only)**
If MCP isn't available, use the CLI instead and verify you can access your account:
```bash
# Check if user is logged in (use -o json for non-interactive mode)
render whoami -o json
```
If `render whoami` fails or returns empty data, the CLI is not authenticated. The CLI won't always prompt automatically, so explicitly prompt the user to authenticate:
If neither is configured, ask user which method they prefer:
- **API Key (CLI)**: `export RENDER_API_KEY="rnd_xxxxx"` (Get from https://dashboard.render.com/u/*/settings#api-keys)
- **Login**: `render login` (Opens browser for OAuth)
**6. Check Workspace Context**
Verify the active workspace:
```
get_selected_workspace()
```
Or via CLI:
```bash
render workspace current -o json
```
To list available workspaces:
```
list_workspaces()
```
If user needs to switch workspaces, they must do so via Dashboard or CLI (`render workspace set`).
Once prerequisites are met, proceed with deployment workflow.
---
# Method 1: Blueprint Deployment (Recommended for Complex Apps)
## Blueprint Workflow
### Step 1: Analyze Codebase
Analyze the codebase to determine framework/runtime, build and start commands, required env vars, datastores, and port binding. Use the detailed checklists in [references/codebase-analysis.md](references/codebase-analysis.md).
### Step 2: Generate render.yaml
Create a `render.yaml` Blueprint file following the Blueprint specification.
Complete specification: [references/blueprint-spec.md](references/blueprint-spec.md)
**Key Points:**
- Always use `plan: free` unless user specifies otherwise
- Include ALL environment variables the app needs
- Mark secrets with `sync: false` (user fills these in Dashboard)
- Use appropriate service type: `web`, `worker`, `cron`, `static`, or `pserv`
- Use appropriate runtime: [references/runtimes.md](references/runtimes.md)
**Basic Structure:**
```yaml
services:
- type: web
name: my-app
runtime: node
plan: free
buildCommand: npm ci
startCommand: npm start
envVars:
- key: DATABASE_URL
fromDatabase:
name: postgres
property: connectionString
- key: JWT_SECRET
sync: false # User fills in Dashboard
databases:
- name: postgres
databaseName: myapp_db
plan: free
```
**Service Types:**
- `web`: HTTP services, APIs, web applications (publicly accessible)
- `worker`: Background job processors (not publicly accessible)
- `cron`: Scheduled tasks that run on a cron schedule
- `static`: Static sites (HTML/CSS/JS served via CDN)
- `pserv`: Private services (internal only, within same account)
Service type details: [references/service-types.md](references/service-types.md)
Runtime options: [references/runtimes.md](references/runtimes.md)
Template examples: [assets/](assets/)
### Step 2.5: Immediate Next Steps (Always Provide)
After creating `render.yaml`, always give the user a short, explicit checklist and run validation immediately when the CLI is available:
1. **Authenticate (CLI)**: run `render whoami -o json` (if not logged in, run `render login` or set `RENDER_API_KEY`)
2. **Validate (recommended)**: run `render blueprints validate`
- If the CLI isn't installed, offer to install it and provide the command.
3. **Commit + push**: `git add render.yaml && git commit -m "Add Render deployment configuration" && git push origin main`
4. **Open Dashboard**: Use the Blueprint deeplink and complete Git OAuth if prompted
5. **Fill secrets**: Set env vars marked `sync: false`
6. **Deploy**: Click "Apply" and monitor the deploy
### Step 3: Validate Configuration
Validate the render.yaml file to catch errors before deployment. If the CLI is installed, run the commands directly; only prompt the user if the CLI is missing:
```bash
render whoami -o json # Ensure CLI is authenticated (won't always prompt)
render blueprints validate
```
Fix any validation errors before proceeding. Common issues:
- Missing required fields (`name`, `type`, `runtime`)
- Invalid runtime values
- Incorrect YAML syntax
- Invalid environment variable references
Configuration guide: [references/configuration-guide.md](references/configuration-guide.md)
### Step 4: Commit and Push
**IMPORTANT:** You must merge the `render.yaml` file into your repository before deploying.
Ensure the `render.yaml` file is committed and pushed to your Git remote:
```bash
git add render.yaml
git commit -m "Add Render deployment configuration"
git push origin main
```
If there is no Git remote yet, stop here and guide the user to create a GitHub/GitLab/Bitbucket repo, add it as `origin`, and push before continuing.
**Why this matters:** The Dashboard deeplink will read the render.yaml from your repository. If the file isn't merged and pushed, Render won't find the configuration and deployment will fail.
Verify the file is in your remote repository before proceeding to the next step.
### Step 5: Generate Deeplink
Get the Git repository URL:
```bash
git remote get-url origin
```
This will return a URL from your Git provider. **If the URL is SSH format, convert it to HTTPS:**
| SSH Format | HTTPS Format |
|------------|--------------|
| `git@github.com:user/repo.git` | `https://github.com/user/repo` |
| `git@gitlab.com:user/repo.git` | `https://gitlab.com/user/repo` |
| `git@bitbucket.org:user/repo.git` | `https://bitbucket.org/user/repo` |
**Conversion pattern:** Replace `git@<host>:` with `https://<host>/` and remove `.git` suffix.
Format the Dashboard deeplink using the HTTPS repository URL:
```
https://dashboard.render.com/blueprint/new?repo=<REPOSITORY_URL>
```
Example:
```
https://dashboard.render.com/blueprint/new?repo=https://github.com/username/repo-name
```
### Step 6: Guide User
**CRITICAL:** Ensure the user has merged and pushed the render.yaml file to their repository before clicking the deeplink. If the file isn't in the repository, Render cannot read the Blueprint configuration and deployment will fail.
Provide the deeplink to the user with these instructions:
1. **Verify render.yaml is merged** - Confirm the file exists in your repository on GitHub/GitLab/Bitbucket
2. Click the deeplink to open Render Dashboard
3. Complete Git provider OAuth if prompted
4. Name the Blueprint (or use default from render.yaml)
5. Fill in secret environment variables (marked with `sync: false`)
6. Review services and databases configuration
7. Click "Apply" to deploy
The deployment will begin automatically. Users can monitor progress in the Render Dashboard.
### Step 7: Verify Deployment
After the user deploys via Dashboard, verify everything is working.
**Check deployment status via MCP:**
```
list_deploys(serviceId: "<service-id>", limit: 1)
```
Look for `status: "live"` to confirm successful deployment.
**Check for runtime errors (wait 2-3 minutes after deploy):**
```
list_logs(resource: ["<service-id>"], level: ["error"], limit: 20)
```
**Check service health metrics:**
```
get_metrics(
resourceId: "<service-id>",
metricTypes: ["http_request_count", "cpu_usage", "memory_usage"]
)
```
If errors are found, proceed to the **Post-deploy verification and basic triage** section below.
---
# Method 2: Direct Service Creation (Quick Single-Service Deployments)
For simple deployments without Infrastructure-as-Code, create services directly via MCP tools.
## When to Use Direct Creation
- Single web service or static site
- Quick prototypes or demos
- When you don't need a render.yaml file in your repo
- Adding databases or cron jobs to existing projects
## Prerequisites for Direct Creation
**Repository must be pushed to a Git provider.** Render clones your repository to build and deploy services.
```bash
git remote -v # Verify remote exists
git push origin main # Ensure code is pushed
```
Supported providers: GitHub, GitLab, Bitbucket
If no remote exists, stop and ask the user to create/push a remote or switch to Docker image deploy.
**Note:** MCP does not support creating image-backed services. Use the Dashboard/API for prebuilt Docker image deploys.
## Direct Creation Workflow
Use the concise steps below, and refer to [references/direct-creation.md](references/direct-creation.md) for full MCP command examples and follow-on configuration.
### Step 1: Analyze Codebase
Use [references/codebase-analysis.md](references/codebase-analysis.md) to determine runtime, build/start commands, env vars, and datastores.
### Step 2: Create Resources via MCP
Create the service (web or static) and any required databases or key-value stores. See [references/direct-creation.md](references/direct-creation.md).
If MCP returns an error about missing Git credentials or repo access, stop and guide the user to connect their Git provider in the Render Dashboard, then retry.
### Step 3: Configure Environment Variables
Add required env vars via MCP after creation. See [references/direct-creation.md](references/direct-creation.md).
Remind the user that secrets can be set in the Dashboard if they prefer not to pass them via MCP.
### Step 4: Verify Deployment
Check deploy status, logs, and metrics. See [references/direct-creation.md](references/direct-creation.md).
---
For service discovery, configuration details, quick commands, and common issues, see [references/deployment-details.md](references/deployment-details.md).
---
# Post-deploy verification and basic triage (All Methods)
Keep this short and repeatable. If any check fails, fix it before redeploying.
1. Confirm the latest deploy is `live` and serving traffic
2. Hit the health endpoint (or root) and verify a 200 response
3. Scan recent error logs for a clear failure signature
4. Verify required env vars and port binding (`0.0.0.0:$PORT`)
Detailed checklist and commands: [references/post-deploy-checks.md](references/post-deploy-checks.md)
If the service fails to start or health checks time out, use the basic triage guide:
[references/troubleshooting-basics.md](references/troubleshooting-basics.md)
## Troubleshooting
### Escalated Network Access
If deployment fails due to network issues (timeouts, DNS errors, connection resets), rerun the deploy with escalated permissions (use `sandbox_permissions=require_escalated`). The deploy requires escalated network access when sandbox networking blocks outbound requests.
Example guidance to the user:
```
The deploy needs escalated network access to deploy to Render. I can rerun the command with escalated permissions—want me to proceed?
```
Optional: If you need deeper diagnostics (metrics/DB checks/error catalog), suggest installing the
`render-debug` skill. It is not required for the core deploy flow.
Источник: openai/skills / render-deploy ↗. Ссылка проверена 2026-10-10.