Skip to main content
Glama

Domain MCP - Domain Management for AI Assistants

npm version npm downloads License: MIT Node.js Version TypeScript MCP CI Code Style: Prettier

A Domain MCP server that brings natural language domain management to Claude, Cursor, and other AI assistants. Manage Dynadot domains, DNS, contacts, and transfers through conversational commands powered by the Model Context Protocol (MCP).

šŸš€ AI-powered domain operations - Just ask: "List my domains", "Register example.com", or "Set up DNS"


Table of Contents


Features

  • šŸ¤– Natural Language Domain Management: Use AI assistants like Claude and Cursor to manage domains conversationally - no API knowledge needed

  • šŸ“¦ Complete Domain MCP Server: 106 Dynadot API actions across 10 composite MCP tools for domains, DNS, transfers, and more

  • ⚔ Production-Ready AI Integration: Built for Claude Code, Cursor, Claude Desktop, and any MCP-compatible client

  • šŸ”’ Type-Safe & Reliable: TypeScript, Zod validation, comprehensive test suite with 100% tool coverage

  • āœ… MCP Protocol Compliant: Full Model Context Protocol specification compliance with real CRUD operation tests

Examples in Action

Claude Code

Check domain availability and get intelligent suggestions:

Claude Code Example

Cursor

Manage DNS records with natural language - the AI understands your Dynadot account structure:

Cursor Example

Domain Search with Pricing

Search for available domains and get pricing information instantly:

Domain Search with Pricing

Common Use Cases

For AI-Powered Domain Management

Use this Domain MCP server to manage your Dynadot domains through natural language with AI assistants:

Domain Operations

  • "Check if example.com is available and show me similar domains"

  • "Register example.com and enable WHOIS privacy"

  • "Show me all domains expiring in the next 30 days"

DNS Management

  • "Set up DNS for mysite.com with A record pointing to my server"

  • "Add www subdomain and configure MX records for email"

  • "Update DNS to point to Cloudflare nameservers"

Bulk Operations

  • "Enable auto-renewal for all my .com domains"

  • "Lock all domains to prevent unauthorized transfers"

  • "Search pricing for .com, .net, .io, and .ai domains"

Advanced Automation

  • "Create a contact and use it to register multiple domains"

  • "Transfer example.com from another registrar with auth code"

  • "Set up domain forwarding from old-site.com to new-site.com"

Why Use an MCP Domain Server?

Traditional domain management requires:

  • Memorizing API documentation

  • Writing custom scripts

  • Manual navigation through control panels

With this Domain MCP integration:

  • āœ… Natural language: Just describe what you want

  • āœ… AI assistance: Claude/Cursor understand domain concepts

  • āœ… Context aware: AI remembers your account structure

  • āœ… Faster workflow: No context switching to web UI

Quick Installation

Prerequisites

You'll need a Dynadot account and an API key to use this MCP server.

Get Your API Key

No installation needed! NPX runs the package directly from npm.

Step 1: Get your API key from Dynadot Account Settings

Step 2: Add to your MCP client config:

Edit ~/.claude/mcp.json:

{ "mcpServers": { "domain-mcp": { "command": "npx", "args": ["-y", "domain-mcp"], "env": { "DYNADOT_API_KEY": "your-api-key-here" } } } }

Or use the CLI:

claude mcp add domain-mcp

Edit ~/.cursor/mcp.json (macOS/Linux) or %APPDATA%\Cursor\mcp.json (Windows):

{ "mcpServers": { "domain-mcp": { "command": "npx", "args": ["-y", "domain-mcp"], "env": { "DYNADOT_API_KEY": "your-api-key-here" } } } }

Restart Cursor after editing.

Edit the config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "domain-mcp": { "command": "npx", "args": ["-y", "domain-mcp"], "env": { "DYNADOT_API_KEY": "your-api-key-here" } } } }

Restart Claude Desktop after editing.

Step 3: Restart your AI assistant and start using domain commands!

Method 2: Global Install

Install globally with npm:

npm install -g domain-mcp

Then use domain-mcp instead of npx -y domain-mcp in your config:

