MCPcopy
hub / github.com/sansan0/TrendRadar

github.com/sansan0/TrendRadar @v6.10.0 sqlite

repository ↗ · DeepWiki ↗ · release v6.10.0 ↗
889 symbols 3,336 edges 72 files 723 documented · 81%
README

TrendRadar Banner

Deploy in 30 seconds — Say goodbye to endless scrolling, only see the news you truly care about

sansan0%2FTrendRadar | Trendshift

GitHub Stars GitHub Forks License Version MCP Docker Pulls Docker Pulls RSS AI Translation

WeWork WeChat Telegram DingTalk Feishu Email ntfy Bark Slack Generic Webhook

GitHub Actions GitHub Pages Docker MCP Support AI Analysis Push AI Smart Filter

中文 | English

This project is designed to be lightweight and easy to deploy

📑 Quick Navigation

💡 Click the links below to jump to the corresponding section. Start with "Quick Start" for deployment, see "Configuration Guide" for detailed customization

🚀 Quick Start AI Analysis ⚙️ Configuration Guide
Docker Deployment MCP Clients 📝 Changelog
🎯 Core Features Support Project 📚 Related Projects
  • Thanks to stargazers, your stars and forks are the best support for open source 😍

👉 Click to view Acknowledgments (Angel Round Honor Roll 🔥73+🔥 supporters)

Acknowledgments to Early Supporters

💡 Special Note:

  1. About the List: The table below records supporters from the early stage (Angel Round) of the project. Due to the manual nature of statistics in the early days, there may be omissions or incomplete records. If anyone was missed, it was unintentional, and we ask for your kind understanding.
  2. Future Plan: To focus limited energy back on code development and feature iteration, this list will no longer be manually maintained as of today.

Whether your name is on the list or not, your every bit of support is the cornerstone that allows TrendRadar to be where it is today. 🙏

Infrastructure Support

Thanks to GitHub for providing free infrastructure, which is the biggest prerequisite for this project to run conveniently with one-click fork.

Data Support

This project uses the API from newsnow to fetch multi-platform data. Special thanks to the author for providing this service.

After communication, the author indicated no concerns about server pressure, but this is based on their goodwill and trust. Please everyone: - Visit the newsnow project and give it a star - When deploying with Docker, please control the frequency reasonably and avoid being overly greedy

Promotion Support

Thanks to the following platforms and individuals for recommendations (in chronological order)

Community Support

Thanks to financial supporters. Your generosity has transformed into snacks and drinks beside my keyboard, accompanying every iteration of this project

Return of "One-Yuan Appreciation": With the release of v5.0.0, the project enters a new phase. To support growing API costs and caffeine consumption, the "One-Yuan Appreciation" channel is now reopened. Every bit of your kindness translates into Tokens and motivation in the code world. 🚀 Support Now

Supporter Amount (CNY) Date Note
D*5 1.8 * 3 2025.11.24
*鬼 1 2025.11.17
*超 10 2025.11.17
R*w 10 2025.11.17 Great agent work!
J*o 1 2025.11.17 Thanks for open source
*晨 8.88 2025.11.16 Nice project
*海 1 2025.11.15
*德 1.99 2025.11.15
*疏 8.8 2025.11.14 Great project
M*e 10 2025.11.14 Open source is not easy
**柯 1 2025.11.14
*云 88 2025.11.13 Good project
*W 6 2025.11.13
*凯 1 2025.11.13
对*. 1 2025.11.13 Thanks for TrendRadar
s*y 1 2025.11.13
**翔 10 2025.11.13 Wish I found it earlier
*韦 9.9 2025.11.13 TrendRadar is awesome
h*p 5 2025.11.12 Support Chinese open source
c*r 6 2025.11.12
a*n 5 2025.11.12
。*c 1 2025.11.12 Thanks for sharing
... ... ... (More 50+ supporters)

🪄 Sponsors

Sponsorship Open

Interested in sponsoring? Trigger the auto-reply in my WeChat Official Account to get my contact details

❤️ Find it useful? Support TrendRadar

If TrendRadar has captured value for you, give it some fuel to keep evolving

Any amount is welcome; even 1 RMB is a gesture of encouragement for open source. Feel free to leave a note with your donation (´▽`ʃ♡ƪ)

WeChat Pay Alipay
WeChat Pay Alipay

🤝 Attribution & Secondary Development

If you utilize the core code or draw inspiration from the logic of this project, it would be greatly appreciated if you could acknowledge the source in your README or documentation and include a link to this repository.

This contributes to the sustainable maintenance of the project and the growth of the community. Thank you for your respect and support! ❤️

💬 Feedback & Community

  • GitHub Issues: Best for specific technical issues. Please provide complete information (screenshots, error logs, etc.) to help locate the problem quickly.
  • WeChat Official Account: It is recommended to leave comments under relevant articles. If you need to ask questions in the background, liking/recommending the article first is the best "icebreaker," and I can feel your appreciation (´▽`ʃ♡ƪ).
  • QQ Group: Follow the WeChat Official Account and reply "交流群" to join. Whether you're an AI beginner or a seasoned developer, looking for help or sharing ideas, you're welcome here. The group is all about mutual help and brainstorming — please read the group announcement first; describe your issue clearly with screenshots, and fellow members will help when available. Community wisdom is often faster and more comprehensive than any single person 🤝

