MCP域名检查服务器
一个模型上下文协议服务器,它使人工智能助手能够通过WHOIS查询来检查域名的可用性。
服务介绍
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 对象,其中包含 available 和 unavailable 数组。
架构
该服务器遵循分层架构:
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 检查器以测试工具并查看请求/响应详情:
- 运行
npm run dev:server - 在浏览器中打开 http://localhost:5173
- 使用界面调用
check-domain-availability工具。
服务器日志
启用调试日志以获取详细输出:
bash
设置环境变量
DEBUG=true npm run dev:server
或者在 .env 文件中设置 DEBUG=true
日志也会保存到 ~/.mcp/data/whodis-mcp-server.*.log 文件中。
发布
要将更新发布到 npm:
- 确保更改已提交,并遵循约定的提交消息格式(例如,
feat:、fix:、chore:)。 - 将更改推送到
main分支。 ci-semantic-release.yml工作流将自动构建、测试、版本化并将包发布到 npm。