{ "mcpServers": { "domain-mcp": { "command": "domain-mcp", "env": { "DYNADOT_API_KEY": "your-api-key-here" } } } }

Method 3: Local Development

For contributing or customization:

git clone https://github.com/joachimBrindeau/domain-mcp.git cd domain-mcp npm install npm run build

Then configure with absolute path:

{ "mcpServers": { "domain-mcp": { "command": "node", "args": ["/absolute/path/to/domain-mcp/dist/index.js"], "env": { "DYNADOT_API_KEY": "your-api-key-here" } } } }

Configuration Options

Required

Optional

  • DYNADOT_SANDBOX - Set to "true" for sandbox testing (default: "false")

šŸ“– Full Documentation:

Usage

As MCP Server

Once configured, you have access to 10 powerful tools

Programmatic Usage

import { getClient } from './src/client.js'; const client = getClient(); // Search domains const result = await client.execute('search', { domains: ['example.com', 'example.net'], showPrice: true, currency: 'USD' }); // Get domain info const info = await client.execute('domain_info', { domain: 'example.com' }); // Manage DNS await client.execute('set_dns2', { domain: 'example.com', mainRecords: [ { type: 'A', value: '192.0.2.1', ttl: 3600 } ] });

MCP Tools for Domain Management

This Domain MCP server provides 10 comprehensive tools for AI-powered domain operations:

1. dynadot_domain - Core Domain Operations

List, search, register, renew, delete, info, lock, and pricing operations for your domains.

Common AI commands: "List my domains", "Search for example.com", "Register domain", "Check .com pricing"

2. dynadot_domain_settings - Domain Configuration

Configure domain settings: nameservers, privacy, renewal, forwarding, parking, WHOIS.

Common AI commands: "Enable WHOIS privacy", "Set nameservers", "Configure domain forwarding", "Enable auto-renewal"

3. dynadot_dns - DNS Management

DNS management: get/set DNS records, DNSSEC configuration.

Common AI commands: "Show DNS records", "Add A record", "Configure MX records", "Enable DNSSEC"

4. dynadot_nameserver - Nameserver Management

Manage registered nameservers (glue records): register, update IP, delete, list.

Common AI commands: "Register nameserver", "Update nameserver IP", "List my nameservers"

5. dynadot_transfer - Domain Transfers

Domain transfers: initiate, check status, manage auth codes, push requests.

Common AI commands: "Transfer domain to Dynadot", "Get auth code", "Check transfer status", "Push domain to another account"

6. dynadot_contact - WHOIS Contact Management

WHOIS contact management: create, edit, delete, list, regional settings.

Common AI commands: "Create new contact", "List contacts", "Update contact info", "Delete contact"

7. dynadot_folder - Folder Management

Folder management: create, delete, list, configure folder-level settings.

Common AI commands: "Create domain folder", "List folders", "Move domain to folder", "Configure folder settings"

8. dynadot_account - Account Settings

Account info, balance, and default settings for new domains.

Common AI commands: "Check account balance", "Show account info", "Set default nameservers", "Configure default WHOIS"

9. dynadot_aftermarket - Aftermarket Operations

Aftermarket: auctions, backorders, expired domains, marketplace listings.

Common AI commands: "List domain auctions", "Place bid on auction", "Backorder expired domain", "List my marketplace domains"

10. dynadot_order - Order Management

Orders, coupons, processing status, reseller operations.

Common AI commands: "Check order status", "List available coupons", "View order history"

Development

Build

npm run build

Run Tests

# Default test run (integration tests are skipped unless explicitly enabled) npm test # Integration tests (requires network access + Dynadot credentials) RUN_INTEGRATION_TESTS=true DYNADOT_API_KEY=your-api-key TEST_DOMAIN=your-domain.com npm test # E2E tests (validates all 106 API endpoints) RUN_INTEGRATION_TESTS=true TEST_DOMAIN=your-domain.com npm test -- test/e2e.test.ts # Functional tests (real CRUD operations) RUN_INTEGRATION_TESTS=true TEST_DOMAIN=your-domain.com npm test -- test/functional.test.ts # Watch mode npm run test:watch

