manage_domain_dns
Read or replace a domain's DNS records with validated typed records.
# MCP tool reference
1 callable tools.
Use tools/call at https://mcp.schedulerzero.com/mcp with the exact tool name and arguments below. The /tools/ paths in this view are documentation identifiers, not HTTP endpoints. Request execution is disabled for this reference.
Inputs are shown for personal API keys (bound) and for OAuth/delegated agents. Output schemas describe MCP structuredContent: native objects pass through; arrays, scalars and null use a data wrapper. Text content retains the native JSON result.
[Connect a client](/mcp/connect) · [Authentication and authorization](/authentication) · [Generated auth guide](/auth.md) · [Download tool catalog](/mcp-catalog.json) · [Agent documentation](/llms.txt)
## manage_domain_dns
Read or replace a domain's DNS records with validated typed records.
Use to fix DNS for a sending domain or change where its website goes; confirm the full record set with a person before replacing it.
Replacing records removes any not included; mail authentication (SPF/DKIM) belongs to the connected mailbox provider.
Obtain the user's explicit authorization before invoking a write or destructive action. This is a client interaction requirement, not a server-issued approval token.
Scopes: domain:manage_dns
Risk: destructive; confirmation: explicit; idempotency: supported.
### Input schema (personal API key)
```json
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"domainId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"action": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"read"
]
}
},
"required": [
"kind"
],
"patternProperties": {
"^(?!(?:kind)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"kind"
]
}
]
}
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"replace"
]
},
"request": {
"type": "object",
"properties": {
"records": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"A"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"pattern": "^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$"
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"AAAA"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 2,
"maxLength": 45,
"pattern": "^[0-9A-Fa-f:.]+$"
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"CNAME"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.)*[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.?$"
}
},
"required": [
"type",
"host",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MX"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.)*[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.?$"
},
"priority": {
"type": "integer",
"minimum": 0,
"maximum": 65535
}
},
"required": [
"type",
"value",
"priority"
],
"patternProperties": {
"^(?!(?:type|host|value|priority)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"priority"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"TXT"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"FORWARD"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"$ref": "#/$defs/HttpUrl"
},
"forwardingType": {
"type": "string",
"enum": [
"301",
"302"
]
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value|forwardingType)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"forwardingType"
]
}
}
]
},
"maxItems": 20
}
},
"required": [
"records"
],
"patternProperties": {
"^(?!(?:records)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"records"
]
}
]
}
}
},
"required": [
"kind",
"request"
],
"patternProperties": {
"^(?!(?:kind|request)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"kind",
"request"
]
}
}
]
}
},
"required": [
"workspaceId",
"domainId",
"action"
],
"patternProperties": {
"^(?!(?:workspaceId|domainId|action)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"workspaceId",
"domainId",
"action"
]
},
"$defs": {
"HttpUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
}
}
}
```
### Input schema (OAuth / delegated agent)
```json
{
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"domainId": {
"type": "string",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
"format": "uuid"
},
"action": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"read"
]
}
},
"required": [
"kind"
],
"patternProperties": {
"^(?!(?:kind)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"kind"
]
}
]
}
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"replace"
]
},
"request": {
"type": "object",
"properties": {
"records": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"A"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"pattern": "^(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)$"
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"AAAA"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 2,
"maxLength": 45,
"pattern": "^[0-9A-Fa-f:.]+$"
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"CNAME"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.)*[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.?$"
}
},
"required": [
"type",
"host",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MX"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"pattern": "^(?:[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.)*[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?\\.?$"
},
"priority": {
"type": "integer",
"minimum": 0,
"maximum": 65535
}
},
"required": [
"type",
"value",
"priority"
],
"patternProperties": {
"^(?!(?:type|host|value|priority)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"priority"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"TXT"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 2048
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"FORWARD"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 253,
"pattern": "^(?:|@|(?:\\*|[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)(?:\\.[A-Za-z0-9_](?:[A-Za-z0-9_-]{0,61}[A-Za-z0-9_])?)*)$"
},
"value": {
"$ref": "#/$defs/HttpUrl"
},
"forwardingType": {
"type": "string",
"enum": [
"301",
"302"
]
}
},
"required": [
"type",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value|forwardingType)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"forwardingType"
]
}
}
]
},
"maxItems": 20
}
},
"required": [
"records"
],
"patternProperties": {
"^(?!(?:records)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"records"
]
}
]
}
}
},
"required": [
"kind",
"request"
],
"patternProperties": {
"^(?!(?:kind|request)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"kind",
"request"
]
}
}
]
}
},
"required": [
"workspaceId",
"domainId",
"action"
],
"patternProperties": {
"^(?!(?:workspaceId|domainId|action)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"workspaceId",
"domainId",
"action"
]
},
"$defs": {
"HttpUrl": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
}
}
}
```
### Output schema (structuredContent)
```json
{
"type": "object",
"anyOf": [
{
"allOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"records": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"A",
"AAAA",
"CNAME",
"TXT"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"value": {
"type": "string",
"minLength": 0,
"maxLength": 2048
}
},
"required": [
"type",
"host",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MX"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"value": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"priority": {
"type": "integer",
"minimum": 0,
"maximum": 65535
}
},
"required": [
"type",
"host",
"value",
"priority"
],
"patternProperties": {
"^(?!(?:type|host|value|priority)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"priority"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"FORWARD"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"value": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"forwardingType": {
"anyOf": [
{
"type": "string",
"enum": [
"301",
"302"
]
},
{
"type": "null"
}
]
}
},
"required": [
"type",
"host",
"value",
"forwardingType"
],
"patternProperties": {
"^(?!(?:type|host|value|forwardingType)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"forwardingType"
]
}
}
]
},
"maxItems": 100
}
},
"required": [
"records"
],
"patternProperties": {
"^(?!(?:records)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"records"
]
}
]
}
},
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"enum": [
true
]
},
"recordCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"ok",
"recordCount"
],
"patternProperties": {
"^(?!(?:ok|recordCount)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"ok",
"recordCount"
]
}
}
]
},
{
"type": "object"
}
]
},
{
"type": "object",
"properties": {
"data": {
"allOf": [
{
"anyOf": [
{
"type": "object",
"properties": {
"records": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"A",
"AAAA",
"CNAME",
"TXT"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"value": {
"type": "string",
"minLength": 0,
"maxLength": 2048
}
},
"required": [
"type",
"host",
"value"
],
"patternProperties": {
"^(?!(?:type|host|value)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"MX"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"value": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"priority": {
"type": "integer",
"minimum": 0,
"maximum": 65535
}
},
"required": [
"type",
"host",
"value",
"priority"
],
"patternProperties": {
"^(?!(?:type|host|value|priority)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"priority"
]
}
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"FORWARD"
]
},
"host": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"value": {
"type": "string",
"minLength": 0,
"maxLength": 2048
},
"forwardingType": {
"anyOf": [
{
"type": "string",
"enum": [
"301",
"302"
]
},
{
"type": "null"
}
]
}
},
"required": [
"type",
"host",
"value",
"forwardingType"
],
"patternProperties": {
"^(?!(?:type|host|value|forwardingType)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"type",
"host",
"value",
"forwardingType"
]
}
}
]
},
"maxItems": 100
}
},
"required": [
"records"
],
"patternProperties": {
"^(?!(?:records)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"anyOf": [
{
"type": "string",
"enum": [
"records"
]
}
]
}
},
{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"enum": [
true
]
},
"recordCount": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"ok",
"recordCount"
],
"patternProperties": {
"^(?!(?:ok|recordCount)$)[\\s\\S]*$": false
},
"additionalProperties": true,
"propertyNames": {
"type": "string",
"enum": [
"ok",
"recordCount"
]
}
}
]
},
{
"not": {
"type": "object"
}
}
]
}
},
"required": [
"data"
],
"additionalProperties": false
}
]
}
```
### Underlying API operations
- `domains.dnsRecords`: `GET /v1/workspaces/:workspaceId/domains/:domainId/dns`
- `domains.setDnsRecords`: `POST /v1/workspaces/:workspaceId/domains/:domainId/dns`