返回市场
域名工具MCP服务器

域名工具MCP服务器

作者:deshabhishek0078 星标更新:2025-06-21

项目介绍

Domain Tools MCP Server

Python License

这是一个用于全面域名分析的模型上下文协议(MCP)服务器:包括WHOIS查询、DNS记录查询以及DNS健康检查。


目录

  1. 概述
  2. 特性
  3. 项目结构
  4. 需求
  5. 安装
  6. 部署
  7. 使用
  8. API参考
  9. 配置
  10. 故障排除
  11. 安全考虑
  12. 支持与贡献
  13. 许可证
  14. 致谢

概述

Domain Tools MCP Server 是一个提供全面域名分析能力的模型上下文协议(MCP)服务器。它提供了WHOIS查询工具、DNS记录查询工具以及DNS健康检查工具,帮助您分析和监控域名配置。


特性

  • WHOIS信息:获取详细的域名注册数据。
  • DNS记录:查询各种类型的DNS记录(A, AAAA, MX, NS, TXT, CNAME, SOA)。
  • DNS健康检查:识别常见的DNS配置问题。
  • 全面分析:在一个工具中完成完整的域名评估。

项目结构

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

需求

  • 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('所有依赖项已成功安装!')"

部署

本地开发

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=110
    
    [Install]
    WantedBy=multi-user.target
    
  2. 启用并启动服务:

    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"]
    
  2. 构建并运行:

    docker build -t domain-tools-mcp .
    docker run -p 8080:8080 domain-tools-mcp
    

使用

MCP客户端集成

该服务器实现了模型上下文协议,并可以与任何兼容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": "工具特定格式化的输出"
  }
]

配置

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解析器。
  • 日志:记录所有查询以供审核。
  • 访问控制:如有需要,实现身份验证。

支持与贡献

  • 对于问题、功能请求或贡献,请在GitHub上打开问题或拉取请求。
  • 欢迎贡献!请参阅故障排除部分,并在报告错误时提供详细的错误消息和日志。

许可证

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


致谢


作者


备注

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