域名分析服务器

一个提供WHOIS查询、DNS记录查询和DNS健康检查的域名分析工具。

  • by deshabhishek007
  • Python
  • 本地部署
  • 14 星标
  • 更新于
在 GitHub 查看 deshabhishek007/domain-tools-mcp-server

使用说明

域工具MCP服务器

用于全面域分析的模型上下文协议(MCP)服务器:WHOIS、DNS记录和DNS健康检查。


目录

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

概述

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


特性

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

项目结构

.
├── domain_tools_server.py   # Main server implementation
├── 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('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
    
  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": "Tool-specific formatted output"
  }
]

配置

域名解析模块

您可以在服务器代码中自定义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许可证获得许可。请参阅 许可证 文件以获取详细信息。


致谢


作者


备注

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