AI新闻通知MCP服务器
基于多代理的AI趋势新闻收集和通知系统。自动收集、翻译、分析和分类最新AI相关新闻,并通过Telegram和电子邮件发送。
🏗️ 系统体系结构
代理结构
Collector → Translator → Analyzer → Categorizer → Senders
(뉴스 수집) (번역) (분석) (분류) (전송)
↓
┌─────────────────┐
│ Telegram-Sender │
└─────────────────┘
↓
┌─────────────────┐
│ Mail-Sender │
└─────────────────┘代理详细信息
1.Collector Agent(收集器)
- 角色:收集国内外AI趋势新闻
- 来源:国内新闻门户网站、海外科技媒体、RSS订阅源
- 特点:AI相关关键字过滤,重复数据删除
2.Translator Agent(翻译器)
- 角色:海外新闻韩语翻译
- 支持:谷歌翻译API,Papago API
- 特点:翻译质量评估,可信度测量
3.Analyzer Agent(分析器)
- 角色:分析和总结新闻内容(10行以内)
- 模型:简单分析,基于GPT的分析
- 输出:总结、关键点、重要性评估
4.分类代理(分类器)
- 角色:新闻类别分类和标记
- 类别:ML、DL、NLP、CV、生成AI等10个类别
- 特点:趋势级别评估(High/Medium/Low)
5.Telegram-Sender Agent(Telegram发送者)
- 角色:发送到格式化的新闻电报
- 功能:订阅管理、命令处理(/start、/help等)
- 格式:Mark Down支持,利用Emogy
6.Mail-Sender Agent(邮件发件人)
- 角色:通过HTML/文本电子邮件发送新闻
- 功能:新闻摘要,收件人管理
- 模板:基于Jinja2的动态模板
🚀 安装和设置
1.首选参数
# 가상환경 생성
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 의존성 설치
pip install -r requirements.txt
# 환경 변수 설정
cp .env.example .env
# .env 파일에 필요한 설정 입력2.必需设置
设置Telegram
- 创建BotFather自动机:
/newbot创建命令自动机并发放令牌 - 确认聊天ID:通过@userinfobot验证聊天ID
- 设置环境变量:
TELEGRAM_BOT_TOKEN=your_bot_token_here
ALLOWED_CHAT_IDS=123456789,987654321电子邮件设置(Gmail示例)
- 创建应用程序密码:Google帐户设置→安全→应用程序密码
- 设置环境变量:
SMTP_USERNAME=your_email@gmail.com
SMTP_PASSWORD=your_app_password_hereAPI密钥设置
- 谷歌翻译:从Google Cloud Console发放API密钥
- 开放人工智能:在platform.openai.com上发放API密钥
- 帕帕戈:Naver Developers颁发客户端ID/秘密
🏃♂️ 执行方法
运行MCP服务器
python main_news_mcp.pyMCP工具示例
开始收集新闻
{
"tool": "start_news_collection",
"parameters": {
"force": true
}
}订阅Telegram
{
"tool": "subscribe_telegram",
"parameters": {
"chat_id": 123456789
}
}电子邮件订阅
{
"tool": "subscribe_email",
"parameters": {
"email": "user@example.com"
}
}发送测试通知
{
"tool": "send_test_notification",
"parameters": {
"channel": "all"
}
}📋 MCP工具列表
| 工具名称 | 说明 | 参数 |
|---|---|---|
start_news_collection | 开始收集新闻 | force (布尔值) |
get_news_summary | 最新新闻摘要 | limit, category, trend_level |
subscribe_telegram | 订阅Telegram | chat_id (int) |
subscribe_email | 订阅电子邮件 | email (字符串) |
configure_news_sources | 新闻源设置 | enable_domestic, enable_international |
get_agent_status | 查看代理状态 | 无 |
send_test_notification | 发送测试通知 | channel (电报/电子邮件/全部) |
📊 数据流
1. Collector Agent
└─ RSS/API에서 뉴스 수집
└─ AI 키워드 필터링
2. Translator Agent (해외 뉴스만)
└─ Google/Papago API로 번역
└─ 번역 품질 평가
3. Analyzer Agent
└─ 뉴스 내용 분석
└─ 10줄 이내 요약 생성
└─ 중요도 평가
4. Categorizer Agent
└─ 10개 카테고리로 분류
└─ 트렌드 레벨 결정
└─ 태그 생성
5. Senders
└─ Telegram: 포맷팅된 메시지 전송
└─ Email: HTML/텍스트 이메일 전송🔧 自定义
添加新闻源
.env 将源添加到文件:
DOMESTIC_NEWS_SOURCES=https://new-source.com/rss,...
INTERNATIONAL_NEWS_SOURCES=https://tech-source.com/feed,...扩展类别
categorizer_agent.py的 categories 向字典添加新类别
扩展Telegram命令
telegram_sender_agent.py的 setup_handlers() 向方法添加新处理程序
🐛 故障排除
常见问题
- 依赖性错误:
pip install -r requirements.txt重新运行 - API密钥错误:
.env验证文件的API密钥 - Telegram连接错误:检查机器人令牌和聊天ID
检查日志
# 디버그 모드 실행
LOG_LEVEL=DEBUG python main_news_mcp.py测试
# 테스트 알림 전송
{
"tool": "send_test_notification",
"parameters": {"channel": "telegram"}
}📁 文件结构
telegram-mcp-server/
├── main_news_mcp.py # MCP 서버 메인 파일
├── agent_base.py # 에이전트 기반 클래스
├── collector_agent.py # 뉴스 수집 에이전트
├── translator_agent.py # 번역 에이전트
├── analyzer_agent.py # 분석 에이전트
├── categorizer_agent.py # 분류 에이전트
├── telegram_sender_agent.py # 텔레그램 발신 에이전트
├── mail_sender_agent.py # 이메일 발신 에이전트
├── requirements.txt # 의존성 목록
├── .env.example # 환경 변수 예시
├── .gitignore # Git 무시 파일
└── README.md # 이 파일🔮 未来改进
- \[\]数据库连接(保存新闻历史记录)
- \[\]开发Web仪表板
- \[\]集成更复杂的NLP分析模型
- \[\]扩展了多语言支持
- \[\]自定义过滤
- \[\]构建CI/CD管道
📄 许可证
MIT许可证
🤝 贡献
欢迎发布问题报告和PR!
