@aderlo/mcp
v0.2.0
Published
MCP server for Aderlo Cloud hosting — lets AI agents manage a hosting account through scoped API keys
Downloads
23
Maintainers
Readme
@aderlo/mcp
MCP server for Aderlo Cloud hosting — lets an AI agent (Claude, or anything MCP-capable) manage a hosting account through the customer's own scoped API key.
{
"mcpServers": {
"aderlo": {
"command": "npx",
"args": ["-y", "@aderlo/mcp"],
"env": {
"ADERLO_ACCOUNT": "youraccount",
"ADERLO_API_KEY": "your API key from the panel"
}
}
}
}Create the key in the hosting panel under Advanced Features → Login Keys — scope it to the commands you want the agent to have, pin it to your IP, and keep Allow Login off. DirectAdmin enforces the boundary server-side: the key cannot reach outside your account.
Key scope
DirectAdmin has two permission vocabularies and the key needs entries from both:
| Tools | Required allowCommands entries |
|---|---|
| domains, usage | CMD_API_SHOW_DOMAINS, CMD_API_SHOW_USER_USAGE |
| DNS | CMD_API_DNS_CONTROL |
| databases, mailboxes | CMD_API_DATABASES, CMD_API_POP |
| all file tools | filemanager (reads) and filemanager-actions (writes) — lowercase, verbatim |
CMD_FILE_MANAGER alone does not open the modern /api/filemanager/* endpoints the
file tools use (verified live 2026-07-19).
Tools
| Tool | What it does |
|---|---|
| list_domains | Domains on the account |
| account_usage | Bandwidth, quota, inode and mail usage — for limit monitoring |
| list_dns_records | Full zone of a domain, typed |
| add_dns_record | Adds A/AAAA/CNAME/TXT/MX/NS — and verifies with a follow-up zone read |
| list_databases | MySQL databases |
| list_email_accounts | Mailboxes of a domain |
| list_files | Directory listing (site files live in /domains/<domain>/public_html) |
| read_file | Text file content, capped at 256 KiB, binary-safe (reports instead of dumping) |
| write_file | Create/overwrite a text file — verified by re-download and compare |
| create_directory | mkdir, verified with a follow-up listing |
| delete_to_trash | Moves to the account trash only — never permanent, restorable from the panel |
| search_files | Find files by name |
| search_text | Grep file contents |
Every tool wraps a command that was executed against a live customer account before being
included. Write tools report verified: true/false from an actual re-read, because the
upstream API can answer success without having done the work — agents should trust the
verified field, not the absence of an error.
Development
npm run build --workspace=@aderlo/mcp # tsc typecheck + esbuild bundle (single-file dist)
ADERLO_ACCOUNT=... ADERLO_API_KEY=... node packages/mcp-server/dist/index.jsThe bundle inlines the workspace @aderlo/directadmin client (it is not published to npm);
@modelcontextprotocol/sdk, zod and undici stay external as regular dependencies.
Publishing: npm publish --workspace=@aderlo/mcp (runs the build via prepublishOnly;
scoped packages publish public via publishConfig).
