TrendRadar는 여러 중국어권 핫토픽 플랫폼(웨이보, 즈후 등)과 RSS 피드를 주기적으로 수집해, 사용자가 정의한 키워드 그룹과 매칭되는 뉴스만 걸러내는 개인용 여론·트렌드 모니터링 도구입니다. 걸러진 뉴스는 선택적으로 AI 요약·번역·감정분석을 거쳐 HTML 리포트로 만들어지고, 위챗/텔레그램/슬랙/이메일 등 10여 종 채널로 자동 푸시됩니다. 쌓인 데이터는 별도의 MCP 서버를 통해 AI 챗봇이 자연어로 질의할 수 있습니다.
trendradar/crawler/fetcher.py(플랫폼 API)와 crawler/rss/fetcher.py(RSS)가 원시 뉴스를 수집하면, core/frequency.py가 frequency_words.txt에 정의된 키워드·정규식 그룹(matches_word_groups, tests/test_config_serialization.py로 검증됨)으로 필터링합니다. 이후 trendradar/ai/의 analyzer·translator·filter가 litellm 라이브러리로 설정된 LLM을 호출해 요약·번역·AI필터링을 수행하고, trendradar/storage(local.py, remote.py, schema.sql)가 output/news/날짜.db SQLite에 결과를 저장하며 S3 호환 원격 저장도 지원합니다. report/generator.py가 HTML 리포트를 만들고 notification/dispatcher.py가 config.yaml에 설정된 채널로 발송합니다. 실행 경로는 두 가지입니다: ① GitHub Actions(.github/workflows/crawler.yml)로 주기 실행 후 GitHub Pages에 결과 게시, ② Docker(docker/Dockerfile)에서 supercronic이 CRON_SCHEDULE에 맞춰 반복 실행. 별도의 mcp_server/server.py(FastMCP 2.0)는 저장된 SQLite 데이터를 리소스/도구(config://platforms, resolve_date_range, 감정분석 등)로 노출해 Cherry Studio 같은 MCP 클라이언트가 자연어로 질의하게 해줍니다.
- STEP 01
docker/.env와 docker-compose.yml에 알림 채널(웹훅/토큰)과 config/frequency_words.txt에 모니터링 키워드를 채운 뒤 docker compose up을 돌리면, entrypoint.sh가 supercronic으로 CRON_SCHEDULE(기본 30분 간격)을 걸고 IMMEDIATE_RUN=true면 즉시 1회 수집부터 시작합니다.
- STEP 02
첫 실행 시 config.yaml에 등록된 플랫폼들을 호출해 뉴스를 받아오고, 키워드 그룹에 매칭되는 항목만 골라 output/news/오늘날짜.db SQLite 파일로 쌓이는 것을 확인하게 됩니다(레포에 실제로 2025-12-21~27 날짜의 db 샘플이 포함되어 있어 이 구조를 그대로 재현합니다).
- STEP 03
AI_ANALYSIS_ENABLED와 AI_API_KEY를 비워두면 AI 단계가 조용히 스킵되고 키워드 필터링 결과만 리포트화되는 반면, 값을 채우면 litellm을 통해 지정 모델이 요약/번역을 생성해 알림 내용이 더 풍부해집니다.
- STEP 04
설정한 FEISHU_WEBHOOK_URL이나 TELEGRAM_BOT_TOKEN 채널에 실제로 메시지가 도착하는지 확인하게 되며, 여러 채널을 동시에 켜면 모두에게 동일 리포트가 병렬 발송됩니다.
- STEP 05
trendradar-mcp 컨테이너까지 함께 띄우고 MCP 클라이언트(Cherry Studio 등)를 3333 포트에 연결하면, resolve_date_range 같은 도구를 통해 '이번 주 AI 관련 감정 분석해줘' 같은 자연어 질의가 실제 저장된 데이터 기반 응답으로 돌아오는 것을 체감하게 됩니다.
- STEP 06
별도 설치 없이 fork 후 GitHub Secrets만 채우고 Actions 워크플로우(crawler.yml)를 켜면, 서버 없이도 주기적 수집과 GitHub Pages 리포트 게시가 자동으로 돌아가는 것을 확인할 수 있습니다.
사용자는 직접 고른 키워드에 해당하는 핫토픽/뉴스를 주기적으로 원하는 메신저·이메일로 받아보고, 누적된 SQLite 데이터와 MCP 서버를 통해 AI와 대화하며 트렌드·감정 분석까지 질의할 수 있는 개인용 여론 모니터링 파이프라인을 얻습니다. 서버 없이 GitHub Actions만으로도, 또는 Docker 한 대로도 동일한 결과를 구성할 수 있습니다.
핵심 뉴스 데이터 소스가 TrendRadar 자체 API가 아니라 newsnow 프로젝트 운영자의 선의(README에 명시)에 의존하므로, 과도한 요청 시 서비스가 막힐 위험이 있고 운영자가 서비스를 바꾸면 영향을 받습니다.
AI 분석·번역·필터 기능은 litellm을 통해 외부 LLM API 키가 필요하며, 호출량에 따라 비용과 레이트리밋 문제가 발생할 수 있습니다.
output/news/*.db가 레포에 커밋되어 있는 구조상 자동화로 결과를 레포에 다시 푸시하는 방식으로 보이는데, 장기간 운영하면 레포 용량이 꾸준히 커질 수 있습니다.
MCP 연동까지 완전히 쓰려면 trendradar와 trendradar-mcp 두 개의 Docker 이미지/컨테이너를 같이 운영해야 해서, 단순 알림만 쓰려는 사람에겐 다소 과한 구성일 수 있습니다.
특정 키워드 뉴스만 걸러서 메신저로 받고 싶은 개인, 또는 수집한 트렌드 데이터를 AI와 대화하며 분석하고 싶은 사람에게 적합합니다. GitHub Actions/Docker 두 가지 배포 경로, 10여 종의 실제 알림 발송 구현(senders.py), AI 파이프라인에 대한 회귀 테스트(tests/test_ai_extra_params.py), 실제 누적된 SQLite 샘플 DB, MCP 서버의 구체적 도구/리소스 구현이 모두 코드 레벨로 일관되게 존재하므로, README의 기능 주장이 실제 소스와 맞물려 있음을 파일 구조와 코드로 확인했습니다. 따라서 직접 설치해보지 않아도 이 판단을 신뢰할 수 있는 근거는 충분합니다.