Connect your AI Agents to Render in minutes

Available tools
list_deploys
List deploys for a Render service, ordered newest first. Returns deploy IDs, statuses, triggers, and timestamps. Use cursor from page_info to fetch more pages. Use list_services to find valid service IDs.
get_deploy
Get a single deploy by ID for a Render service. Returns status, trigger, commit, image, and timestamps. Use list_deploys to find valid deploy IDs.
trigger_deploy
Trigger a new deploy for a Render service. Optionally specify a commit SHA, Docker image URL, or whether to clear the build cache. Use list_services to find valid service IDs.
cancel_deploy
Cancel an in-progress deploy for a Render service. Only deploys that are currently building or pending can be canceled. Use list_deploys to find valid deploy IDs.
rollback_deploy
Roll back a Render service to a previous deploy. The specified deploy must have previously reached 'live' status. Use list_deploys to find valid deploy IDs.
list_disks
List persistent disks with optional filters by serviceId or ownerId. Supports cursor pagination; pass cursor from page_info to fetch the next page.
get_disk
Retrieve a single persistent disk by ID. Use list_disks to find valid IDs.
create_disk
Create a persistent disk and attach it to a service. Requires name, sizeGB, serviceId, and mountPath. Use list_disks to verify the disk was created.
update_disk
Update a persistent disk's name or size. Disk size can only be increased, not decreased. Use list_disks to find valid IDs.
delete_disk
Permanently delete a persistent disk. This cannot be undone and will detach the disk from its service. Use list_disks to find valid IDs.
list_custom_domains
List custom domains attached to a Render service. Returns domain IDs, names, verification status, and DNS configuration. Supports cursor pagination.
get_custom_domain
Retrieve a single custom domain by ID. Returns domain name, type, verification status, and server configuration. Use list_custom_domains to find valid IDs.
create_custom_domain
Add a custom domain to a Render service. Provide the fully qualified domain name (e.g. 'app.example.com'). After creating, call verify_custom_domain once DNS is configured.
delete_custom_domain
Remove a custom domain from a Render service. This cannot be undone. Use list_custom_domains to find valid domain IDs.
verify_custom_domain
Trigger DNS verification for a custom domain. Call this after configuring DNS records to confirm ownership. Use list_custom_domains to find valid domain IDs.
list_env_groups
List environment groups in your Render account with optional filters by name or ownerId. Supports cursor pagination. Use get_env_group to fetch full details for a specific group.
get_env_group
Retrieve a single environment group by ID, including its environment variables, secret files, and linked services. Use list_env_groups to find valid IDs.
create_env_group
Create a new environment group. Provide a name and ownerId (required). Optionally include initial envVars, secretFiles, and serviceIds to link on creation.
update_env_group
Update an environment group's name. Use list_env_groups to find valid group IDs. To update env vars or secret files, use the dedicated update tools.
delete_env_group
Permanently delete an environment group. This cannot be undone. Linked services will lose access to the group's variables. Use list_env_groups to find valid IDs.
link_env_group_service
Link a service to an environment group so it can consume the group's variables. Use list_env_groups to find group IDs and list_services to find service IDs.
unlink_env_group_service
Unlink a service from an environment group. The service will lose access to the group's variables. Use get_env_group to find linked service IDs.
list_env_vars
List all environment variables for a Render service. Returns key/value pairs with pagination. Use list_services to find valid service IDs.
get_env_var
Get a single environment variable by key for a Render service. Use list_env_vars to find valid keys.
update_env_var
Add or update a single environment variable on a Render service. Creates the variable if it does not exist. Use list_services to find valid service IDs.
delete_env_var
Delete an environment variable from a Render service by key. Use list_env_vars to find valid keys.
replace_env_vars
Replace ALL environment variables on a Render service with the provided list. WARNING: removes any existing variables not included in the new list. Each item must have 'key' and 'value'. Use list_services to find valid service IDs.
list_secret_files
List all secret files for a Render service. Returns file names and content with pagination. Use list_services to find valid service IDs.
get_secret_file
Get a single secret file by name for a Render service. Use list_secret_files to find valid names.
update_secret_file
Update the content of a secret file on a Render service. Use list_secret_files to find valid names.
delete_secret_file
Delete a secret file from a Render service by name. Use list_secret_files to find valid names.
replace_secret_files
Replace ALL secret files on a Render service with the provided list. WARNING: removes any existing files not included in the new list. Each item must have 'name' and 'content'. Use list_services to find valid service IDs.
list_jobs
List one-off jobs for a Render service. Returns job IDs, statuses, start commands, and timestamps. Use cursor from page_info to fetch more pages. Use list_services to find valid service IDs.
get_job
Get a single one-off job by ID for a Render service. Returns status, start command, plan, and timestamps. Use list_jobs to find valid job IDs.
create_job
Create and run a one-off job on a Render service. Provide the command to run; optionally specify a plan ID for compute resources. Use list_services to find valid service IDs.
cancel_job
Cancel a running one-off job for a Render service. Only jobs in a running or pending state can be canceled. Use list_jobs to find valid job IDs.
trigger_cron_job
Manually trigger a cron job to run immediately outside its schedule. Use list_services to find valid cron job service IDs.
cancel_cron_job
Cancel a currently running cron job execution. Only cron jobs that are actively running can be canceled. Use list_services to find valid cron job service IDs.
list_key_value
List all Key-Value (Redis-compatible) instances. Filter by name or ownerId. Returns IDs, names, plans, regions, and statuses. Use page_info.cursor for the next page.
get_key_value
Retrieve a single Key-Value instance by ID. Returns plan, region, status, maxmemory policy, and IP allow-list. Use list_key_value to find valid IDs.
create_key_value
Create a new Key-Value (Redis-compatible) instance. Requires name, ownerId, and plan. Optionally set region, maxmemory policy, and IP allow-list.
update_key_value
Update a Key-Value instance. Modify name, plan, maxmemory policy, or IP allow-list. Use list_key_value to find valid IDs.
delete_key_value
Permanently delete a Key-Value instance. This cannot be undone. Use list_key_value to find valid IDs.
suspend_key_value
Suspend a Key-Value instance, stopping it and halting billing. Use list_key_value to find valid IDs.
resume_key_value
Resume a previously suspended Key-Value instance. Use list_key_value to find valid IDs.
get_key_value_connection_info
Retrieve connection details for a Key-Value instance, including internal/external connection strings and host/port. Use list_key_value to find valid IDs.
list_owners
List all Render workspace owners (teams and users). Supports cursor pagination and optional filtering by name or email.
get_owner
Retrieve a single Render workspace owner by ID. Use list_owners to find valid owner IDs.
list_owner_members
List members of a Render workspace/owner. Supports cursor pagination. Use list_owners to find valid owner IDs.
list_postgres
List all managed PostgreSQL databases. Filter by name, owner IDs, or include replicas. Use cursor from page_info to paginate. Returns database IDs, plans, regions, and status.
get_postgres
Get details of a managed PostgreSQL database by ID, including plan, region, status, version, and connection info. Use list_postgres to find valid IDs.
create_postgres
Create a new managed PostgreSQL database. Requires name, ownerId, and plan. Optionally set region, version, disk size, high availability, read replicas, and IP allow-list.
update_postgres
Update a managed PostgreSQL database's name, plan, or IP allow-list. Use list_postgres to find valid IDs.
delete_postgres
Permanently delete a managed PostgreSQL database. This cannot be undone. Use list_postgres to find valid IDs.
restart_postgres
Restart a managed PostgreSQL database. This causes a brief interruption. Use list_postgres to find valid IDs.
suspend_postgres
Suspend a managed PostgreSQL database, stopping compute while retaining data. Use list_postgres to find valid IDs.
resume_postgres
Resume a suspended managed PostgreSQL database. Use list_postgres to find valid IDs.
get_postgres_connection_info
Get connection strings for a managed PostgreSQL database, including external and internal connection strings and psql command. Use list_postgres to find valid IDs.
create_postgres_user
Create a new user in a managed PostgreSQL database. Use list_postgres to find valid database IDs.
list_postgres_users
List all users in a managed PostgreSQL database. Use cursor from page_info to paginate. Use list_postgres to find valid database IDs.
delete_postgres_user
Delete a user from a managed PostgreSQL database. Use list_postgres_users to find valid usernames. Use list_postgres to find valid database IDs.
list_projects
List Render projects with optional filters by name or ownerId. Returns paginated results. Use cursor from page_info to fetch the next page.
get_project
Retrieve a single Render project by ID. Use list_projects to find valid project IDs.
create_project
Create a new Render project. Requires a name and an ownerId (team or user). A project must have at least one environment; if none are supplied, a single 'production' environment is created automatically. Optionally supply environments as a list of objects like [{'name': 'staging'}].
update_project
Update a Render project's name. Use list_projects to find valid project IDs.
delete_project
Permanently delete a Render project. This cannot be undone. Use list_projects to find valid project IDs.
list_environments
List environments within a Render project. Returns paginated results. Use list_projects to find valid project IDs. Use cursor from page_info for the next page.
get_environment
Retrieve a single environment by environment ID. Use list_environments to find valid environment IDs.
create_environment
Create a new environment in a Render project. Requires a project ID and environment name. Use list_projects to find valid project IDs.
update_environment
Update an environment's name or protected status. Use list_projects and list_environments to find valid IDs.
delete_environment
Permanently delete an environment from a Render project. This cannot be undone. Use list_projects and list_environments to find valid IDs.
add_environment_resources
Add one or more resources to a Render environment by resource IDs. Use list_environments to find valid environment IDs.
remove_environment_resources
Remove one or more resources from a Render environment by resource IDs. Use list_environments to find valid environment IDs.
list_services
List Render services with optional filters: name, type, env, region, suspended, ownerId. Supports cursor pagination. Use get_service to fetch full details for a specific service.
get_service
Retrieve full details for a single Render service by ID. Use list_services to find valid service IDs.
create_service
Create a new Render service. Required: type (static_site, web_service, private_service, background_worker, cron_job), name, ownerId. Provide repo/branch for Git-backed services or image for Docker-backed services. Use serviceDetails for build/start commands and plan.
update_service
Update a Render service's name, branch, autoDeploy setting, or serviceDetails. Use list_services to find valid service IDs.
delete_service
Permanently delete a Render service and all its associated resources. This cannot be undone. Use list_services to find valid service IDs.
restart_service
Restart a running Render service. Use list_services to find valid service IDs.
suspend_service
Suspend a Render service, stopping all running instances. Use resume_service to bring it back. Use list_services to find valid service IDs.
resume_service
Resume a suspended Render service. Use list_services to find valid service IDs.
scale_service
Scale a Render service to the specified number of instances. Requires a paid plan. Use list_services to find valid service IDs.
purge_service_cache
Purge the build cache for a Render service. The next deploy will rebuild from scratch. Use list_services to find valid service IDs.
list_service_instances
List running instances for a Render service. Supports cursor pagination. Use list_services to find valid service IDs.
list_service_events
List events for a Render service (deploys, restarts, suspensions, etc.). Supports cursor pagination. Use list_services to find valid service IDs.
validate_credential
Validate the Render API key with a lightweight workspaces lookup.
list_webhooks
List Render webhooks with optional owner filter. Supports cursor pagination. Use get_webhook to fetch full details for a specific webhook.
get_webhook
Retrieve full details for a single Render webhook by ID. Use list_webhooks to find valid webhook IDs.
create_webhook
Create a new Render webhook. Required: name, url, ownerId. Optionally specify enabled and eventFilter (list of event type strings). Use list_webhooks to browse existing webhooks.
update_webhook
Update a Render webhook's name, url, enabled state, or eventFilter. Use list_webhooks to find valid webhook IDs.
delete_webhook
Permanently delete a Render webhook by ID. Use list_webhooks to find valid webhook IDs.
list_webhook_events
List events delivered to a Render webhook. Supports cursor pagination. Use list_webhooks to find valid webhook IDs.

