云文档监控助手 - 自动追踪文档更新并生成AI摘要的MCP服务器
Project description
云文档监控助手
自动监控云厂商(阿里云、百度云)官网文档更新,检测变更并使用AI生成摘要通知。
功能特性
- 🕷️ 多云支持: 支持阿里云、百度云文档爬取
- ?? 变更检测: 智能识别文档的新增、修改和删除
- 🤖 AI摘要: 使用通义千问生成中文变更摘要
- 📢 多渠道通知: 支持 aiflow、如流机器人、文件输出
- 💾 历史记录: 完整的文档版本历史和变更记录
- 🔧 MCP集成: 可作为MCP服务器,供AI助手调用
- ⏰ 定时执行: 支持 crontab 定时自动检查
快速开始
1. 安装依赖
pip install -r requirements.txt
2. 配置环境变量
创建 .env 文件:
# 通义千问 API Key(必需)
DASHSCOPE_API_KEY=your_api_key
# aiflow Webhook 地址(可选)
AIFLOW_WEBHOOK_URL=https://aiflow.baidu-int.com/server/webhook/xxx
# 监控产品列表,逗号分隔(可选,覆盖 config.yaml)
MONITOR_PRODUCTS=/vpc,/dns,/vpn
3. 运行
# 手动执行一次检查
python -m src.main --check-now
# 启动定时任务服务
python -m src.main
项目结构
cloud-doc-monitor/
├── src/
│ ├── main.py # 主入口(定时任务)
│ ├── mcp_server.py # MCP 服务器
│ ├── crawler.py # 阿里云文档爬虫
│ ├── baidu_crawler.py # 百度云文档爬虫
│ ├── detector.py # 变更检测
│ ├── summarizer.py # AI 摘要生成
│ ├── notifier.py # 通知发送
│ ├── storage.py # 数据存储
│ ├── scheduler.py # 任务调度
│ ├── config.py # 配置管理
│ ├── models.py # 数据模型
│ └── utils.py # 工具函数
├── bin/
│ └── run_check.sh # 定时任务脚本
├── config.yaml # 配置文件
├── requirements.txt # Python 依赖
└── .env # 环境变量(需自行创建)
配置说明
编辑 config.yaml:
# 监控产品列表(阿里云文档 alias)
monitor_products:
- "/vpc" # 专有网络
- "/dns" # 云解析
- "/vpn" # VPN网关
# 调度配置
scheduler:
cron: "15 11 * * *" # 每天 11:15 执行
timezone: "Asia/Shanghai"
# 通知配置
notifications:
- type: "aiflow"
enabled: true
webhook_url: "${AIFLOW_WEBHOOK_URL}"
- type: "file"
enabled: true
output_dir: "./notifications"
MCP 集成
启动 MCP 服务器
python -m src.mcp_server
配置 MCP 客户端
在 .kiro/settings/mcp.json 中:
{
"mcpServers": {
"cloud-doc-monitor": {
"command": "/path/to/venv/bin/python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/project",
"env": {
"DASHSCOPE_API_KEY": "your_key",
"AIFLOW_WEBHOOK_URL": "your_webhook_url",
"MONITOR_PRODUCTS": "/vpc,/dns,/vpn"
}
}
}
}
可用 MCP 工具
| 工具名 | 功能 |
|---|---|
get_doc |
获取单篇文档内容(支持关键词搜索) |
list_product_docs |
列出产品下所有文档 |
check_doc_changes |
检查指定文档的变更 |
check_product_changes |
检查单个产品的文档变更 |
monitor_products |
主入口 - 监控多个产品并发送通知 |
check_recent_updates |
检查最近N天的更新 |
compare_cloud_docs |
对比阿里云和百度云的产品文档 |
get_statistics |
获取监控统计信息 |
调用示例
// 监控多个产品
monitor_products(products=["/vpc", "/dns"], send_notification=true)
// 检查最近7天更新
check_recent_updates(product_alias="/vpc", days=7)
// 对比阿里云和百度云
compare_cloud_docs(product="VPC")
定时任务配置
方式一:系统 crontab
# 添加定时任务(每天 11:15 执行)
crontab -e
# 添加以下行
15 11 * * * /path/to/project/bin/run_check.sh >> /path/to/project/logs/cron.log 2>&1
方式二:Docker
docker-compose up -d
通知渠道
aiflow(百度内部)
notifications:
- type: "aiflow"
webhook_url: "${AIFLOW_WEBHOOK_URL}"
通知数据格式:
{
"event": "doc_change_notification",
"user": "alimujiangayiziba",
"title": "云文档监控报告",
"summary": "...",
"changes": [...]
}
如流机器人
notifications:
- type: "ruliu"
webhook_url: "${RULIU_WEBHOOK_URL}"
本地文件
notifications:
- type: "file"
output_dir: "./notifications"
开发
# 语法检查
python -m py_compile src/*.py
# 运行测试
pytest
# 测试通知
python scripts/test_ruliu_notifier.py
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cloud_doc_monitor-0.2.0.tar.gz
(31.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cloud_doc_monitor-0.2.0.tar.gz.
File metadata
- Download URL: cloud_doc_monitor-0.2.0.tar.gz
- Upload date:
- Size: 31.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
332bf17597ca44cfaea6d04fa72d0cb0d46d4ea1b965649cdc141bf35e2cc2f2
|
|
| MD5 |
58b88d29f161078274a6608aa0b061d8
|
|
| BLAKE2b-256 |
a7698330126bf16604153fb5ee4e4bbb0bdcb9ed0b179c94ebba6ff19b776d38
|
File details
Details for the file cloud_doc_monitor-0.2.0-py3-none-any.whl.
File metadata
- Download URL: cloud_doc_monitor-0.2.0-py3-none-any.whl
- Upload date:
- Size: 38.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3e0fc05859b769c9b82962b3b9cf8bd12518512aab902d0ab1d7279926d7e1
|
|
| MD5 |
9a58774f5af622b744d4a7142286dfeb
|
|
| BLAKE2b-256 |
07fd879a4750f6af7a5889ea5ddd4b7ed0db2a5c293795dfca6344c454d2980e
|