mx-route-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MXROUTE_SERVER | Yes | Mail server hostname. A pasted https://… URL is accepted and trimmed. | |
| MXROUTE_API_KEY | Yes | API key password. | |
| MXROUTE_API_URL | No | Override the API origin. Must be HTTPS (plain HTTP only for localhost), with no credentials, query string or fragment. Intended for testing; credentials are sent to whatever host you set here. | https://api.mxroute.com |
| MXROUTE_TOOLSETS | No | Comma-separated subset of toolsets (account, domains, pointers, mailboxes, forwarders, spam, dns, catchall, quota, reseller_users, reseller_packages), for example domains,mailboxes,dns. Unknown names are a startup error. | all |
| MXROUTE_USERNAME | Yes | DirectAdmin username, or reseller|user. | |
| MXROUTE_READ_ONLY | No | true registers only the read-only tools; the write tools do not exist for the assistant at all. Accepts true/false, 1/0, yes/no, on/off; anything else is a startup error rather than silently leaving writes enabled. | false |
| MXROUTE_TIMEOUT_MS | No | Per-request timeout (1000–300000). | 30000 |
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 |
|---|---|
| get_domain_verification_keyA | Returns the account's domain verification key and the DNS TXT record that proves ownership of a domain. Before create_domain will work, the user must add a TXT record named |
| list_domainsA | Lists the names of all domains on the MXroute account. |
| get_domainA | Returns details for one domain: whether mail hosting is enabled, whether SSL is enabled, and its domain pointers. |
| create_domainA | Adds a domain to the account. The domain's verification TXT record must already exist in DNS (see get_domain_verification_key) or the call will be rejected. Returns 409 if the domain already exists. |
| delete_domainA | Permanently removes a domain from the account (irreversible); mailboxes and forwarders under the domain are affected. Destructive: confirm with the user before calling. |
| set_mail_hosting_statusA | Enables or disables mail hosting for a domain. Disabling stops MXroute from handling mail for the domain. Safe to repeat with the same value. Destructive: confirm with the user before calling. |
| list_domain_pointersA | Lists the domain pointers (aliases and redirects) that point at a domain. Each entry has the pointer domain, its type (alias or redirect) and the target domain. |
| create_domain_pointerA | Creates a domain pointer so that another domain points at |
| delete_domain_pointerB | Removes a domain pointer from a domain. Destructive: confirm with the user before calling. |
| get_dns_recordsA | Returns the DNS records to configure at the registrar for a domain: MX records, SPF, DKIM (when available) and the verification record. Read-only; it does not change DNS. |
| get_catch_allB | Returns how mail to non-existent addresses on a domain is handled: fail, blackhole or address. |
| set_catch_allA | Sets how mail to non-existent addresses on a domain is handled: type=fail rejects it, type=blackhole silently discards it (mail is lost), type=address forwards it to |
| list_email_accountsA | Lists the mailboxes on a domain with quota (MB, 0 = unlimited), current usage (MB), daily send limit, emails sent today and suspended state. |
| get_email_accountA | Returns quota, usage, daily send limit, emails sent today and suspended state for one mailbox. |
| create_email_accountA | Creates a mailbox such as |
| update_email_accountA | Changes a mailbox's password, quota or daily send limit. Provide at least one of password, quota, limit; omitted fields stay unchanged. Changing the password locks out anyone using the old one. Destructive: confirm with the user before calling. |
| delete_email_accountA | Permanently deletes a mailbox and the mail stored in it (irreversible). Destructive: confirm with the user before calling. |
| list_forwardersA | Lists the email forwarders on a domain and the destinations each one forwards to. |
| create_forwarderA | Creates a forwarder |
| delete_forwarderA | Deletes an email forwarder. Mail sent to that address will no longer be forwarded. Destructive: confirm with the user before calling. |
| get_spam_settingsB | Returns the spam filter settings for a domain. high_score (1-50) is the score threshold for auto-deletion of spam. |
| update_spam_settingsA | Sets the high_score threshold (1-50) for automatic deletion of spam. Lower values are stricter and risk deleting legitimate mail. If the call fails with an unconfirmed-save error, read the settings with get_spam_settings before retrying. Destructive: confirm with the user before calling. |
| list_spam_whitelistA | Lists the account-wide whitelist: sender entries that are never treated as spam. The domain argument must be one you own, but the lists themselves are account-wide. |
| add_spam_whitelist_entryA | Adds a sender email or wildcard pattern to the account-wide whitelist so its mail bypasses spam filtering on every domain. Returns 409 if the entry already exists (case-insensitive). The domain argument must be one you own, but the lists themselves are account-wide. |
| remove_spam_whitelist_entryA | Removes an entry from the account-wide spam whitelist. The domain argument must be one you own, but the lists themselves are account-wide. Destructive: confirm with the user before calling. |
| list_spam_blacklistA | Lists the account-wide blacklist: sender entries that are always treated as spam. The domain argument must be one you own, but the lists themselves are account-wide. |
| add_spam_blacklist_entryA | Adds a sender email or wildcard pattern to the account-wide blacklist so its mail is always treated as spam on every domain. Returns 409 if the entry already exists (case-insensitive). The domain argument must be one you own, but the lists themselves are account-wide. |
| remove_spam_blacklist_entryA | Removes an entry from the account-wide spam blacklist. The domain argument must be one you own, but the lists themselves are account-wide. Destructive: confirm with the user before calling. |
| get_quotaA | Returns the account's overall disk usage: bytes used, quota limit in bytes (0 = unlimited), percent used, a breakdown by category (email, web, databases, backups, other) and grace-period status if over quota. Figures are refreshed hourly by MXroute. |
| get_email_usageA | Returns disk usage in bytes for every mailbox on the account, largest first. Refreshed hourly by MXroute. |
| list_reseller_usersA | Lists the usernames of all user accounts under the reseller. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| get_reseller_userA | Returns a user's email, primary domain, package, suspended state and disk quota. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| create_reseller_userA | Creates a new user account under the reseller, assigned to an existing package. The password is sent to MXroute and never shown in the result. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| update_reseller_userA | Changes a user's disk quota and/or password. Provide at least one; omitted fields stay unchanged. Changing the password locks out anyone using the old one. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| delete_reseller_userA | Permanently deletes a user account and everything in it (domains, mailboxes, mail); irreversible. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| suspend_reseller_userA | Suspends a user account, which interrupts their service until unsuspended. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| unsuspend_reseller_userA | Restores a suspended user account. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| change_reseller_user_packageA | Assigns a different package to a user. Returns 422 if the package does not exist. Returns the updated user. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| list_packagesA | Lists the names of the reseller's packages. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| get_packageA | Returns a package's limits: disk quota (GB), domains, mailboxes, forwarders and domain pointers. A null limit means unlimited; quota_unlimited flags an unlimited disk quota. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| create_packageA | Creates a package. Omitted limits use the API defaults: quota 1 GB, 1 domain, 100 mailboxes, 100 forwarders, 10 domain pointers. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| update_packageA | Changes a package's limits. Provide at least one limit; omitted limits are preserved. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
| delete_packageA | Deletes a package. Fails with 422 if any user is still assigned to it. Reseller accounts only (regular accounts are refused, typically with 403) and not available while MXROUTE_USERNAME is in |
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 43 tools
Most tools target clearly distinct resources or actions, and descriptions help separate similar ones such as quota versus per-mailbox usage. Minor overlap exists between get_domain_verification_key and get_dns_records, and whitelist/blacklist pairs are symmetric, but they are unlikely to cause misselection.
The tool names consistently use snake_case with a verb-first pattern such as list_, get_, create_, update_, delete_, set_, add_, and remove_. Multi-word names like set_mail_hosting_status and change_reseller_user_package remain predictable and readable.
At 43 tools, the surface is well above the typical 3-15 range and falls into the heavy category. Although the MXroute domain is broad, the count is excessive for an agent-facing set and could be consolidated or grouped.
Coverage is strong across domains, email accounts, forwarders, spam settings, whitelist/blacklist, reseller users, packages, quotas, and configuration. Minor gaps such as an update_forwarder operation or explicit mailbox suspend/unsuspend exist, but agents can generally work around them.