这是一个用于全面域名分析的模型上下文协议(MCP)服务器:包括WHOIS查询、DNS记录查询以及DNS健康检查。
Domain Tools MCP Server 是一个提供全面域名分析能力的模型上下文协议(MCP)服务器。它提供了WHOIS查询工具、DNS记录查询工具以及DNS健康检查工具,帮助您分析和监控域名配置。
.
├── domain_tools_server.py # 主服务器实现
├── requirements.txt
├── .gitignore
├── README.md
└── ...
git clone https://github.com/deshabhishek007/domain-tools-mcp-server.git
cd domain-tools-mcp-server
python3 -m venv domain-tools-env
source domain-tools-env/bin/activate
pip install -r requirements.txt
python -c "import mcp, dns.resolver, whois; print('所有依赖项已成功安装!')"
python domain_tools_server.py
或者使其可执行:
chmod +x domain_tools_server.py
./domain_tools_server.py
创建服务文件 /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
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable domain-tools-mcp.service
sudo systemctl start domain-tools-mcp.service
创建一个 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"]
构建并运行:
docker build -t domain-tools-mcp .
docker run -p 8080:8080 domain-tools-mcp
该服务器实现了模型上下文协议,并可以与任何兼容MCP的客户端集成。
示例MCP客户端配置:
{
"servers": {
"domain-tools": {
"command": "python",
"args": ["/path/to/domain_tools_server.py"],
"env": {}
}
}
}
参数:
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
}
参数:
domain(字符串,必需):要查询的域名record_types(数组,可选):要查询的DNS记录类型(默认:["A", "AAAA", "MX", "NS", "TXT", "CNAME", "SOA"])示例请求:
{
"tool": "dns_records",
"arguments": {
"domain": "example.com",
"record_types": ["A", "MX", "NS"]
}
}
参数:
domain(字符串,必需):要分析的域名示例请求:
{
"tool": "dns_health_check",
"arguments": {
"domain": "example.com"
}
}
参数:
domain(字符串,必需):要分析的域名示例请求:
{
"tool": "domain_analysis",
"arguments": {
"domain": "example.com"
}
}
每个工具遵循JSON模式输入。详见代码中的详细信息。
所有工具返回响应如下格式:
[
{
"type": "text",
"text": "工具特定格式化的输出"
}
]
您可以在服务器代码中自定义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解析失败:
WHOIS查询失败:
权限错误:
通过在服务器中添加以下内容启用调试日志:
import logging
logging.basicConfig(level=logging.DEBUG)
本项目采用MIT许可证。详情请参阅LICENSE文件。