______________________________________________________________________
🧠 订阅智能MCP
使用构建的自主订阅监控系统 MCP(模型上下文协议).\ 它使用LLM跟踪订阅、检测计费风险、查找重复项、监控预算并解释一切-- 而不让LLM控制逻辑.
核心理念: 规则决定。LLM解释道。
______________________________________________________________________
✨ 特性
- 🔔 试用期到期警报(7/3/1天)
- 🔁 续订提醒
- 💸 计费开始通知
- 🔍 重复订阅检测
- 📊 月度支出分析
- 🎯 预算限额警报
- 🤖 LLM驱动的人类解释
- 📧 电子邮件通知
- 📲 通过推送通知 ntfy.sh
- 💬 交互式聊天CLI
- 📅 日历导出(
.ics) - 📊 流线型仪表板
- 🐳 Docker和Docker Compose支持
______________________________________________________________________
🧩 高级体系结构
subscriptions.json↓ storage.py↓ 智能.py← 规则决定↓ llm_explainer.py← LLM解释↓ notifier.py← 电子邮件/推送↓ subscription_operator.py(代理)↓ MCP工具/CLI/仪表板
LLM从不触发行动。\ 它只解释了规则产生的事实。
______________________________________________________________________
🚀 快速入门(Docker–推荐)
docker compose up -d
Check logs:
docker logs -f subintel
Stop:
docker compose down
🧪 本地运行(无Docker)
pip安装-r订阅_intelligence_mcp/requirements.txt python subscription_operator.py
______________________________________________________________________
⚙️ 配置
在项目根目录中创建.env文件。
👉 提供了一个即用型.env.example文件。 在运行之前复制它并重命名为.env。
.env示例
# =====================
# Email Notifications
# =====================
EMAIL_ENABLED=true
EMAIL_USER=your_email@gmail.com
EMAIL_PASS=your_gmail_app_password
EMAIL_TO=your_email@gmail.com
# =====================
# Push Notifications (ntfy)
# =====================
NTFY_ENABLED=true
NTFY_TOPIC=subintel-demo
# =====================
# Agent Settings
# =====================
CHECK_INTERVAL_HOURS=6
MONTHLY_SUBSCRIPTION_BUDGET=2500
# =====================
# LLM Settings
# =====================
OLLAMA_MODEL=llama3.2
OLLAMA_TIMEOUT=120
# =====================
# Storage & Logs
# =====================
DATA_DIR=/data
LOG_DIR=/data/logs
LOG_LEVEL=INFO
## ⚠️ Important Notes
Gmail requires App Password, not your real password
ntfy.sh topics are public → choose a unique topic
Docker users must mount /data as a volume
---🧰 MCP工具可用
| 工具 | 说明 |
|---|---|
list_subscriptions() | 列出所有订阅 |
add_subscription() | 添加新订阅 |
analyze_spend() | 月度+品类支出 |
recommend_savings() | 检测重复和节省 |
get_monthly_summary() | 月度概览 |
status() | 代理运行时状态 |
export_calendar_file() | 生成 .ics 日历 |
______________________________________________________________________
📖 使用示例
🐍 Python(MCP客户端)
from subscription_mcp import mcp
mcp.call_tool("add_subscription", {
"name": "Netflix",
"monthly_cost": 499,
"category": "Streaming",
"billing_start_date": "2025-01-01",
"auto_pay": True
})
subs = mcp.call_tool("list_subscriptions")
print(subs)
spend = mcp.call_tool("analyze_spend")
print(spend)
print(mcp.call_tool("recommend_savings"))
______________________________________________________________________
💬 聊天CLI
python chat_cli.py命令示例:
显示订阅 我花了多少钱 建议节省 导出日历 状态
______________________________________________________________________
📊 仪表板(Streamlit)
streamlit run dashboard.py仪表板包括:
订阅表
类别饼图
续订时间表
年度成本预测
______________________________________________________________________
📁 项目结构
订阅情报/ ├── subscription_intelligence_mcp/ │ ├── __初始化__南美国家巴拉圭的缩写(Paraguay) │ ├── subscription_mcp.py │ ├── subscription_operator.py │ ├── 智能.py │ ├── llm_explainer.py │ ├── notifier.py │ ├── storage.py │ ├── agent_state.py │ ├── chat_cli.py │ ├── dashboard.py │ ├── calendar_export.py │ ├── 验证器.py │ ├── config.py │ └── 需求.txt ├── data/ │ └── subscriptions.json ├── 测试/ ├── docs/ ├── Dockerfile ├── docker-compose.yml ├── .env.example ├── 许可证 └── README.md
______________________________________________________________________
🧠 情报工作原理
1.️⃣ 基于规则的警报
分析账单、试用和续订日期
在7/3/1天触发警报
检测重复类别
强制执行每月预算限额
2.️⃣ 开支分析
每月总支出
按类别分组
计算年度节省额
3.️⃣ LLM解释层
输入:事实警报数据
输出:冷静,人性化解释
没有决策权
4.️⃣ 通知
📧 电子邮件(SMTP)
📲 ntfy.sh推送通知
智能重复数据删除可防止垃圾邮件
______________________________________________________________________
🐳 Docker详细信息
构建图像:
docker build -t subintel .运行容器:
docker run -d \
--name subintel \
--env-file .env \
-v $(pwd)/data:/data \
subintel
______________________________________________________________________
🧪 测试
pytest
pytest --cov=subscription_intelligence_mcp______________________________________________________________________
🐛 故障排除
订阅未保存
确保/data/scriptions.json存在
检查Docker卷装载
验证写入权限
电子邮件未发送
使用Gmail应用程序密码
确认EMAIL_ENABLED=真
检查日志:docker日志-f subintel
Docker立即退出
缺少依赖关系→ 无缓存重建
检查Python错误日志
______________________________________________________________________
📜 许可证
麻省理工学院许可证©2026 Arunmozhi(Arunmozhi-27)
______________________________________________________________________
注:覆盖范围侧重于核心逻辑和验证。 有意排除运行时循环、仪表板和通知传输