Friendly Reminder: This project is for open-source sharing, not a commercial product. Treat the author as a friend, not customer service, for better communication efficiency!

Follow on WeChat

📝 Changelog

📌 Check Latest Updates: Original Repository Changelog: - Tip: Check [Changelog] to understand specific [Features]

2026/06/19 - v6.10.0

  • AI Translation Batch Processing: Automatically splits large translation requests into batches, preventing single-request overflow failures
  • Module Refactoring: Split context.py and __main__.py, extracted AI filter pipeline into a standalone module for clearer responsibilities and easier maintenance
  • Fixed Feishu Source Label Display: Fixed source labels and AI standalone source overview being swallowed by CommonMark rendering in Feishu cards

2026/02/09 - mcp-v4.0.0

  • 🔥 Push any AI message to all channels: Send AI-generated content to Feishu, DingTalk, Telegram, Email and all 9 channels with one call — Markdown auto-adapts to each platform's native format
  • New format guide tool: get_channel_format_guide tells AI what each channel supports and its limitations, so generated content looks great everywhere
  • Smart batch splitting: Long messages auto-split per channel byte limits (Feishu 30KB, DingTalk 20KB, etc.), reads config from config.yaml
  • Fixed channel detection: ntfy no longer falsely reported as "configured" due to default server URL
  • Code reuse: Batch utilities now imported from trendradar core instead of duplicated

👉 Click to expand: Historical Updates

2026/06/02 - v6.9.0

  • Platform Domain Safety Validation: New expected_domain config option validates returned data link domains — mismatched data is automatically discarded with a warning, effectively preventing link hijacking or data tampering
  • Custom Platform API URL: Support self-hosting newsnow and configuring api_url to use your own data source

2026/05/23 - v6.8.0

  • HTML Report Major Enhancement: Added report metadata display (generation time, data sources, version), dark mode auto-adaptation, improved Tab bar interaction, and trend arrow visualization for a significantly better browser reading experience
  • Version Check CDN Multi-Source Fallback: Version check API now supports automatic fallback across GitHub → jsDelivr → Cloudflare CDN sources, ensuring reliable update notifications even in restricted network environments
  • Display Region Toggles: HTML reports and emails now properly respect display.regions.ai_analysis and display.regions.standalone switches — disabled regions are no longer rendered
  • Export Button Fix: Fixed dropdown menu icons disappearing after clicking the export button
  • Markdown Export Fix: Fixed JS newline character escaping error in HTML report Markdown export

2026/05/15 - v6.7.0

  • Markdown Export: New Markdown option in the report export dropdown — generate structured text with clickable links, perfect for LLM processing and cross-platform sharing (#1121)
  • RSS GUID Deduplication: RSS storage now supports GUID field with priority order guid > url, preventing duplicate entries caused by URL changes for the same article
  • Empty Title Protection: Full-chain fallback logic across parser, renderer, and translation backfill ensures items without titles still display pro

Core symbols most depended-on inside this repo

get
called by 1302
mcp_server/services/cache_service.py
showToast
called by 51
docs/assets/script.js
format_title_for_platform
called by 50
trendradar/report/formatter.py
updateBackdrop
called by 47
docs/assets/script.js
html_escape
called by 41
trendradar/report/helpers.py
findChildKey
called by 37
docs/assets/script.js
to_dict
called by 35
mcp_server/utils/errors.py
get_backend
called by 35
trendradar/storage/manager.py

Shape

Method 516
Function 321
Class 52

Languages

Python89%
TypeScript11%

Modules by API surface

docs/assets/script.js96 symbols
trendradar/storage/remote.py50 symbols
trendradar/storage/base.py49 symbols
trendradar/storage/manager.py46 symbols
trendradar/storage/local.py44 symbols
trendradar/context.py42 symbols
trendradar/storage/sqlite_mixin.py38 symbols
mcp_server/tools/notification.py33 symbols
mcp_server/server.py33 symbols
mcp_server/tools/analytics.py29 symbols
trendradar/__main__.py28 symbols
trendradar/core/loader.py22 symbols

Dependencies from manifests, versioned

PyYAML6.0.3 · 1×
boto31.42.76 · 1×
fastmcp2.12.5 · 1×
feedparser6.0.12 · 1×
json-repair0.58.6 · 1×
litellm1.82.6 · 1×
pytz2026.1 · 1×
requests2.33.0 · 1×
tenacity8.5.0 · 1×
websockets13.1 · 1×

For agents

$ claude mcp add TrendRadar \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact