AI-Powered Trending News Intelligence Platform
Filtering signal from noise - monitor what matters to you
- Overview
- Key Features
- Quick Start
- Configuration
- MCP Server
- Deployment Options
- Notification Channels
- License
SignalForge is an intelligent news aggregation and monitoring platform that helps you stay informed about topics that matter to you. Instead of drowning in information overload, SignalForge filters trending news from multiple platforms and delivers only what's relevant based on your custom keywords.
- 🎯 Focused Monitoring: Define your own keywords and get notifications only for relevant news
- 📊 Multi-Platform Aggregation: Collects trending topics from 10+ news platforms
- 🤖 AI-Powered Analysis: Built-in MCP server for AI-assisted news analysis
- 🔔 Smart Notifications: Multiple notification channels (Telegram, Email, Feishu, DingTalk, etc.)
- ⚡ Lightweight & Fast: Designed for easy deployment and minimal resource usage
- Multi-Platform Support: Aggregates from 10+ popular news platforms
- Smart Filtering: Filter news by custom keywords defined in
config/frequency_words.txt - Real-Time Updates: Configurable crawling intervals
- Weighted Ranking: Customizable algorithm to prioritize news sources
- Multiple Channels: Telegram, Email, Feishu, DingTalk, WeCom, ntfy
- Smart Batching: Automatic message batching for large updates
- Time Windows: Configure quiet hours to avoid notifications during off-hours
- Push Modes:
- Daily: Daily summary of all matching news
- Current: Latest trending topics from current rankings
- Incremental: Only notify when new matching topics appear
- 13 Powerful Tools for news query, analytics, and search
- FastMCP 2.0: Modern MCP protocol implementation
- Stdio & HTTP Transports: Flexible deployment options
- AI-Ready: Designed for integration with Claude, ChatGPT, and other AI assistants
- Data Query: Latest news, historical news, trending topics
- Analytics: Trend analysis, sentiment analysis, platform comparisons
- Search: Keyword search, fuzzy search, entity recognition
- System: Configuration management, status monitoring, manual triggers
- Python 3.10 or higher
- pip package manager
- Clone the repository
git clone https://github.com/ruslanmv/SignalForge.git
cd SignalForge- Install dependencies
pip install -r requirements.txt
pip install -e .- Configure your keywords
Edit config/frequency_words.txt and add keywords you want to monitor (one per line):
AI
Machine Learning
Tesla
SpaceX
Climate Change
- Configure notifications (optional)
Edit config/config.yaml and add your webhook URLs:
notification:
webhooks:
telegram_bot_token: "your-bot-token"
telegram_chat_id: "your-chat-id"
email_from: "your-email@example.com"
email_to: "recipient@example.com"- Run the crawler
python main.pycrawler:
request_interval: 1000 # Request interval in milliseconds
enable_crawler: true # Enable/disable crawling
use_proxy: false # Enable proxy if neededreport:
mode: "daily" # Options: "daily" | "current" | "incremental"- daily: Daily summary of all matching news
- current: Current top trending topics
- incremental: Only new matches (reduces notification spam)
notification:
enable_notification: true
push_window:
enabled: false # Enable time-based push control
time_range:
start: "09:00" # Start time (24h format)
end: "18:00" # End time
once_per_day: true # Only one notification per day in windowSignalForge includes a powerful MCP server for AI-assisted news analysis.
Stdio mode (for local AI assistants):
signalforge --transport stdioHTTP mode (for production):
signalforge --transport http --host 0.0.0.0 --port 3333| Category | Tool | Description |
|---|---|---|
| Data Query | get_latest_news |
Get most recent news batch |
get_news_by_date |
Query news by date | |
get_trending_topics |
Get trending keyword statistics | |
| Analytics | analyze_topic_trend |
Analyze topic trends over time |
analyze_data_insights |
Platform comparisons and insights | |
analyze_sentiment |
Sentiment analysis of news | |
find_similar_news |
Find related/similar news items | |
generate_summary_report |
Generate daily/weekly reports | |
| Search | search_news |
Unified search (keyword/fuzzy/entity) |
search_related_news_history |
Historical related news | |
| System | get_current_config |
View system configuration |
get_system_status |
Check system status | |
trigger_crawl |
Manually trigger news crawl |
For Claude Desktop, add to your config:
{
"mcpServers": {
"signalforge": {
"command": "signalforge",
"args": ["--transport", "stdio"],
"env": {
"SIGNALFORGE_ENV": "production"
}
}
}
}- Navigate to docker directory
cd docker- Start the service
docker-compose up -dThe crawler will run automatically on an hourly schedule using supercronic.
| Variable | Description | Default |
|---|---|---|
SIGNALFORGE_ENV |
Environment (dev/staging/production) | production |
SIGNALFORGE_LOG_LEVEL |
Logging level | INFO |
SignalForge supports multiple notification channels:
webhooks:
telegram_bot_token: "your-bot-token"
telegram_chat_id: "your-chat-id"webhooks:
email_from: "sender@example.com"
email_password: "app-password"
email_to: "recipient@example.com"
email_smtp_server: "" # Auto-detect if empty
email_smtp_port: "" # Auto-detect if emptywebhooks:
feishu_url: "https://open.feishu.cn/open-apis/bot/v2/hook/..."
dingtalk_url: "https://oapi.dingtalk.com/robot/send?access_token=..."
wework_url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=..."webhooks:
ntfy_server_url: "https://ntfy.sh" # Or your self-hosted server
ntfy_topic: "your-topic"
ntfy_token: "" # Optional for private topicsAll crawled news is stored in the output/ directory:
output/
├── 2025-11-24/
│ └── txt/
│ ├── 00-30.txt
│ ├── 01-30.txt
│ └── ...
└── 2025-11-25/
└── txt/
└── ...
Each file contains news from all configured platforms at that timestamp.
Adjust the importance of different ranking factors:
weight:
rank_weight: 0.6 # Position in platform rankings
frequency_weight: 0.3 # Appearance frequency
hotness_weight: 0.1 # Platform-specific hotness scoreCurrent platforms (configurable in config/config.yaml):
- Toutiao (Jinri Toutiao)
- Baidu Hot Search
- Zhihu
- Douyin
- Bilibili
- And more...
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit pull requests.
This tool is for personal news monitoring purposes only. Please respect the terms of service of all news platforms. The developers are not responsible for any misuse of this software.
For issues and questions, please use the GitHub issue tracker.
SignalForge - Forging clear signals from noisy data
Built with ❤️ for the information age