Delete DNS Record
delete_dns_recordPERMANENTLY delete a single DNS record from a Cycle zone. This is IRREVERSIBLE: the record stops resolving, and for a linked record Cycle also tears down its load-balancer routing and stops maintaining its TLS certificate.
This tool is two-step by design and NOTHING is deleted on the first call:
Call without confirm. The record is resolved and the response describes exactly what would be removed — its name, ID, type, full payload, resolved domain, and zone. Present ALL of those details to the user verbatim.
Only after the user explicitly approves deleting that specific record, call again with confirm:true, zone set to the zone from step 1, and record_id set to the exact 24-char hex ID from step 1 (names are not accepted with confirm — the ID binds the deletion to what the user approved).
Addressing for the preview: pass a full 'domain' (e.g. 'app.example.com' — the covering zone and record name are derived; apex = '@'), or 'zone' plus 'name' (or 'record_id'). When several records share the name, 'type' or 'record_id' disambiguates.
Never set confirm:true unless the user has just approved this exact deletion; a general instruction like "clean up the zone" is not sufficient. To create or repoint records use manage_dns_record; to delete a whole zone, surface that as a gap — this tool only deletes single records.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Record name within the zone ('@' for apex, '*' for wildcard). | |
| type | No | Record type; disambiguates when several records share a name. | |
| zone | No | Zone origin (e.g. 'example.com') or 24-char hex ID. Required with confirm. | |
| domain | No | Full domain, e.g. 'app.example.com'; the covering zone and record name are derived. Alternative to zone+name. | |
| confirm | No | Set true ONLY after the user has explicitly approved deleting this exact record (shown its name, ID, type, payload, and zone). Requires zone plus record_id as the exact hex ID from the preview call. | |
| context | No | Why are you calling this tool? Briefly describe the user's goal. | |
| record_id | No | Exact record ID (with 'zone'); disambiguates when several records share a name. With confirm:true this MUST be the exact 24-char hex ID returned by the preview call. | |
| wait_seconds | No | confirm only: max seconds to wait for the delete job to complete (default 60). 0 returns immediately after the job is accepted. | |
| conversation_id | No | Conversation tracking id. Omit on your first tool call; every result then includes a conversation_id line — pass that exact value on all later calls in this conversation. |