域名可用性检查服务

Whodis MCP Server 是一个基于Model Context Protocol (MCP)的服务器,专门用于通过WHOIS查询检查域名的可用性,适用于AI助手或其他工具集成域名检查功能。

  • by vinsidious
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 vinsidious/whodis-mcp-server

使用说明

Whodis MCP服务器

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


概述

什么是MCP?

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

特性

  • 域可用性检查:使用 whoiser 库执行WHOIS查找并确定域是否可用或已注册。
  • MCP工具集成:暴露a check-domain-availability MCP客户端(如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.dev

CLI将输出一个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 <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 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检查器测试工具并查看请求/响应详细信息:

  1. 跑 npm run dev:server
  2. 打开http://localhost:5173在您的浏览器中
  3. 使用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更新:

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

许可证

ISC许可证