域名检查服务

一个使用RDAP和WHOIS协议检查域名可用性的MCP服务器,支持单域名和多域名批量检查。

  • by htkarabulut
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 unitythemaker/domain-checker-mcp

使用说明

域检查器MCP

使用RDAP(注册数据访问协议)和WHOIS回退检查域可用性的MCP(模型上下文协议)服务器。

特性

  • 检查单域可用性
  • 并行批量检查多个域
  • 优先考虑RDAP进行域查找
  • 当RDAP不可用时,回退到WHOIS
  • 可配置的并行工作器(默认值:4)
  • 针对速率受限响应的指数回退重试机制
  • 增强的域状态检测(可用、已占用、未知、速率受限)
  • 提取域名信息(注册商、到期日期、到期前天数)
  • 空注册数据检测,提高可用性准确性
  • 高效响应模式-默认情况下排除原始RDAP/WHOIS数据,以获得更快的响应

MCP配置

使用npm包

将此服务器添加到MCP客户端配置中:

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

使用本地安装

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

安装

来自npm

npm install -g domain-checker-mcp

来源

git clone https://github.com/yourusername/domain-checker-mcp.git
cd domain-checker-mcp
pnpm install
pnpm build

用法

运行MCP服务器

pnpm start

可用工具

所有工具都支持可选 includeRawResponse 参数(boolean,默认值:false),用于控制响应中是否包含原始RDAP/WHOIS数据。对于可疑情况(未知状态、速率限制、错误),会自动包含原始响应。

  1. check_domain -检查是否有单个域可用

    • 输入:
      • domain (string)-要检查的域名
      • includeRawResponse (布尔值,可选)-包括原始响应数据(默认值:false)
  2. check_domains_batch -并行检查多个域

    • 输入:
      • domains (string[])-要检查的域名数组
      • concurrency (数字,可选)-并行工作者的数量(1-10,默认值:4)
      • includeRawResponse (布尔值,可选)-包括原始响应数据(默认值:false)
  3. check_name_extensions -检查具有多个扩展名的单个名称

    • 输入:
      • name (string)-不带扩展名的域名(例如“example”)
      • extensions (string[])-要检查的扩展数组(例如,[“com”,“net”,“org”])
      • concurrency (数字,可选)-并行工作者的数量(1-10,默认值:4)
      • includeRawResponse (布尔值,可选)-包括原始响应数据(默认值:false)
  4. check_names_extensions -检查具有多个扩展名的多个名称

    • 输入:
      • names (string[])-不带扩展名的域名数组
      • extensions (string[])-用于检查每个名称的扩展数组
      • concurrency (数字,可选)-并行工作者的数量(1-10,默认值:4)
      • includeRawResponse (布尔值,可选)-包括原始响应数据(默认值:false)

响应格式

单域检查返回:

{
  "domain": "example.com",
  "available": false,
  "status": "taken",
  "method": "rdap",
  "registrationData": { ... },
  "domainInfo": {
    "registrar": "Example Registrar Inc.",
    "expirationDate": "2025-12-31T23:59:59Z",
    "daysUntilExpiration": 365,
    "creationDate": "2020-01-01T00:00:00Z",
    "lastUpdated": "2024-01-15T12:00:00Z"
  }
}

批量检查返回:

{
  "total": 5,
  "available": 2,
  "taken": 2,
  "errors": 0,
  "rateLimited": 1,
  "unknown": 0,
  "results": [...]
}

带扩展名的名称检查返回:

{
  "name": "example",
  "total": 3,
  "available": 1,
  "taken": 2,
  "errors": 0,
  "rateLimited": 0,
  "unknown": 0,
  "results": [...]
}

带有扩展名的多个名称返回:

{
  "totalNames": 2,
  "totalExtensions": 3,
  "totalChecks": 6,
  "availableTotal": 2,
  "takenTotal": 3,
  "errorsTotal": 0,
  "rateLimitedTotal": 1,
  "unknownTotal": 0,
  "resultsByName": {
    "example": {
      "total": 3,
      "available": 1,
      "taken": 2,
      "errors": 0,
      "rateLimited": 0,
      "unknown": 0,
      "domains": [...]
    },
    ...
  }
}

出版

要发布新版本,请执行以下操作:

  1. 更新中的版本 package.json
  2. 提交您的更改
  3. 创建并推送新标签:
    git tag v0.1.0
    git push origin v0.1.0
    
  4. GitHub Actions将自动发布到npm

需求

  • 集 NPM_TOKEN GitHub存储库设置中的秘密
  • 标签必须以“v”开头(例如v0.1.0、v1.0.0)

许可证

麻省理工学院