Whodis MCP服务器
该项目提供了一个模型上下文协议(MCP)服务器,专门用于使用WHOIS查找检查域名的可用性。它允许AI助手或其他工具将域可用性检查集成到其工作流程中。
______________________________________________________________________
概述
什么是MCP?
模型上下文协议(MCP)是一个开放标准,允许人工智能系统安全地与外部工具和数据源进行上下文连接。此服务器实现MCP标准以提供域可用性信息。
特性
- 域可用性检查:使用
whoiser库执行WHOIS查找并确定域是否可用或已注册。 - MCP工具集成:暴露a
check-domain-availabilityMCP客户端(如AI助手)的工具。 - 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服务器,并在以下位置启用MCP检查器http://localhost:5173,您可以在那里测试 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将输出一个JSON对象,其中包含 available 和 unavailable 阵列。
______________________________________________________________________
建筑
此服务器遵循分层架构:
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
# 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 测试
# Run all tests
npm test
# Generate test coverage report
npm run test:coverage代码质量
# Lint code
npm run lint
# Format code with Prettier
npm run format______________________________________________________________________
MCP工具: check-domain-availability
- 目的:检查一个或多个域名的可用性。
- 输入:域名数组。
{
"domains": ["example.com", "another-domain.net"]
}- 输出:一个包含两个数组的JSON对象:
available(似乎未注册的域名)和unavailable(似乎已注册的域名)。
{
"available": ["likely-available-domain123.xyz"],
"unavailable": ["google.com"]
}*备注*:可用性检查取决于WHOIS服务器的响应,对于所有TLD或由于临时网络问题,可能不是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。
______________________________________________________________________
