使用说明
域工具MCP服务器
用于全面域分析的模型上下文协议(MCP)服务器:WHOIS、DNS记录和DNS健康检查。
目录
概述
域工具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)
-
创建服务文件
/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 -
启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable domain-tools-mcp.service sudo systemctl start domain-tools-mcp.service
使用Docker
-
创建一个
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的客户端集成。
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许可证获得许可。请参阅 许可证 文件以获取详细信息。
致谢
作者
- Abhishek Deshpande 的@deshabhishek007)
备注
- 此服务器旨在用作后端服务或使用MCP协议进行通信的更大系统的一部分。
- 有关MCP的更多信息,请参阅 官方文件.