Development Mode

npm run dev

Testing

E2E Tests

Validates that all 106 API actions are properly mapped and return valid responses.

Functional Tests

Tests real CRUD operations:

  • Folder CRUD (create, list, rename, delete, verify)

  • Contact CRUD (create, list, get, edit, delete, verify)

  • Domain Note (set, verify, clear)

  • Domain Lock/Unlock

  • Renewal Options

Test Coverage: 26/26 functional tests passing

API Quirks & Known Issues

edit_contact

Dynadot API requires ALL contact fields to be provided when editing, not just the fields you want to change. Partial updates will fail with "missing email" or similar errors.

Solution: Always provide complete contact data:

await client.execute('edit_contact', { contact_id: '12345', name: 'Updated Name', email: 'email@example.com', phonecc: '1', phonenum: '5551234567', address1: '123 Street', city: 'City', state: 'CA', zip: '94102', country: 'US' });

lock_domain unlock

The lock_domain unlock command may return a misleading error "this domain has been locked already" when attempting to unlock. This appears to be either:

  • Domain protection preventing API unlock

  • A bug in the Dynadot API error messaging

Unlocking domains may need to be done through the Dynadot control panel.

Architecture

src/ ā”œā”€ā”€ index.ts # MCP server entry point ā”œā”€ā”€ client.ts # Dynadot API client ā”œā”€ā”€ schema.ts # Tool and action definitions (10 tools, 106 actions) └── register.ts # Tool registration with MCP server test/ ā”œā”€ā”€ e2e.test.ts # Endpoint validation tests └── functional.test.ts # Real CRUD operation tests

Dependencies

  • @modelcontextprotocol/sdk - MCP protocol implementation

  • ky - HTTP client for API requests

  • zod - Schema validation

  • vitest - Testing framework

  • typescript - Type safety

Documentation

šŸ“š Guides

  • Quick Start - Get up and running in 5 minutes

  • Setup Guide - Detailed setup for Claude Code, Cursor, Claude Desktop

  • Deployment - Local, Docker, remote, and serverless options

  • Environment - Complete environment variable reference

  • Testing - Automated testing with Claude Haiku

  • Reference - Common commands and usage patterns

  • Examples - Code examples for common operations

šŸ”§ Development

šŸ—ļø Project

License

MIT

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests for new functionality

  5. Ensure all tests pass

  6. Submit a pull request

Frequently Asked Questions

What is an MCP server for domains?

A Domain MCP server is a Model Context Protocol server that enables AI assistants like Claude and Cursor to manage domains through natural language. Instead of using a web interface or writing API code, you simply ask your AI assistant to perform domain operations.

How is this different from using the Dynadot website?

The Domain MCP server brings domain management into your AI assistant's context:

  • Natural language: "Register example.com" vs clicking through multiple pages

  • AI understanding: The assistant knows your account structure and suggests related actions

  • Workflow integration: Manage domains while coding, writing, or working without leaving your editor

  • Automation ready: Chain multiple domain operations in one conversation

Which AI assistants work with this Domain MCP server?

This MCP server works with any MCP-compatible AI assistant:

  • Claude Code - Anthropic's official CLI

  • Cursor - AI-powered code editor

  • Claude Desktop - Anthropic's desktop app

  • Any other client supporting the Model Context Protocol

Do I need to know the Dynadot API?

No! That's the power of the Domain MCP approach. Your AI assistant handles the API complexity. Just describe what you want in natural language.

Is this safe to use with production domains?

Yes, with proper precautions:

  • Sandbox mode: Test with DYNADOT_SANDBOX=true first

  • Review actions: The AI shows you what it will do before executing

  • API limits: Dynadot's API rate limits prevent runaway operations

  • Audit trail: All operations are logged in your Dynadot account

How much does it cost?

The Domain MCP server itself is free and open source (MIT license). You only pay for Dynadot domain services and your AI assistant subscription.

Support

Getting Help with Domain MCP

Documentation Resources

Dynadot API:

Model Context Protocol:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joachimBrindeau/domain-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server