
List deploys for a Render service, ordered newest first. Returns deploy IDs, statuses, triggers, and timestamps. Use cursor from pageinfo to fetch more pages. Use listservices to find valid service IDs.
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 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 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.
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 persistent disks with optional filters by serviceId or ownerId. Supports cursor pagination; pass cursor from page_info to fetch the next page.
Retrieve a single persistent disk by ID. Use list_disks to find valid IDs.
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 a persistent disk's name or size. Disk size can only be increased, not decreased. Use list_disks to find valid IDs.
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 attached to a Render service. Returns domain IDs, names, verification status, and DNS configuration. Supports cursor pagination.
Retrieve a single custom domain by ID. Returns domain name, type, verification status, and server configuration. Use listcustomdomains to find valid IDs.
Add a custom domain to a Render service. Provide the fully qualified domain name (e.g. 'app.example.com'). After creating, call verifycustomdomain once DNS is configured.
Remove a custom domain from a Render service. This cannot be undone. Use listcustomdomains to find valid domain IDs.
Trigger DNS verification for a custom domain. Call this after configuring DNS records to confirm ownership. Use listcustomdomains to find valid domain IDs.
List environment groups in your Render account with optional filters by name or ownerId. Supports cursor pagination. Use getenvgroup to fetch full details for a specific group.
Retrieve a single environment group by ID, including its environment variables, secret files, and linked services. Use listenvgroups to find valid IDs.
Create a new environment group. Provide a name and ownerId (required). Optionally include initial envVars, secretFiles, and serviceIds to link on creation.
Update an environment group's name. Use listenvgroups to find valid group IDs. To update env vars or secret files, use the dedicated update tools.
Permanently delete an environment group. This cannot be undone. Linked services will lose access to the group's variables. Use listenvgroups to find valid IDs.
Link a service to an environment group so it can consume the group's variables. Use listenvgroups to find group IDs and list_services to find service IDs.
Unlink a service from an environment group. The service will lose access to the group's variables. Use getenvgroup to find linked service IDs.
List all environment variables for a Render service. Returns key/value pairs with pagination. Use list_services to find valid service IDs.
Get a single environment variable by key for a Render service. Use listenvvars to find valid keys.
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 an environment variable from a Render service by key. Use listenvvars to find valid keys.
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 all secret files for a Render service. Returns file names and content with pagination. Use list_services to find valid service IDs.
Get a single secret file by name for a Render service. Use listsecretfiles to find valid names.
Update the content of a secret file on a Render service. Use listsecretfiles to find valid names.
Delete a secret file from a Render service by name. Use listsecretfiles to find valid names.
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 one-off jobs for a Render service. Returns job IDs, statuses, start commands, and timestamps. Use cursor from pageinfo to fetch more pages. Use listservices to find valid service IDs.
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 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 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.
Manually trigger a cron job to run immediately outside its schedule. Use list_services to find valid cron job service IDs.
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 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.
Retrieve a single Key-Value instance by ID. Returns plan, region, status, maxmemory policy, and IP allow-list. Use listkeyvalue to find valid IDs.
Create a new Key-Value (Redis-compatible) instance. Requires name, ownerId, and plan. Optionally set region, maxmemory policy, and IP allow-list.
Update a Key-Value instance. Modify name, plan, maxmemory policy, or IP allow-list. Use listkeyvalue to find valid IDs.
Permanently delete a Key-Value instance. This cannot be undone. Use listkeyvalue to find valid IDs.
Suspend a Key-Value instance, stopping it and halting billing. Use listkeyvalue to find valid IDs.
Resume a previously suspended Key-Value instance. Use listkeyvalue to find valid IDs.
Retrieve connection details for a Key-Value instance, including internal/external connection strings and host/port. Use listkeyvalue to find valid IDs.
List all Render workspace owners (teams and users). Supports cursor pagination and optional filtering by name or email.
Retrieve a single Render workspace owner by ID. Use list_owners to find valid owner IDs.
List members of a Render workspace/owner. Supports cursor pagination. Use list_owners to find valid owner IDs.
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 details of a managed PostgreSQL database by ID, including plan, region, status, version, and connection info. Use list_postgres to find valid IDs.
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 a managed PostgreSQL database's name, plan, or IP allow-list. Use list_postgres to find valid IDs.
Permanently delete a managed PostgreSQL database. This cannot be undone. Use list_postgres to find valid IDs.
Restart a managed PostgreSQL database. This causes a brief interruption. Use list_postgres to find valid IDs.
Suspend a managed PostgreSQL database, stopping compute while retaining data. Use list_postgres to find valid IDs.
Resume a suspended managed PostgreSQL database. Use list_postgres to find valid IDs.
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 a new user in a managed PostgreSQL database. Use list_postgres to find valid database IDs.
List all users in a managed PostgreSQL database. Use cursor from pageinfo to paginate. Use listpostgres to find valid database IDs.
Delete a user from a managed PostgreSQL database. Use listpostgresusers to find valid usernames. Use list_postgres to find valid database IDs.
List Render projects with optional filters by name or ownerId. Returns paginated results. Use cursor from page_info to fetch the next page.
Retrieve a single Render project by ID. Use list_projects to find valid project IDs.
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 a Render project's name. Use list_projects to find valid project IDs.
Permanently delete a Render project. This cannot be undone. Use list_projects to find valid project IDs.
List environments within a Render project. Returns paginated results. Use listprojects to find valid project IDs. Use cursor from pageinfo for the next page.
Retrieve a single environment by environment ID. Use list_environments to find valid environment IDs.
Create a new environment in a Render project. Requires a project ID and environment name. Use list_projects to find valid project IDs.
Update an environment's name or protected status. Use listprojects and listenvironments to find valid IDs.
Permanently delete an environment from a Render project. This cannot be undone. Use listprojects and listenvironments to find valid IDs.
Add one or more resources to a Render environment by resource IDs. Use list_environments to find valid environment IDs.
Remove one or more resources from a Render environment by resource IDs. Use list_environments to find valid environment IDs.
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.
Retrieve full details for a single Render service by ID. Use list_services to find valid service IDs.
Create a new Render service. Required: type (staticsite, webservice, privateservice, backgroundworker, 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 a Render service's name, branch, autoDeploy setting, or serviceDetails. Use list_services to find valid service IDs.
Permanently delete a Render service and all its associated resources. This cannot be undone. Use list_services to find valid service IDs.
Restart a running Render service. Use list_services to find valid service IDs.
Suspend a Render service, stopping all running instances. Use resumeservice to bring it back. Use listservices to find valid service IDs.
Resume a suspended Render service. Use list_services to find valid service IDs.
Scale a Render service to the specified number of instances. Requires a paid plan. Use list_services to find valid service IDs.
Purge the build cache for a Render service. The next deploy will rebuild from scratch. Use list_services to find valid service IDs.
List running instances for a Render service. Supports cursor pagination. Use list_services to find valid service IDs.
List events for a Render service (deploys, restarts, suspensions, etc.). Supports cursor pagination. Use list_services to find valid service IDs.
Validate the Render API key with a lightweight workspaces lookup.
List Render webhooks with optional owner filter. Supports cursor pagination. Use get_webhook to fetch full details for a specific webhook.
Retrieve full details for a single Render webhook by ID. Use list_webhooks to find valid webhook IDs.
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 a Render webhook's name, url, enabled state, or eventFilter. Use list_webhooks to find valid webhook IDs.
Permanently delete a Render webhook by ID. Use list_webhooks to find valid webhook IDs.
List events delivered to a Render webhook. Supports cursor pagination. Use list_webhooks to find valid webhook IDs.

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}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.
The use cases naturally depend on the agent you've built, but here are a few common ones:
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 serviceget_service: returns configuration and status for a single service. Call this when an agent needs detail on one service before troubleshootinglist_deploys: returns deploy history for a service, including status and commit. Good for workflows that investigate a recent releaseget_logs: returns log output for a service over a time range. Use this when an agent needs to read runtime errors or trace an issueupdate_env_vars: sets or updates environment variables on a service. Helpful when an agent rotates a value or aligns config across environmentslist_databases: returns managed Postgres instances and their status. Useful for agents that check database health alongside the services that depend on itThere are a handful of reasons to reach for Merge Agent Handler's Render MCP server instead of building or using an alternative:
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.
Yes, Merge for Workforce 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 Merge 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.
Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now