🌐 带MCP的DNS监控代理
一个智能的AI驱动的DNS域监控系统,可以让您跟踪 世界上任何域名 -无论你是否拥有它。非常适合监控您自己的域名,跟踪竞争对手的注册,并在有价值的域名即将过期时收到警报。使用模型上下文协议(MCP)、OpenAI代理和漂亮的Gradio接口构建。
💡 关键见解: 您可以跟踪和监控互联网上的任何域名,而不仅仅是您拥有的域名!获取竞争情报,识别收购机会,永远不要错过有价值的域名即将到期的时间。
🎯 为什么要跟踪任何域名?
你不需要拥有一个域名来跟踪它! 此工具非常适合:
- 🏢 竞争对手情报:监控竞争对手域名何时到期,以识别潜在的收购机会
- 💎 域名投资:跟踪高级域名,并在其即将过期时收到通知
- 🔒 品牌保护:监控与您的品牌相似的域名,并在域名可用时迅速采取行动
- 📈 市场调研:密切关注行业参与者及其域名组合
- 🎯 收购策略:建立一个要获取的域的监视列表,并在它们过期之前收到警报
✨ 特性
- 🌍 追踪全球任何域名:监控互联网上的任何域名-不需要所有权!
- 追踪您自己的域名 - 监控竞争对手域名 - 关注高级域名以寻找收购机会 - 建立一个你感兴趣的域名观察列表
- 🔍 全面的领域情报:获取任何域的完整DNS信息:
- 域名注册机构 - 创建日期 - 到期日期(确切知道到期时间!) - 名称服务器
- 💾 自动跟踪数据库:自动将域信息保存到本地SQLite数据库
- 构建您的域名观察列表 - 追踪无限域名 - 历史跟踪数据
- ⏰ 智能过期监测:收到3个月内域名到期的通知,并根据紧急程度进行优先级排序:
- 🔴 严重:\ 备注:此工具使用公开的WHOIS数据。任何人都可以合法访问检索到的所有信息。然而,始终尊重知识产权,并以合乎道德的方式使用这一工具。
🏗️ 建筑
该项目利用 模型上下文协议(MCP) 创建模块化、可扩展的系统:
- MCP服务器:
- dns_server.py -处理DNS查找和数据库操作 - push_server.py -管理通知传递
- AI 代理:
dns_agent.py-编排工具并提供自然语言交互
- 用户界面:
user_interface.py-基于Gradio的聊天界面
- 核心逻辑:
dns_lookup.py-DNS API集成和数据库管理
- 监控:
monitor_dns.py-自动监控代理
📋 先决条件
- Python 3.11或更高版本
- 紫外线 -快速Python包安装程序
- API Ninjas API密钥(用于DNS查找)-在 api-ninjas.com
- OpenAI API密钥(用于AI代理)
🚀 安装
1.安装uv
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Or via pip
pip install uv2.克隆存储库
git clone
cd Domain-Monitoring-Agent-MCP3.安装依赖项
随着 uv,安装依赖关系非常简单-它会自动创建一个虚拟环境并安装所有内容:
# Install all dependencies (this creates .venv and installs packages)
uv sync就是这样! uv 将:
- ✅ 在以下位置创建虚拟环境
.venv/ - ✅ 从安装所有必需的依赖项
pyproject.toml - ✅ 锁定依赖版本以实现可重复性
可选:安装开发依赖项(Jupyter笔记本)
uv sync --extra dev4.配置环境变量
创建一个 .env 项目根目录中的文件:
# .env
API_NINJA=your_api_ninjas_key_here
OPENAI_API_KEY=your_openai_api_key_here💻 用法
交互式聊天界面(推荐)
启动Gradio网络界面,获得用户友好的聊天体验:
uv run user_interface.py然后打开浏览器 http://localhost:7860
DNS Lookup Assistant Interface
您可以尝试的示例查询:
- “competitor-site.com什么时候到期?”(跟踪竞争对手域名!)
- “检查premium-domain.com的到期日期,并将其添加到我的监视列表中”
- “那个很酷的创业网站的注册商是谁?”
- “显示3个月内到期的所有域名”(查找收购机会)
- “查找mybrand-typo.com并跟踪它”(品牌保护)
- “列出我正在跟踪的所有域”
- “获取潜在收购的完整信息.com”
自动监控代理
运行自主监控代理,检查过期域并发送通知:
uv run monitor_dns.py这将:
- 扫描所有被跟踪的域名(您的+竞争对手+目标)
- 识别3个月内到期的域名
- 按紧急程度排序(严重\<7天,警告\<30天)
- 为每个域发送推送通知
非常适合:
- 竞争对手域名即将过期时收到警报
- 从不错过优质域名机会
- 确保您自己的域名保持更新
MCP服务器独立
您还可以直接运行MCP服务器,以便与其他MCP客户端集成:
uv run dns_server.pyPython API用法
from dns_lookup import DNS
# Track a competitor's domain
competitor_dns = DNS(domain="competitor.com")
# Get expiration date - when does it expire?
expiry = competitor_dns.get_expiry_date()
print(f"Competitor domain expires: {expiry}")
# Get all information about the domain
all_info = competitor_dns.get_all_info()
print(all_info)
# Add competitor domain to your watchlist
save_result = competitor_dns.save_dns_search()
print(f"Added to watchlist: {save_result}")
# Track a premium domain you want to acquire
premium_dns = DNS(domain="premium-domain.com")
premium_info = premium_dns.get_all_info()
premium_dns.save_dns_search()
# Check all domains expiring soon (acquisition opportunities!)
expiring = DNS.watch_dns()
print(f"Domains expiring soon: {expiring}")
# View your complete watchlist (owned + tracked domains)
all_domains = DNS.get_all_tracked_domains()
print(f"Total domains tracked: {all_domains['total_domains']}")📁 项目结构
Domain-Monitoring-Agent-MCP/
├── dns_agent.py # AI agent orchestration
├── dns_server.py # MCP server for DNS operations
├── dns_lookup.py # Core DNS lookup and database logic
├── user_interface.py # Gradio web interface
├── monitor_dns.py # Automated monitoring agent
├── push_server.py # Push notification MCP server
├── dns_records.db # SQLite database (auto-created)
├── dns_agent.ipynb # Jupyter notebook for experimentation
├── .env # Environment variables (create this)
├── .venv/ # Virtual environment (created by uv)
├── pyproject.toml # Project metadata and dependencies
├── uv.lock # Locked dependency versions
├── .gitignore # Git ignore patterns
├── docs/ # Documentation
│ └── static/ # Screenshots and assets
└── README.md # This file🛠️ 可用的MCP工具
DNS服务器通过MCP公开以下工具:
| 工具 | 说明 |
|---|---|
get_registrar | 获取域名注册商信息 |
get_creation_date | 获取域创建日期 |
get_expiry_date | 获取域过期日期 |
get_name_servers | 获取域名服务器 |
get_all_dns_info | 一次获取所有DNS信息 |
save_dns_search | 将域保存到跟踪数据库 |
lookup_and_save_domain | 查找和保存在一个操作中 |
watch_dns | 获取3个月内到期的域名 |
get_all_tracked_domains | 获取所有被跟踪的域名 |
🔧 使用的技术
- 紫外线 -快速Python包和项目管理器
- 模型上下文协议(MCP) -通用AI集成协议
- FastMCP -FastAPI风格的MCP服务器框架
- OpenAI代理 -AI代理编排
- 格拉迪奥 -机器学习应用程序的Web UI
- API忍者 -WHOIS/DNS数据API
- SQLite -用于域跟踪的轻量级数据库
- 派丹蒂克 -数据验证和设置管理
- Python dotenv -环境变量管理
- 请求: -API调用的HTTP库
已安装的依赖项
运行后 uv sync,安装了以下软件包:
核心依赖关系:
requests-DNS API的HTTP请求python-dotenv-环境配置pydantic-数据验证gradio-Web界面mcp-模型上下文协议fastmcp-MCP服务器框架openai-agents-AI代理编排
开发依赖关系(可选):
jupyter-笔记本电脑环境ipykernel-Jupyter内核
🎯 用例
💼 竞争情报
- 监控竞争对手域名:跟踪竞争对手的域名何时到期
- 收购机会:在有价值的竞争对手域名即将过期时收到通知
- 市场分析:了解竞争对手的领域战略和投资组合
- 品牌保护:监控类似域名和打字尝试
💰 域名投资与收购
- 高级域名搜索:跟踪高价值域名,并在过期前收到警报
- 投资组合构建:监控您要获取的域,并在正确的时间采取行动
- 接住水滴:确切知道域名何时可以注册
- ROI优化:不要错过宝贵的域名机会
🏢 商业和个人使用
- 个人域名组合:在一个地方跟踪您的所有域名注册
- 关键业务领域:确保您的重要域名永不过期
- 代理/客户管理:跟踪客户端域并接收续订提醒
- 域名经销商运营:通过自动警报管理大型投资组合
🔒 安全和品牌监控
- 品牌保护:在其他人抢走之前,监控与你的品牌相似的域名
- 安全监控:跟踪重要域并检测注册更改
- 防御性注册:知道何时保护与您的品牌相关的域名
现实世界场景
- 📌 “我竞争对手的域名将在15天后到期,这是提出报价的最佳时机”
- 📌 “我想要的高级域名将于下个月到期!”
- 📌 “有人注册了与我的品牌类似的域名-我需要跟踪它”
- 📌 “我想知道competitor.com什么时候可以续订”
❓ 常见问题解答
追踪我不拥有的域名合法吗?
对! 该工具使用任何人都可以访问的公开WHOIS数据。域名注册信息按设计是公开的(ICANN要求)。然而:
- ✅ 在道德和法律上使用此工具
- ✅ 尊重知识产权和商标权
- ✅ 请勿用于恶意目的
- ✅ 遵守当地有关域名获取的法律
我可以追踪竞争对手的域名吗?
当然! 这是主要用例之一。许多企业监控竞争对手的域名,以:
- 了解他们的数字战略
- 识别收购机会
- 保护他们的品牌
- 随时了解行业动态
域名所有者知道我在跟踪他们吗?
号码 查找WHOIS数据是一项标准的被动操作。当您查询域所有者的信息时,不会向其发送通知。
当跟踪的域过期时会发生什么?
该工具将在到期前(最多提前90天)提醒您。域过期后,通常会经过以下步骤:
- 宽限期 (0-45天):所有者可以续订
- 赎回期 (30天):业主可以以更高的成本收回
- 删除期 (5天):即将上市
- 可用:你可以注册!
我可以跟踪具有隐私保护的域名吗?
您可以跟踪它们,但由于隐私服务,一些WHOIS信息可能会被编辑。您通常仍会收到到期日期和注册商信息。
🤝 贡献
欢迎投稿!请随时提交拉取请求。
📝 许可证
这个项目是开源的,可以在MIT许可证下使用。
🙏 致谢
📧 支持
有关问题、疑问或建议,请在存储库上打开问题。
______________________________________________________________________
由以下材料制成❤️ 使用MCP和AI代理
