{"_id":"@aderlo/mcp","name":"@aderlo/mcp","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@aderlo/mcp","version":"0.2.0","description":"MCP server for Aderlo Cloud hosting — lets AI agents manage a hosting account through scoped API keys","license":"MIT","type":"module","bin":{"aderlo-mcp":"dist/index.js"},"main":"./dist/index.js","keywords":["mcp","modelcontextprotocol","hosting","directadmin","aderlo"],"homepage":"https://aderlo.cloud","engines":{"node":">=18.17"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc --build && esbuild src/index.ts --bundle --platform=node --format=esm --outfile=dist/index.js --external:@modelcontextprotocol/sdk --external:zod --external:undici --banner:js='#!/usr/bin/env node'","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","undici":"^7.2.0","zod":"^3.24.0"},"devDependencies":{"@aderlo/directadmin":"*","esbuild":"^0.25.0"},"gitHead":"6f1359cfcf9a3fffaaa145910a10b75c32dbec18","types":"./dist/index.d.ts","_id":"@aderlo/mcp@0.2.0","_nodeVersion":"24.11.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-VDc5DpdJY3/F2TZz4HYx2VpWzM5TbToKG6xEZgD3ABSqwBHOmNunzM2O6LPMOrwaC/JgtM2cR1rpESlBwa26gQ==","shasum":"ae70a9735c38e1849d852f96b4626e37ee35a6ec","tarball":"https://registry.npmjs.org/@aderlo/mcp/-/mcp-0.2.0.tgz","fileCount":3,"unpackedSize":24785,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICNT8A1h6mz906Pn/p6mxuUp+RsEazJH6iwNKTdxlodQAiEAg/OyXxZZPX3Col8ZNwa8mqIqPKUXrrw5vxzoh5JN9Hw="}]},"_npmUser":{"name":"gregecat","email":"grzegorzciupek@gmail.com"},"directories":{},"maintainers":[{"name":"gregecat","email":"grzegorzciupek@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.2.0_1784466419187_0.03317696377480095"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T13:06:58.986Z","0.2.0":"2026-07-19T13:06:59.328Z","modified":"2026-07-19T13:06:59.544Z"},"maintainers":[{"name":"gregecat","email":"grzegorzciupek@gmail.com"}],"description":"MCP server for Aderlo Cloud hosting — lets AI agents manage a hosting account through scoped API keys","homepage":"https://aderlo.cloud","keywords":["mcp","modelcontextprotocol","hosting","directadmin","aderlo"],"license":"MIT","readme":"# @aderlo/mcp\n\nMCP server for Aderlo Cloud hosting — lets an AI agent (Claude, or anything MCP-capable)\nmanage a hosting account through the customer's own scoped API key.\n\n```json\n{\n  \"mcpServers\": {\n    \"aderlo\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aderlo/mcp\"],\n      \"env\": {\n        \"ADERLO_ACCOUNT\": \"youraccount\",\n        \"ADERLO_API_KEY\": \"your API key from the panel\"\n      }\n    }\n  }\n}\n```\n\nCreate the key in the hosting panel under **Advanced Features → Login Keys** — scope it to\nthe commands you want the agent to have, pin it to your IP, and keep *Allow Login* off.\nDirectAdmin enforces the boundary server-side: the key cannot reach outside your account.\n\n## Key scope\n\nDirectAdmin has **two permission vocabularies** and the key needs entries from both:\n\n| Tools | Required `allowCommands` entries |\n|---|---|\n| domains, usage | `CMD_API_SHOW_DOMAINS`, `CMD_API_SHOW_USER_USAGE` |\n| DNS | `CMD_API_DNS_CONTROL` |\n| databases, mailboxes | `CMD_API_DATABASES`, `CMD_API_POP` |\n| **all file tools** | `filemanager` (reads) **and** `filemanager-actions` (writes) — lowercase, verbatim |\n\n`CMD_FILE_MANAGER` alone does **not** open the modern `/api/filemanager/*` endpoints the\nfile tools use (verified live 2026-07-19).\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `list_domains` | Domains on the account |\n| `account_usage` | Bandwidth, quota, inode and mail usage — for limit monitoring |\n| `list_dns_records` | Full zone of a domain, typed |\n| `add_dns_record` | Adds A/AAAA/CNAME/TXT/MX/NS — **and verifies with a follow-up zone read** |\n| `list_databases` | MySQL databases |\n| `list_email_accounts` | Mailboxes of a domain |\n| `list_files` | Directory listing (site files live in `/domains/<domain>/public_html`) |\n| `read_file` | Text file content, capped at 256 KiB, binary-safe (reports instead of dumping) |\n| `write_file` | Create/overwrite a text file — **verified by re-download and compare** |\n| `create_directory` | mkdir, verified with a follow-up listing |\n| `delete_to_trash` | Moves to the account trash only — never permanent, restorable from the panel |\n| `search_files` | Find files by name |\n| `search_text` | Grep file contents |\n\nEvery tool wraps a command that was executed against a live customer account before being\nincluded. Write tools report `verified: true/false` from an actual re-read, because the\nupstream API can answer success without having done the work — agents should trust the\n`verified` field, not the absence of an error.\n\n## Development\n\n```bash\nnpm run build --workspace=@aderlo/mcp   # tsc typecheck + esbuild bundle (single-file dist)\nADERLO_ACCOUNT=... ADERLO_API_KEY=... node packages/mcp-server/dist/index.js\n```\n\nThe bundle inlines the workspace `@aderlo/directadmin` client (it is not published to npm);\n`@modelcontextprotocol/sdk`, `zod` and `undici` stay external as regular dependencies.\n\nPublishing: `npm publish --workspace=@aderlo/mcp` (runs the build via `prepublishOnly`;\nscoped packages publish public via `publishConfig`).\n","readmeFilename":"README.md","_rev":"1-bcc3ed41f03a9f2eeb867e3dd3d03540"}