References

Domain & DNS Tools

MCP tools for managing custom domains, DNS zones, and DNS records

These tools give your agent full programmatic control over domains and DNS. Your agent can assign custom domains to services, manage DNS zones, and create any record type — enabling custom service routing, email configuration, domain verification, and more.

add_custom_domain

Attach a custom domain to a deployed service. Creates a DNS record and configures TLS automatically.

ParameterTypeRequiredDefaultDescription
namestringyesName of the service to attach a custom domain to
domainstringyesCustom domain (e.g. api.apps.example.com). Must be under a delegated zone
workspacestringnodefaultWorkspace slug
projectstringnodefaultProject name

Returns: service_id, domain, status, message

The domain must be within an active delegated zone. Ink creates the DNS record and provisions a TLS certificate automatically.

remove_custom_domain

Remove a custom domain from a service. Reverts to the default *.ml.ink URL.

ParameterTypeRequiredDefaultDescription
namestringyesName of the service to remove custom domain from
workspacestringnodefaultWorkspace slug
projectstringnodefaultProject name

Returns: service_id, message

list_delegations

List all delegated DNS zones with their status. Zone delegation can be set up at ml.ink/dns.

ParameterTypeRequiredDefaultDescription
workspacestringnodefaultWorkspace slug

Returns: Array of zones with zone_id, zone, status, error, created_at

Zone status values: pending_verification, pending_delegation, provisioning, active, failed

list_dns_records

List all DNS records within a delegated zone. Shows both user-created and managed (system) records.

ParameterTypeRequiredDefaultDescription
zonestringyesThe hosted zone (e.g. example.com)
workspacestringnodefaultWorkspace slug

Returns: Array of records with id, name, type, content, ttl, managed, created_at

add_dns_record

Add a DNS record to a hosted zone. Managed records (created by the system) cannot be overwritten.

ParameterTypeRequiredDefaultDescription
zonestringyesThe hosted zone (e.g. example.com)
namestringyesRecord name (e.g. www or mail.sub)
typestringyesRecord type. Values: A, AAAA, CNAME, MX, TXT, CAA
contentstringyesRecord value (e.g. IP address, hostname, or text)
ttlintegerno300TTL in seconds
workspacestringnodefaultWorkspace slug

Returns: record object with id, name, type, content, ttl, managed, created_at

Examples by record type

A record — Point a subdomain to an IP address:

Tool Call
add_dns_record(
  : "apps.example.com",
  : "api",
  "type": ,
  : "1.2.3.4"
)

MX record — Route email to a mail provider:

Tool Call
add_dns_record(
  "zone": "apps.example.com",
  "name": ,
  "type": ,
  : "10 mail.example.com"
)

TXT record — Email authentication (SPF, DKIM, DMARC) or domain verification:

Tool Call
add_dns_record(
  "zone": "apps.example.com",
  "name": "@",
  "type": ,
  "content": 
)

CNAME record — Alias to another domain:

Tool Call
add_dns_record(
  "zone": "apps.example.com",
  : "docs",
  "type": ,
  : "docs.example.com"
)

CAA record — Restrict which CAs can issue certificates:

Tool Call
add_dns_record(
  "zone": "apps.example.com",
  "name": "@",
  "type": ,
  : "0 issue letsencrypt.org"
)

delete_dns_record

Delete a DNS record from a delegated zone. Managed records (auto-created by Ink for custom domains) cannot be deleted.

ParameterTypeRequiredDefaultDescription
zonestringyesThe hosted zone (e.g. example.com)
record_idstringyesID of the DNS record to delete (from list_dns_records)
workspacestringnodefaultWorkspace slug

Returns: message

On this page