Don Dominio
Unofficial MCP server exposing the DonDominio / MrDomain reseller API as LLM-callable tools
Documentation
DonDominio MCP Server
An unofficial MCP server that exposes the entire DonDominio / MrDomain reseller API as 106 LLM-callable tools. Manage domains, hosting, SSL certificates, and external users from Claude, Cursor, Cline, Codex, Hermes, or any MCP-compatible client.
Not affiliated with DonDominio / MrDomain. Use at your own risk and respect the usage policy.
Quick start
git clone https://github.com/ec-dev0/don-dominio-mcp
cd don-dominio-mcp
npm install && npm run build
cp .env.example .env # set DONDOMINIO_API_USER / DONDOMINIO_API_PASS
node dist/index.js # stdio mode
Install from GitHub (npx)
Point any MCP client at the repo; npx clones, builds, and runs it for you:
{
"mcpServers": {
"don-dominio": {
"command": "npx",
"args": ["-y", "github:ec-dev0/don-dominio-mcp"],
"env": {
"DONDOMINIO_API_USER": "your_api_user",
"DONDOMINIO_API_PASS": "your_api_password"
}
}
}
}
When launched by a client via
npx,.envfiles are not read — pass credentials only through the config'senvblock.
Requirements
- Node.js ≥ 20.
- A DonDominio / MrDomain account with API access enabled (request it here).
- The caller's public IP must be whitelisted in the DonDominio panel. Check
the IP DonDominio sees with
dondominio_tool_helloordondominio_account_info.
Configuration
| Variable | Default | Description |
|---|---|---|
DONDOMINIO_API_USER | (required) | DonDominio API username. |
DONDOMINIO_API_PASS | (required) | DonDominio API password. |
TRANSPORT | stdio | stdio or http. |
PORT | 3000 | HTTP port (only with TRANSPORT=http). |
ALLOWED_HOSTS | localhost,127.0.0.1,[::1] | Allowed hosts (DNS-rebinding protection). |
ALLOWED_ORIGINS | localhost,127.0.0.1 | Allowed Origin headers. |
MCP_AUTH_TOKEN | (unset) | If set, /mcp requires Authorization: Bearer <token>. |
MCP_MAX_CONCURRENT | 3 | Max concurrent requests per IP (→ 429). Matches DonDominio's usage policy (3 connections per IP). |
DEBUG | 1 to enable | Diagnostic output to stderr. |
Usage
# stdio (default) – for local agents
DONDOMINIO_API_USER=... DONDOMINIO_API_PASS=... node dist/index.js
# HTTP – for remote agents (http://localhost:3000/mcp)
TRANSPORT=http PORT=3000 DONDOMINIO_API_USER=... DONDOMINIO_API_PASS=... node dist/index.js
Inspector (interactive debugger)
npm run inspect # npx @modelcontextprotocol/inspector dist/index.js
Opens a web UI to explore all 106 tools, their schemas, and test them risk-free.
Available tools
| Module | Tools | What it lets you do |
|---|---|---|
tool/ | 6 | Hello, IDN/Punycode, domain suggest, ISO tables, DIG, zone-check. |
account/ | 3 | Info & balance, promotions, TLD catalogue with prices. |
domain/ | 24 | Check, register, transfer, renew, NS, contacts, DNSSEC… |
contact/ | 4 | Reusable WHOIS contact templates. |
service/ | 47 | Hosting: FTP, databases, subdomains, redirects, mail, DNS. |
ssl/ | 13 | CSR, products, certificate lifecycle, validation, SAN. |
user/ | 9 | External panel users and per-domain permissions. |
Examples
- "Is
example.esavailable?" →dondominio_domain_check - "Convert
año.esto Punycode." →dondominio_tool_idn_converter - "List my .com domains." →
dondominio_domain_list - "Create mailbox
info@mydomain.comon servicesrv-mydomain." →dondominio_service_mail_create
Do not loop on
dondominio_domain_checkordondominio_tool_domain_suggests; DonDominio bans accounts for mass availability checks.
Security
- All calls go over HTTPS to
https://simple-api.dondominio.net/. - Hardened HTTP transport: Host/Origin validation, optional Bearer auth, and a per-IP concurrency cap.
- Tools declare honest annotations for the LLM (
readOnlyHint,destructiveHint,idempotentHint,openWorldHint).
Troubleshooting
| Symptom | Cause / fix |
|---|---|
Error 100 when calling a tool | Invalid credentials or IP not whitelisted. |
Error 12 | Your IP is not whitelisted with DonDominio. |
| Client disconnects at startup | No logs on stdout by default; use DEBUG=1 for stderr diagnostics. |
| HTTP 401 | Missing Authorization: Bearer <MCP_AUTH_TOKEN>. |
| HTTP 429 | Too many concurrent requests from one IP; wait or raise MCP_MAX_CONCURRENT. |
Development
npm install
npm run dev # tsx watch (hot reload)
npm run build # tsc → dist/
npm run inspect # MCP Inspector
npm run clean # rm -rf dist
Code structure and conventions live in AGENTS.md.
Links
- DonDominio API docs: https://dondominio.dev/en/api/docs/api/
- Usage policy: https://dondominio.dev/en/api/docs/usage-policy/
- MCP specification: https://modelcontextprotocol.io
License
MIT — see LICENSE.