hestiacp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HESTIACP_URL | Yes | Full HestiaCP API URL. `/api/` is added when the URL has no path. | |
| HESTIACP_ACCESS_KEY | Yes | Dedicated access-key ID. | |
| HESTIACP_SECRET_KEY | Yes | Access-key secret. | |
| HESTIACP_TIMEOUT_MS | No | Request timeout, 1–120 seconds. | 30000 |
| HESTIACP_ALLOW_MUTATIONS | No | Enables additive and state-changing tools. | false |
| HESTIACP_ALLOW_DESTRUCTIVE | No | Enables destructive tools; mutations must also be enabled. | false |
| HESTIACP_MAX_RESPONSE_BYTES | No | Maximum accepted response size. | 1000000 |
| HESTIACP_LONG_RUNNING_TIMEOUT_MS | No | Timeout for backups and certificate issuance, 30 seconds–1 hour. | 900000 |
| HESTIACP_TLS_REJECT_UNAUTHORIZED | No | TLS certificate and hostname verification. Disabling is for isolated development only. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
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_usersB | List HestiaCP users. Executes verified command v-list-users. |
| get_userA | Get one HestiaCP user. Executes verified command v-list-user. |
| list_web_domainsB | List a user's web domains. Executes verified command v-list-web-domains. |
| get_web_domainC | Get one web domain. Executes verified command v-list-web-domain. |
| list_dns_domainsA | List a user's DNS zones. Executes verified command v-list-dns-domains. |
| get_dns_domainA | Get one DNS zone. Executes verified command v-list-dns-domain. |
| list_dns_recordsC | List records in a DNS zone. Executes verified command v-list-dns-records. |
| list_mail_domainsA | List a user's mail domains. Executes verified command v-list-mail-domains. |
| get_mail_domainA | Get one mail domain. Executes verified command v-list-mail-domain. |
| list_mail_accountsA | List accounts in a mail domain. Executes verified command v-list-mail-accounts. |
| list_databasesC | List a user's databases. Executes verified command v-list-databases. |
| get_databaseA | Get one database. Executes verified command v-list-database. |
| list_cron_jobsB | List a user's cron jobs. Executes verified command v-list-cron-jobs. |
| list_user_backupsB | List a user's backups. Executes verified command v-list-user-backups. |
| get_system_infoB | Get HestiaCP system information. Executes verified command v-list-sys-info. |
| get_system_configA | Get an allowlisted, non-sensitive HestiaCP system configuration summary. Executes verified command v-list-sys-config. |
| list_system_servicesA | List system services and status. Executes verified command v-list-sys-services. |
| list_system_ipsA | List configured server IP addresses. Executes verified command v-list-sys-ips. |
| add_userB | Create a HestiaCP user. Executes verified command v-add-user. |
| add_web_domainB | Create a web domain. Executes verified command v-add-web-domain. |
| issue_web_certificateB | Issue or renew a Let's Encrypt certificate for a web domain. Executes verified command v-add-letsencrypt-domain. |
| add_dns_domainB | Create a DNS zone using HestiaCP defaults. Executes verified command v-add-dns-domain. |
| add_dns_recordC | Add a record to an existing DNS zone. Executes verified command v-add-dns-record. |
| add_mail_domainC | Create a mail domain. Executes verified command v-add-mail-domain. |
| add_mail_accountB | Create a mailbox. Executes verified command v-add-mail-account. |
| add_databaseB | Create a database and database user. Executes verified command v-add-database. |
| add_cron_jobA | Create a cron job that executes an arbitrary shell command. Executes verified command v-add-cron-job. |
| backup_userA | Start a complete user backup. Executes verified command v-backup-user. |
| suspend_userC | Suspend a user and their services. Executes verified command v-suspend-user. |
| unsuspend_userA | Unsuspend a user and their services. Executes verified command v-unsuspend-user. |
| delete_userA | Delete a user and all owned data. Executes verified command v-delete-user. |
| delete_web_domainA | Delete a web domain and its files. Executes verified command v-delete-web-domain. |
| delete_dns_domainA | Delete a DNS zone and all records. Executes verified command v-delete-dns-domain. |
| delete_dns_recordB | Delete a DNS record. Executes verified command v-delete-dns-record. |
| delete_mail_domainB | Delete a mail domain and all mailboxes. Executes verified command v-delete-mail-domain. |
| delete_mail_accountC | Delete a mailbox and its messages. Executes verified command v-delete-mail-account. |
| delete_databaseC | Delete a database. Executes verified command v-delete-database. |
| delete_cron_jobC | Delete a cron job. Executes verified command v-delete-cron-job. |
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 38 tools
Each tool maps to a distinct HestiaCP resource and action, and plural list_* vs singular get_* tools are clearly separated. Even closely related tools like add_dns_domain and add_dns_record or list_mail_domains and list_mail_accounts are unambiguous from their descriptions.
Tool names consistently follow a lower_snake_case verb_noun pattern: list_*, get_*, add_*, delete_*, with a few purposeful exceptions like issue_web_certificate, backup_user, suspend_user, and unsuspend_user. There is no mixing of naming conventions.
At 38 tools, the surface is much larger than the 16–25 heavy range and crosses the threshold where agents will struggle to efficiently select tools. While the tools are organized by resource domain, the count is too high for a single MCP server.
The server covers listing, getting, adding, and deleting for many resources, but there are no update/modify operations for any resource, no restore backup tool despite backup_user and list_user_backups existing, and no domain-level suspend/unsuspend. Common HestiaCP management workflows will hit dead ends.