返回 MCP 目录
public公开dns本地运行

domain-tools-mcp-server

一个基于MCP协议的域名分析服务器,提供WHOIS查询、DNS记录获取和DNS健康检查功能。

article

README

🚀 域名工具MCP服务器

域名工具MCP服务器是一个用于综合域名分析的Model Context Protocol(MCP)服务器,可进行WHOIS查询、DNS记录查询和DNS健康检查,帮助用户深入分析和监控域名配置。

🚀 快速开始

前提条件

  • 推荐使用Python 3.13+ 。
  • 安装pip(Python包管理器)。
  • 需要网络连接以进行DNS/WHOIS查询。

安装步骤

1. 克隆仓库

git clone https://github.com/deshabhishek007/domain-tools-mcp-server.git
cd domain-tools-mcp-server

2. 创建虚拟环境(推荐)

python3 -m venv domain-tools-env
source domain-tools-env/bin/activate

3. 安装依赖

pip install -r requirements.txt

4. 验证安装

python -c "import mcp, dns.resolver, whois; print('All dependencies installed successfully!')"

部署方式

本地开发

python domain_tools_server.py

或者使其可执行:

chmod +x domain_tools_server.py
./domain_tools_server.py

生产环境部署

使用systemd(Linux)
  1. 创建服务文件 /etc/systemd/system/domain-tools-mcp.service
[Unit]
Description=Domain Tools MCP Server
After=network.target

[Service]
Type=simple
User=your-username
WorkingDirectory=/path/to/your/project
Environment=PATH=/path/to/your/project/domain-tools-env/bin
ExecStart=/path/to/your/project/domain-tools-env/bin/python domain_tools_server.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  1. 启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable domain-tools-mcp.service
sudo systemctl start domain-tools-mcp.service
使用Docker
  1. 创建 Dockerfile
FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY domain_tools_server.py .
EXPOSE 8080
CMD ["python", "domain_tools_server.py"]
  1. 构建并运行:
docker build -t domain-tools-mcp .
docker run -p 8080:8080 domain-tools-mcp

✨ 主要特性

  • WHOIS信息查询:获取详细的域名注册数据。
  • DNS记录查询:支持查询多种DNS记录类型(A、AAAA、MX、NS、TXT、CNAME、SOA)。
  • DNS健康检查:识别常见的DNS配置问题。
  • 综合分析:一站式完成域名评估。

📦 项目结构

.
├── domain_tools_server.py   # 主服务器实现
├── requirements.txt
├── .gitignore
├── README.md
└── ...

💻 使用示例

基础用法

MCP客户端集成

服务器实现了Model Context Protocol,可以与任何兼容MCP的客户端集成。 示例MCP客户端配置:

{
  "servers": {
    "domain-tools": {
      "command": "python",
      "args": ["/path/to/domain_tools_server.py"],
      "env": {}
    }
  }
}

📚 详细文档

API参考

可用工具

1. WHOIS查询
  • 参数
    • domain(字符串,必填):要查询的域名。
  • 示例请求
{
  "tool": "whois_lookup",
  "arguments": {
    "domain": "example.com"
  }
}
  • 示例输出
{
  "domain": "example.com",
  "registrar": "Example Registrar Inc.",
  "creation_date": "2023-01-15T00:00:00Z",
  "expiration_date": "2025-01-15T00:00:00Z",
  "updated_date": "2024-01-15T00:00:00Z",
  "status": ["clientTransferProhibited"],
  "name_servers": ["ns1.example.com", "ns2.example.com"],
  "days_until_expiry": 215
}
2. DNS记录查询
  • 参数
    • domain(字符串,必填):要查询的域名。
    • record_types(数组,可选):要查询的DNS记录类型(默认:["A", "AAAA", "MX", "NS", "TXT", "CNAME", "SOA"])。
  • 示例请求
{
  "tool": "dns_records",
  "arguments": {
    "domain": "example.com",
    "record_types": ["A", "MX", "NS"]
  }
}
3. DNS健康检查
  • 参数
    • domain(字符串,必填):要分析的域名。
  • 示例请求
{
  "tool": "dns_health_check",
  "arguments": {
    "domain": "example.com"
  }
}
4. 完整域名分析
  • 参数
    • domain(字符串,必填):要分析的域名。
  • 示例请求
{
  "tool": "domain_analysis",
  "arguments": {
    "domain": "example.com"
  }
}

工具架构

每个工具都遵循JSON输入架构。完整细节请查看代码。

响应格式

所有工具返回的响应格式如下:

[
  {
    "type": "text",
    "text": "Tool-specific formatted output"
  }
]

配置

DNS解析器

可以在服务器代码中自定义DNS解析器:

self.dns_resolver.nameservers = ['8.8.8.8', '8.8.4.4']
self.dns_resolver.timeout = 10
self.dns_resolver.lifetime = 30

环境变量

可以使用环境变量配置服务器:

export DNS_TIMEOUT=10
export DNS_LIFETIME=30
export WHOIS_TIMEOUT=30
export SERVER_NAME="domain-tools"
export SERVER_VERSION="1.0.0"

🔧 技术细节

故障排除

常见问题

  • 导入错误:运行 pip install --upgrade mcp dnspython python-whois pydantic
  • DNS解析失败
    • 检查网络连接。
    • 尝试不同的DNS服务器。
    • 增加超时时间。
  • WHOIS查询失败
    • 某些域名可能限制了WHOIS访问。
    • 可能存在速率限制。
  • 权限错误
    • 使用适当的权限运行。
    • 测试时使用非特权端口。

调试模式

在服务器中添加以下代码启用调试日志:

import logging
logging.basicConfig(level=logging.DEBUG)

安全考虑

  • 输入验证:始终验证域名输入。
  • 速率限制:实施速率限制以防止滥用。
  • 网络安全:使用安全的DNS解析器。
  • 日志记录:记录所有查询以进行审计。
  • 访问控制:必要时实施身份验证。

📄 许可证

本项目采用MIT许可证。详情请参阅 LICENSE 文件。

致谢

作者

注意事项

  • 此服务器旨在用作后端服务,或作为使用MCP协议进行通信的更大系统的一部分。
  • 有关MCP的更多信息,请参阅 官方文档
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端