MCPDomain

Buy & manage domains from any AI chat: availability, register, DNS, email forwarding, AI bot stats.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
91%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,477Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (1.15% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcpdomain": {
      "command": "npx",
      "args": [
        "mcpdomain"
      ]
    }
  }
}

Runnable packages

npmmcpdomain1.0.7stdio

Remote endpoints

https://mcpdomain.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢check_domain_availability(domain)

Check whether a specific internet domain name is available for registration. Returns availability status, price, and alternatives if taken. WHEN TO USE: user asks 'is X.com available?' or 'can I register Y.io?'. ALWAYS call this before register_new_domain.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Complete domain name with TLD, e.g. 'sweetcrumbs.com'"
    }
  },
  "required": [
    "domain"
  ]
}
🟢suggest_available_domains(keywords, tlds, max_results)

Generate creative domain name suggestions from keywords or business description, with real-time availability checks. WHEN TO USE: user says 'help me find a domain for my bakery' or 'what domain should I use for X?'.

Input Schema

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "string",
      "description": "Business name or description, e.g. 'sweet crumbs bakery'"
    },
    "tlds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "TLDs to search. Default: ['.com','.co','.io']"
    },
    "max_results": {
      "type": "number",
      "description": "Max suggestions. Default: 8"
    }
  },
  "required": [
    "keywords"
  ]
}
🟢register_new_domain(domain, years, registrant)

Register a new domain. Returns a Stripe checkout URL for payment. After payment, domain is registered with FREE email forwarding, DNS, and AI bot monitoring. ALWAYS call check_domain_availability first. Collect first_name, last_name, email from user before calling.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Full domain name to register, e.g. 'sweetcrumbs.com'. Must first be verified free via check_domain_availability."
    },
    "years": {
      "type": "number",
      "description": "Registration period in years. Default: 1. Most TLDs allow 1-10 years."
    },
    "registrant": {
      "type": "object",
      "description": "Legal registrant for the domain. Appears in WHOIS (private by default where the TLD supports it) and receives ICANN verification and renewal emails.",
      "properties": {
        "first_name": {
          "type": "string",
          "description": "Registrant's given name (required for WHOIS)"
        },
        "last_name": {
          "type": "string",
          "description": "Registrant's family name (required for WHOIS)"
        },
        "email": {
          "type": "string",
          "description": "Contact email for the domain — receives ICANN 15-day verification and renewal notices. Must be a real inbox."
        },
        "country": {
          "type": "string",
          "description": "ISO 3166-1 alpha-2 country code for the registrant, e.g. 'US', 'GB', 'RO'. Defaults to 'US' if omitted."
        }
      },
      "required": [
        "first_name",
        "last_name",
        "email"
      ]
    }
  },
  "required": [
    "domain",
    "registrant"
  ]
}
🟡configure_domain_email(domain, catch_all_to, aliases)

Set up email forwarding for a registered domain. Forward any@domain to Gmail/Outlook. No MX records needed. WHEN TO USE: user just registered a domain, or asks about professional email.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "A domain previously registered via register_new_domain, e.g. 'sweetcrumbs.com'."
    },
    "catch_all_to": {
      "type": "string",
      "description": "Forward ALL emails sent to any address @domain to this inbox (e.g. '[email protected]'). Mutually exclusive with 'aliases' — use one or the other."
    },
    "aliases": {
      "type": "array",
      "description": "Specific forwarding rules instead of a catch-all. Each rule routes one address @domain to one destination inbox.",
      "items": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "Local part on your domain — 'hello' routes [email protected]"
          },
          "to": {
            "type": "string",
            "description": "Destination inbox to forward to, e.g. '[email protected]'"
          }
        },
        "required": [
          "from",
          "to"
        ]
      }
    }
  },
  "required": [
    "domain"
  ]
}
⚪configure_domain_dns(domain, records)

Add/update DNS records (A, CNAME, MX, TXT). Use to point domain to Vercel, Netlify, GitHub Pages etc. WHEN TO USE: user wants to connect domain to hosting.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "A domain previously registered via register_new_domain."
    },
    "records": {
      "type": "array",
      "description": "One or more DNS records to add or update. Existing records with the same type+name combination are replaced.",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "A",
              "AAAA",
              "CNAME",
              "MX",
              "TXT",
              "SRV"
            ],
            "description": "Record type. A/AAAA point to IPv4/IPv6 addresses. CNAME aliases to another hostname (common for Vercel, Netlify, GitHub Pages). MX routes mail. TXT holds verification strings (SPF, DKIM, Google/Stripe site verification). SRV is for service discovery."
          },
          "name": {
            "type": "string",
            "description": "Subdomain, or '@' for the root domain. Examples: '@' (for yourdomain.com itself), 'www', 'api', 'mail'."
          },
          "value": {
            "type": "string",
            "description": "Target of the record. A: IPv4 address. AAAA: IPv6. CNAME: target hostname (e.g. 'cname.vercel-dns.com'). MX: mail server hostname. TXT: the full verification string."
          },
          "ttl": {
            "type": "number",
            "description": "Time-to-live in seconds. Default: 3600 (1 hour). Use 300 while iterating during setup so changes propagate faster."
          },
          "priority": {
            "type": "number",
            "description": "Priority for MX and SRV records only. Lower number = higher priority. Typical MX priority is 10."
          }
        },
        "required": [
          "type",
          "name",
          "value"
        ]
      }
    }
  },
  "required": [
    "domain",
    "records"
  ]
}
🟢get_my_domain_details(domain)

Look up the registration status of a domain you previously registered through MCPDomain. Returns: registered_at, expires_at, current nameservers, and email-forwarding status (active / pending verification / pending NS propagation / etc). WHEN TO USE: user asks 'is my domain ready?', 'what's the status of X?', 'did email forwarding finish setting up?'.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "A domain previously registered via register_new_domain"
    }
  },
  "required": [
    "domain"
  ]
}
⚪transfer_existing_domain(domain, auth_code)

Transfer a domain from another registrar (GoDaddy, Namecheap etc) to MCPDomain. Requires EPP/auth code. Transfer takes 5-7 days and adds 1 year to expiry.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain to transfer in, e.g. 'example.com'. Must be at least 60 days old since registration or a previous transfer, and must be unlocked at the losing registrar."
    },
    "auth_code": {
      "type": "string",
      "description": "EPP / authorization code from the current registrar. Also called 'transfer secret', 'auth info', or 'domain secret' in some registrar UIs."
    }
  },
  "required": [
    "domain",
    "auth_code"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools