Whodis MCP 服务器
该项目提供了一个模型上下文协议 (MCP) 服务器,专门用于通过 WHOIS 查询检查域名的可用性。它允许 AI 助手或其他工具将域名可用性检查集成到其工作流程中。
概述
什么是 MCP?
模型上下文协议 (MCP) 是一项开放标准,允许 AI 系统以安全且符合上下文的方式与外部工具和数据源连接。此服务器实现了 MCP 标准,以提供域可用性信息。
Related MCP server: WebSearch-MCP
特征
域名可用性检查:使用
whoiser库执行 WHOIS 查找并确定域名是否可用或已注册。MCP 工具集成:为 MCP 客户端(如 AI 助手)公开
check-domain-availability工具。CLI 界面:包括一个命令行界面(
whodis-mcp-server check-domain-availability ...)以供直接使用和测试。结构化日志记录:提供用于调试和监控的详细日志记录。
可配置:支持通过环境变量或
.env文件进行配置。
入门
先决条件
Node.js (>=18.x):下载
Git :用于版本控制
步骤 1:克隆并安装
# Clone the repository
git clone https://github.com/vinsidious/whodis-mcp-server.git
cd whodis-mcp-server
# Install dependencies
npm install第 2 步:运行开发服务器
以开发模式启动服务器,通过 MCP 检查器与其交互:
npm run dev:server这将启动 MCP 服务器并在http://localhost:5173启用 MCP 检查器,您可以在其中测试check-domain-availability工具。
步骤 3:通过 CLI 测试工具
直接从命令行运行域可用性检查器:
# Using CLI in development mode
npm run dev:cli -- check-domain-availability example.com non-existent-domain-12345.org
# Or run the built version
npm run start:cli -- check-domain-availability google.com my-unique-idea.devCLI 将输出一个包含available和unavailable数组的 JSON 对象。
建筑学
该服务器遵循分层架构:
src/
├── cli/ # Command-line interface logic
├── controllers/ # Business logic for domain checks
├── services/ # Interaction with the whoiser library
├── tools/ # MCP tool definition and argument validation
├── types/ # Shared type definitions
├── utils/ # Shared utilities (logging, errors, etc.)
└── index.ts # Main entry point for server and CLI开发指南
开发脚本
# Start MCP server in development mode (with MCP Inspector)
npm run dev:server
# Run CLI commands in development mode
npm run dev:cli -- check-domain-availability <domains...>
# Build the project for production
npm run build
# Start MCP server in production mode (requires MCP client)
npm run start:server
# Run CLI commands using the production build
npm run start:cli -- check-domain-availability <domains...>测试
# Run all tests
npm test
# Generate test coverage report
npm run test:coverage代码质量
# Lint code
npm run lint
# Format code with Prettier
npm run formatMCP 工具: check-domain-availability
目的:检查一个或多个域名的可用性。
输入:域名数组。
{ "domains": ["example.com", "another-domain.net"] }输出:一个包含两个数组的 JSON 对象:
available(似乎未注册的域名)和unavailable(似乎已注册的域名)。{ "available": ["likely-available-domain123.xyz"], "unavailable": ["google.com"] }注意:可用性检查取决于 WHOIS 服务器响应,并且可能并非对所有顶级域名 100% 准确,或者由于临时网络问题导致查询失败。查询失败的域名将被忽略。
何时使用:当您需要确定特定域名是否可以注册时,请使用此工具。
调试
MCP 检查器
访问可视化 MCP 检查器来测试该工具并查看请求/响应详细信息:
运行
npm run dev:server在浏览器中打开http://localhost:5173
使用 UI 调用
check-domain-availability工具。
服务器日志
启用调试日志以获取详细输出:
# Set environment variable
DEBUG=true npm run dev:server
# Or set DEBUG=true in your .env file日志也保存到~/.mcp/data/whodis-mcp-server.*.log中。
出版
要将更新发布到 npm:
确保更改已提交并遵循常规提交消息(例如,
feat:、fix:、chore:)。将更改推送到
main分支。ci-semantic-release.yml工作流程将自动构建、测试、版本控制并将包发布到 npm。