M

MCP域名检查服务器

@vinsidious/whodis-mcp-server
0 Stars 40 次浏览 vinsidious 更新于 2026-08-23

一个模型上下文协议服务器,它使人工智能助手能够通过WHOIS查询来检查域名的可用性。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

Whodis MCP 服务器

本项目提供了一个专门设计用于通过 WHOIS 查询检查域名可用性的模型上下文协议(MCP)服务器。它允许 AI 助手或其他工具将域名可用性检查集成到其工作流程中。


概述

什么是 MCP?

模型上下文协议(MCP)是一个开放标准,允许 AI 系统安全且有上下文地连接外部工具和数据源。此服务器实现了 MCP 标准以提供域名可用性信息。

特性

  • 域名可用性检查:使用 whoiser 库执行 WHOIS 查询并确定域名是否看似可用或已注册。
  • MCP 工具集成:为 MCP 客户端(如 AI 助手)暴露了 check-domain-availability 工具。
  • CLI 接口:包含一个命令行接口 (whodis-mcp-server check-domain-availability ...) 以便直接使用和测试。
  • 结构化日志记录:提供详细的日志记录以供调试和监控。
  • 可配置:支持通过环境变量或 .env 文件进行配置。

入门指南

前提条件

  • Node.js (>=18.x): 下载
  • Git: 用于版本控制

步骤 1: 克隆并安装

bash

克隆仓库

git clone https://github.com/vinsidious/whodis-mcp-server.git
cd whodis-mcp-server

安装依赖

npm install


步骤 2: 运行开发服务器

在开发模式下启动服务器,以便通过 MCP Inspector 与其交互:

bash
npm run dev:server

这将启动 MCP 服务器,并在 http://localhost:5173 启用 MCP Inspector,在这里您可以测试 check-domain-availability 工具。


步骤 3: 通过 CLI 测试工具

直接从命令行运行域名可用性检查器:

bash

在开发模式下使用 CLI

npm run dev:cli -- check-domain-availability example.com non-existent-domain-12345.org

或者运行构建后的版本

npm run start:cli -- check-domain-availability google.com my-unique-idea.dev

CLI 将输出一个 JSON 对象,其中包含 availableunavailable 数组。


架构

该服务器遵循分层架构:

src/
├── cli/ # 命令行接口逻辑
├── controllers/ # 域名检查的业务逻辑
├── services/ # 与 whoiser 库的交互
├── tools/ # MCP 工具定义及参数验证
├── types/ # 共享类型定义
├── utils/ # 共享实用程序(日志、错误等)
└── index.ts # 服务器和 CLI 的主入口点


开发指南

开发脚本

bash

在开发模式下启动 MCP 服务器(带 MCP Inspector)

npm run dev:server

在开发模式下运行 CLI 命令

npm run dev:cli -- check-domain-availability <domains...>

为生产构建项目

npm run build

在生产模式下启动 MCP 服务器(需要 MCP 客户端)

npm run start:server

使用生产构建运行 CLI 命令

npm run start:cli -- check-domain-availability <domains...>

测试

bash

运行所有测试

npm test

生成测试覆盖率报告

npm run test:coverage

代码质量

bash

代码检查

npm run lint

使用 Prettier 格式化代码

npm run format


MCP 工具: check-domain-availability

  • 目的:检查一个或多个域名的可用性。

  • 输入:一个域名数组。
    json
    {
    "domains": ["example.com", "another-domain.net"]
    }

  • 输出:一个 JSON 对象,包含两个数组:available(看似未注册的域名)和 unavailable(看似已注册的域名)。
    json
    {
    "available": ["likely-available-domain123.xyz"],
    "unavailable": ["google.com"]
    }注意: 可用性检查依赖于 WHOIS 服务器的响应,对于所有顶级域名 (TLDs) 或由于临时网络问题可能不是 100% 准确。查询失败的域名将被忽略。

  • 何时使用: 当您需要确定特定域名是否可以潜在注册时,请使用此工具。


调试

MCP 检查器

访问可视化的 MCP 检查器以测试工具并查看请求/响应详情:

  1. 运行 npm run dev:server
  2. 在浏览器中打开 http://localhost:5173
  3. 使用界面调用 check-domain-availability 工具。

服务器日志

启用调试日志以获取详细输出:

bash

设置环境变量

DEBUG=true npm run dev:server

或者在 .env 文件中设置 DEBUG=true

日志也会保存到 ~/.mcp/data/whodis-mcp-server.*.log 文件中。


发布

要将更新发布到 npm:

  1. 确保更改已提交,并遵循约定的提交消息格式(例如,feat:fix:chore:)。
  2. 将更改推送到 main 分支。
  3. ci-semantic-release.yml 工作流将自动构建、测试、版本化并将包发布到 npm。

许可证

ISC 许可证

相关 MCP 服务