@teamnetwork-nz/dnsmadeeasy-mcp-server
v1.1.0
Published
MCP server for DNS Made Easy V2.0 REST API — domain and record management
Readme
DNS Made Easy MCP Server
An MCP (Model Context Protocol) server for the DNS Made Easy V2.0 REST API, providing domain and DNS record management to AI assistants.
Requirements
- Node.js >= 18
- DNS Made Easy account with API credentials
Installation
npm install
npm run buildConfiguration
Set the following environment variables (or use a .env file):
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| DNSMADEEASY_API_KEY | Yes | — | Your DNS Made Easy API key |
| DNSMADEEASY_SECRET_KEY | Yes | — | Your DNS Made Easy secret key |
| DNSMADEEASY_READONLY | No | true | Set to false to enable write operations |
MCP Client Setup
Add to your MCP client configuration:
{
"mcpServers": {
"dnsmadeeasy": {
"command": "node",
"args": ["/path/to/DNSMadeEasy-MCP/dist/index.js"],
"env": {
"DNSMADEEASY_API_KEY": "your-api-key",
"DNSMADEEASY_SECRET_KEY": "your-secret-key",
"DNSMADEEASY_READONLY": "false"
}
}
}
}Available Tools
Connection
| Tool | Description |
|------|-------------|
| check_connection | Verify API credentials and reachability without fetching domain data. Returns total domain count and auth status. |
Domains (always available)
| Tool | Description |
|------|-------------|
| list_domains | List all managed domains, optionally filtered by name substring. Supports pagination. |
| get_domain | Get full details for a single domain by domainId or domainName. |
Domains (write — requires DNSMADEEASY_READONLY=false)
| Tool | Description |
|------|-------------|
| create_domain | Add a new managed domain by apex name (e.g. example.com). |
| update_domain | Update settings for an existing domain by domainId. |
| delete_domain | Delete a managed domain by domainId. |
Records (always available)
| Tool | Description |
|------|-------------|
| list_records | List DNS records for a domain (by domainId or domainName). Filter by record type or name substring. |
| get_record | Get a specific record by domainId + recordId. |
Records (write — requires DNSMADEEASY_READONLY=false)
| Tool | Description |
|------|-------------|
| create_record | Create a new DNS record on a domain. |
| update_record | Update an existing DNS record. |
| delete_record | Delete a DNS record. |
Supported Record Types
A, AAAA, ANAME, CNAME, HTTPRED, MX, NS, PTR, SRV, TXT, SPF, SOA
Notes
- Authentication: Requests are signed with HMAC-SHA1. Your system clock must be within 30 seconds of UTC — clock skew causes 403 errors.
- Rate limits: 150 requests per 5-minute sliding window (~0.5 req/s average).
- Dates: Domain
createdandupdatedtimestamps are returned as human-readable strings in the system locale timezone. API authentication headers always use UTC as required by the API. - Record names: An empty string (
"") for thenamefield means the apex/root of the domain. Subdomain labels (e.g."www","mail") do not include the domain name. - Read-only mode: Write tools are not registered unless
DNSMADEEASY_READONLY=false. This is the safe default.
