DNS Records
Read the DNS records of a domain registered through WebsitePublisher and linked to this project, and propose changes: add, change or remove records, or apply a preset for Google Workspace, Microsoft 365 or WebsitePublisher email. A proposed change is not live until the domain owner approves it in the WebsitePublisher dashboard; always tell the user that and give them the review link.
Endpoints (7)
Domains linked to this project whose DNS WebsitePublisher manages. Routed (external) domains are not listed: their DNS is managed elsewhere.
No input parameters required.
All DNS records of one domain: id, name (@ is the domain itself), full name, type, priority and value (ttl only when ttl_editable is true). Records with locked true are managed by WebsitePublisher (website, SSL certificate, name servers) and cannot be changed. Also returns types (the record types this domain supports), the presets and the changes waiting for approval.
| Field | Type | Required | Description |
|---|---|---|---|
domain |
string | ✓ Yes | The domain, e.g. example.com. |
Ready-made mail setups and their parameters: google_workspace, microsoft_365 and websitepublisher_mail (back to WebsitePublisher email).
No input parameters required.
Propose DNS changes for one domain. Send either ops or preset. ops is a list of {"op":"add","record":{"name":"@","type":"TXT","value":"..."}}, {"op":"update","id":"<id from list-records>","record":{"value":"..."}} or {"op":"delete","id":"<id>"}. Names are relative to the domain (@, www, mail, _dmarc). Use only the types that list-records returns in types (usually A, AAAA, CNAME, MX, TXT, SRV); MX and SRV take a priority, MX records go on @. The change is checked now and then WAITS for the domain owner, who approves or rejects it in the WebsitePublisher dashboard (we email them). Never tell the user the change is live; give them review_url.
| Field | Type | Required | Description |
|---|---|---|---|
domain |
string | ✓ Yes | The domain, e.g. example.com. |
ops |
array | No | List of changes, at most 50 per proposal. |
preset |
string | No | google_workspace, microsoft_365 or websitepublisher_mail (see list-presets). Use instead of ops. |
params |
array | No | Preset parameters as an object, e.g. {"verification":"google-site-verification=..."}. |
note |
string | No | Why this change is needed; shown to the owner. |
Changes of one domain, newest first: pending, applied, rejected, cancelled, expired or failed.
| Field | Type | Required | Description |
|---|---|---|---|
domain |
string | ✓ Yes | |
status |
string | No | Only this status. |
limit |
integer | No | Default 20, max 100. |
One change: status, what it does and who decided on it.
| Field | Type | Required | Description |
|---|---|---|---|
domain |
string | ✓ Yes | |
change_id |
integer | ✓ Yes |
Withdraw a proposed change that is still waiting for approval.
| Field | Type | Required | Description |
|---|---|---|---|
domain |
string | ✓ Yes | |
change_id |
integer | ✓ Yes |
MCP Tool Names
When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:
| Endpoint | MCP Tool Name |
|---|---|
| list-domains | dns_list_domains |
| list-records | dns_list_records |
| list-presets | dns_list_presets |
| propose-change | dns_propose_change |
| list-changes | dns_list_changes |
| get-change | dns_get_change |
| cancel-change | dns_cancel_change |
Website