How to set up Merge Agent Handler
In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}FAQs on using Merge's Render MCP server
FAQs on using Merge's Render MCP server
What is a Render MCP?
It's an MCP server that gives your agents access to a Render account through tools. Your agents can invoke them to list services, inspect deploys, query logs, manage environment variables, and more.
Render offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
How can I use the Render MCP server?
The use cases naturally depend on the agent you've built, but here are a few common ones:
- Deploy investigation: when a deploy fails, an agent can pull the service's recent deploys and logs from Render and surface the error to the engineer who pushed the change
- Service health summaries: an agent can check the status of every service in a workspace and post a morning digest of which ones are live, building, or failed
- Log triage from Slack: an engineer can ask their AI to fetch the last hundred error lines for a service, and the agent returns and explains them without a context switch
- Config drift checks: an agent can compare environment variables across a staging and production service and flag any that differ before a release
What are popular tools for Render's MCP server?
Here are some of the most commonly used tools:
list_services: returns the services in a workspace with their type and status. Useful for agents that need an inventory before acting on a specific service
get_service: returns configuration and status for a single service. Call this when an agent needs detail on one service before troubleshooting
list_deploys: returns deploy history for a service, including status and commit. Good for workflows that investigate a recent release
get_logs: returns log output for a service over a time range. Use this when an agent needs to read runtime errors or trace an issue
update_env_vars: sets or updates environment variables on a service. Helpful when an agent rotates a value or aligns config across environments
list_databases: returns managed Postgres instances and their status. Useful for agents that check database health alongside the services that depend on it
What makes Merge Agent Handler's Render MCP server better than alternative Render MCP servers?
There are a handful of reasons to reach for Merge Agent Handler's Render MCP server instead of building or using an alternative:
- Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Render, this means environment variables, secrets, and database connection strings can be withheld even when an agent can read service config
- Managed authentication and credentials: Merge stores and refreshes Render credentials on your behalf. You never expose raw API keys to an agent or manage rotation manually, which matters given how broadly scoped Render API keys are
- Real-time observability and audit trail: Every tool call made against Render is logged with timestamp, tool name, input parameters, and response metadata. You get a record of exactly which services and config an agent touched without instrumenting anything
- Tool Packs and controlled access: Tool Packs let you bundle specific Render tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more
How can I start using Merge Agent Handler's Render MCP server?
You can take the following steps:
1. Create or log into your Merge Agent Handler account.
2. Install the Merge CLI by running pipx install merge-api, then run merge configure to link the CLI to your Merge account and merge login to authenticate your session.
3. Register the Agent Handler MCP server with Claude Code by running claude mcp add --transport http agent-handler https://ah-api.merge.dev/mcp, then open Claude Code and run /mcp to confirm agent-handler appears with a connected status.
4. Select agent-handler from the MCP list. This opens a browser window where you select which integrations to authenticate. Choose Render and complete the auth flow. Merge stores and manages the credentials going forward.
5. Open a Claude Code session and start querying Render data directly. The first time you use a Render tool, a Magic Link may appear to complete connector authentication.
If you want to connect Merge Agent Handler's Render MCP with internal or customer-facing agentic products, you can follow the steps in our docs.
Can employees use Merge Agent Handler to connect their AI tools to Render?
Yes, Agent Handler for Employees lets your employees connect Claude, ChatGPT, Microsoft Copilot, Cursor, and other MCP-compatible AI tools to Render without bypassing IT governance.
Instead of setting up direct connections with personal credentials that IT can't monitor or revoke, each employee authenticates through Agent Handler and gets individual credentials tied to their identity. An engineer can ask their AI to check a service's status, read its logs, or compare environment variables, all within the permissions IT has defined.
IT also provisions access by role or group via SCIM. A backend engineer, for example, gets Render access to inspect service logs, GitHub to review the related commit, and Sentry to correlate the error; while a DevOps engineer gets Render access to check deploy status and env vars, Datadog to watch infrastructure metrics, and Slack to update the team.
Every tool call an employee's AI makes to Render is also inspected against your DLP rules and logged to a searchable audit trail, giving security teams full visibility into what data was accessed and by whom.
Ready to try it out?
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now























