MCP
HiTechCloud exposes an MCP server at /mcp. Once connected, Claude (or any other MCP client) can manage your account directly: list and create databases, manage domains, DNS records, cron jobs, email accounts, and everything else available under /api/.
On Account > MCP page in the UI, you can generate and manage tokens to be used with Claude (MCP).
Requirements
- Server must be running the Enterprise edition.
- Your plan must have both the API and MCP features enabled. If
/account/mcpisn't visible in your account sidebar, ask your host to enable them.
1. Generate a token
- Go to Account → MCP (
/account/mcp). - Give the token a name (e.g.
Laptop - Claude Desktop) and click Generate new token. - Copy the token immediately: it's only shown once, right after creation.
When generating a token you can also set:
- Expiry: never, 30 days, 90 days, or 1 year. By default tokens don't expire, so set one of the time limits if you'd rather it stop working on its own after a while.
- Read-only: restricts the token to GET/HEAD requests only, so Claude can look things up (list sites, check disk usage, read DNS records, etc.) but can't create, change, or delete anything. Recommended for anything other than your own trusted assistant.
Both settings are shown next to each token afterwards, and revoking a token any time from the same page takes effect immediately if it's no longer needed or you think it leaked.
2. Connect
The panel's MCP endpoint is https://<your-panel-domain>:<port>/mcp. Copy it from /account/mcp rather than typing it: the page prints the exact URL for this server, port included. The panel does not listen on 443 by default — it listens on 2083 — so a URL with the port left off will not connect.
Claude Code (CLI)
claude mcp add --transport http hitechcloud https://<your-panel-domain>:<port>/mcp \
--header "Authorization: Bearer <your-token>"
Claude Desktop
Add this to claude_desktop_config.json:
{
"mcpServers": {
"hitechcloud": {
"url": "https://<your-panel-domain>:<port>/mcp",
"headers": { "Authorization": "Bearer <your-token>" }
}
}
}
Restart Claude Desktop after saving. HiTechCloud's tools should now show up in the tool picker.
3. Using it
Once connected, just ask Claude in plain language, e.g.:
- "List all my websites and their status"
- "Create a new MySQL database called
shopand a user for it" - "Add an A record for
shop.example.compointing to 1.2.3.4" - "Show me disk usage for example.com"
- "Create a daily cron job that runs
/var/www/html/backup.shat 2am"
Every action Claude takes runs through the exact same /api/ endpoints and permission checks as the panel UI and REST API: Claude only ever operates within your account and your plan's enabled features. If a request fails with a permission error, it usually means that feature isn't enabled on your plan. With a read-only token, anything beyond looking things up will be blocked instead.
The tools
There is no separate, hand-written set of AI tools. The MCP server exposes one tool per documented REST endpoint, generated at start-up from the same endpoint list that the API reference renders. So the tool list and the REST API are the same surface, and anything you can read in the API reference you can ask an MCP client to do.
A tool's name is derived from its endpoint's path: drop the leading /api/, then turn every / and - into _. Path parameters keep their name. When the same path is documented under more than one HTTP method, the lower-cased method is appended to tell them apart.
| Endpoint | Tool name |
|---|---|
GET /api/sites | sites |
POST /api/mysql/databases | mysql_databases_post |
DELETE /api/domains/<domain> | domains_domain |
PUT /api/dns/<domain>/raw | dns_domain_raw_put |
POST /api/wordpress/install | wordpress_install |
Each tool takes its path parameters as named arguments, plus a body object for POST/PUT/PATCH or an optional query object for GET/DELETE. Every tool's description repeats which plan feature it needs.
The families that exist today, and the plan feature each one is gated on:
| What you can ask for | Plan feature |
|---|---|
| Deploy an application — WordPress, Drupal, Joomla, PrestaShop, OpenCart, Nextcloud, Moodle, MediaWiki, DokuWiki, Flarum, Matomo, phpBB and others: install, clone, update, restore, clear cache, delete | wordpress, and one feature per application |
| Node.js and Python apps — install a runtime, start/stop/restart/delete a PM2 app, read its logs | nodejs, python |
| Sites and websites — list, create, screenshot, install packages, the website builder | websites, website_builder |
| Malware — start a scan and read its results | malware_scan |
| Files — list, read, write, upload, copy, move, delete, permissions, archive and extract, fetch a URL to disk, trash and restore | filemanager, trash |
| Databases — MySQL and PostgreSQL: databases, users, grants, import, configuration, process list | mysql, postgresql |
| Domains and DNS — domains, sub-domains, suspend, vhost, SSL, DNS zones and records, dynamic DNS | domains, dns, dynamic_dns |
| Email — mailboxes, aliases, forwarders, filters, autoresponders, import, deliverability | emails |
PHP — versions, extensions, php.ini, per-site defaults | php, php_ini |
| Containers and services — start, stop, restart, resources, image tag, system services | docker, services |
| Backups — settings, destinations, run, restore, download, the backup wizard | backups, backup_wizard |
| Caching — Redis, Valkey, Memcached, Varnish, Elasticsearch, OpenSearch | redis |
| Cron jobs, IP blocker, WAF, process manager, webserver config, fix permissions | crons, ip_blocker, waf, process_manager, webserver_conf, fix_permissions |
| Usage and diagnostics — resource usage, disk and inodes, hosting info, traffic stats, activity log | usage, disk_usage, info, goaccess, activity |
| Your own account — email and password, 2FA, passkeys, sessions, language, notifications, favourites | account, twofa, passkeys, notifications |
Two endpoints are deliberately not exposed as tools: /api/login and /api/endpoints.
What the assistant cannot do
An MCP client is never more privileged than you are. Every tool call is replayed through the panel's own API with your token, so it passes exactly the checks your browser does: your plan's features, the server's edition, the route gate, and demo mode. A tool that needs a feature your plan does not include returns "Access denied" — the tool still appears in the list, because the list is the product's, not your plan's.
Actions are recorded in Account → Activity against your account, not against "the AI", because as far as the panel is concerned you authorised them.
A read-only token is restricted to GET and HEAD on every path but /mcp itself, which has to stay open because the MCP transport is JSON-RPC over POST. In particular a read-only token cannot mint another token: it cannot use account_mcp_post to issue itself a full-access credential.
Troubleshooting
| Symptom | Likely cause |
|---|---|
/account/mcp not visible | The mcp (or api) feature isn't enabled on your plan. |
| Client can't connect / 401 | Token is wrong, was revoked, expired, or the header isn't set correctly. |
| Tool call returns "Access denied" | The specific feature it needs (e.g. mysql, dns) isn't enabled on your plan, even though MCP itself is. |
| Tool call returns "This token is read-only" | The token was created with the read-only option and the action needs to create, change, or delete something. Generate a new, non-read-only token instead. |
| Tool list is empty or very short | The panel admin hasn't enabled the api module panel-wide, so most /api/* routes don't exist yet. |
Security notes
- Treat an MCP token like a password: anyone with it can act on your account through every
enabled
/api/endpoint (unless it's read-only). - Prefer a read-only token and/or a short expiry for anything other than your own trusted assistant: it meaningfully limits what a leaked token could do.
- Tokens are stored hashed; support cannot recover a lost token, only issue a new one.
- Revoking a token takes effect immediately.