zone-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZONE_API_URL | No | Override the API base URL. | https://api.zone.eu/v2 |
| ZONE_USERNAME | No | ZoneID username. Required with ZONE_API_TOKEN when credentials are not stored in the macOS Keychain. | |
| ZONE_API_TOKEN | No | ZoneID API token. Required with ZONE_USERNAME when credentials are not stored in the macOS Keychain. | |
| ZONE_KEYCHAIN_SERVICE | No | macOS Keychain service the server reads when ZONE_USERNAME and ZONE_API_TOKEN are not set. | zone-ee-api |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Tools for a Zone.ee (zone.eu) hosting account via the ZoneID API v2. Start with list_domains or list_webhostings; a webhosting's name is the vserver argument for the mail/MySQL/cron/SSL tools. DNS record names are FQDNs; get a record's id from list_dns_records before updating or deleting it. For anything without a dedicated tool: find_endpoints → describe_endpoint → zone_api_request. The API allows 60 requests/min per IP, so don't poll. DNSSEC activation and DNS TTLs can't be changed through the API (use https://my.zone.eu).
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_domainsA | List the domains on the ZoneID account with expiry, DNSSEC, autorenew and delegation info. Paginated (see |
| get_domainA | Get one domain's registration details (expiry, DNSSEC, autorenew, delegation) together with its nameservers. |
| list_webhostingsA | List the webhosting packages (virtual servers) on the account: name, package, disk/memory usage and limits, home directory, MySQL host. The |
| get_server_infoC | Server details for a webhosting: IPs, temporary domain, home and document-root paths, MySQL and loopback hostnames, system username, binary paths, phpMyAdmin URL. |
| list_dns_recordsA | List DNS records in a zone. Pass |
| create_dns_recordB | Create a DNS record. |
| update_dns_recordA | Change an existing DNS record (find its |
| delete_dns_recordA | Delete a DNS record by id (from list_dns_records). When the client supports it, the user is asked to confirm first; if they decline, nothing is deleted and the result has status 'declined' (or 'cancelled'). |
| list_mail_accountsA | List the e-mail accounts (mailboxes) on a webhosting, with quota, spam level, forwards and 2FA state. |
| list_mail_forwardersA | List the e-mail forwarders (aliases) on a webhosting and where each one forwards to. |
| create_mail_forwarderB | Create an e-mail forwarder (alias) that forwards |
| update_mail_forwarderA | Replace the destination list and/or comment of an e-mail forwarder. |
| delete_mail_forwarderA | Delete an e-mail forwarder. When the client supports it, the user is asked to confirm first; if they decline, nothing is deleted and the result has status 'declined' (or 'cancelled'). |
| list_mysqlB | List the MySQL databases and database users (with their allowed hosts) on a webhosting. |
| list_cron_jobsA | List the cron jobs on a webhosting: schedule, command or URL, type (http/system), reporting and state. |
| list_ssl_certificatesA | List the SSL certificates on a webhosting, with their hosts and validity. The PEM certificate bodies are left out unless |
| find_endpointsA | Search the ZoneID API v2 reference for endpoints whose path, tag or summary contains every word of |
| describe_endpointA | Show the parameters, request-body fields and response fields of a ZoneID API endpoint from the official OpenAPI spec. |
| zone_api_requestA | Call any ZoneID API v2 endpoint, for everything the dedicated tools don't cover (mailbox create/update, autoreplies, MySQL create, cron create, SSH keys, FTP users, Redis, PM2, cloud VPS, domain contacts and renewals…). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Most tools target clearly distinct resources and actions (DNS CRUD, mail forwarder CRUD, read-only listings, API discovery/call). The only overlap is that zone_api_request can perform almost everything the dedicated tools do, but its fallback role is explicitly documented, so misselection risk is low.
Almost all tools follow a predictable snake_case verb_noun pattern such as list_domains, get_domain, create_dns_record, and update_mail_forwarder. The main minor deviation is zone_api_request, which is noun-oriented rather than verb_noun.
19 tools is slightly above the typical compact range, but the server covers several subdomains: DNS, domains, webhosting, mail, MySQL, cron, SSL, and generic API access. The count is reasonable for that breadth, though it is on the heavier side.
DNS records and mail forwarders have full lifecycle coverage, while several other resources are read-only through dedicated tools. The find/describe/zone_api_request trio provides a workable escape hatch for missing operations such as mailbox creation, MySQL creation, cron creation, and renewals, so there are no hard dead ends.