Skip to main content
Glama
gotchykid

Domain Availability Checker MCP

by gotchykid

Domain Availability Checker MCP

An MCP (Model Context Protocol) server that checks domain availability for registration using RDAP APIs.

Supported TLDs

Currently supported:

  • .com - via Verisign RDAP API

  • .net - via Verisign RDAP API

The architecture is extensible - see Adding a New TLD below.

Related MCP server: MCP Domain Availability Server

Installation

Usage with Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "domain-checker": {
      "command": "npx",
      "args": ["-y", "github:gotchykid/domain-availability-checker-mcp"]
    }
  }
}

From Source

# Clone the repository
git clone https://github.com/gotchykid/domain-availability-checker-mcp.git
cd domain-availability-checker-mcp

# Install dependencies
npm install

# Build
npm run build

Then add to Claude Desktop config:

{
  "mcpServers": {
    "domain-checker": {
      "command": "node",
      "args": ["/path/to/domain-availability-checker-mcp/build/index.js"]
    }
  }
}

Tools

check_domain

Check if a domain is available for registration.

Parameters:

  • domain (string): Domain name to check (e.g., "example.com" or "example.net")

Returns:

  • Domain availability status

  • If registered: registrar, creation date, expiration date, nameservers, and status

Development

# Watch mode for development
npm run watch

# Test with MCP Inspector
npm run inspector

Adding a New TLD

To add support for a new TLD (e.g., .org):

  1. Create a new file src/checkers/org.ts

  2. Implement the DomainChecker interface

  3. Export the checker as default

Example:

import { DomainChecker, DomainCheckResult } from "../types.js";
import {
  RdapResponse,
  parseRdapResponse,
  createAvailableResult,
} from "./rdap-utils.js";

const RDAP_BASE_URL = "https://rdap.publicinterestregistry.org/rdap/domain/";
const TLD = "org";

const orgChecker: DomainChecker = {
  tld: TLD,

  async check(domain: string): Promise<DomainCheckResult> {
    const normalizedDomain =
      domain.toLowerCase().replace(/\.org$/, "") + ".org";

    try {
      const response = await fetch(`${RDAP_BASE_URL}${normalizedDomain}`);

      if (response.status === 404) {
        return createAvailableResult(normalizedDomain, TLD);
      }

      if (!response.ok) {
        throw new Error(`RDAP request failed with status ${response.status}`);
      }

      const data: RdapResponse = await response.json();
      return parseRdapResponse(data, normalizedDomain, TLD);
    } catch (error) {
      if (error instanceof Error && error.message.includes("404")) {
        return createAvailableResult(normalizedDomain, TLD);
      }
      throw error;
    }
  },
};

export default orgChecker;

The registry auto-discovers checker files on startup - no other changes needed.

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/gotchykid/domain-availability-checker-mcp'

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