Skip to main content
Featured Open Source MCP Trends Python Claude Code Tools

trend-pulse: Free Trending Topics Aggregator for AI Agents — 15 Sources, Zero Auth

Open-source Python library that aggregates real-time trends from 15 free sources. Use as CLI, Python library, or MCP server for Claude Code. Includes patent-based content scoring guides.

March 12, 2026 12 min read By Claude World

We’re open-sourcing trend-pulse — a free trending topics aggregator that pulls real-time data from 15 sources with zero API keys required. Use it as a Python library, CLI tool, or MCP server for Claude Code and other AI agents.

GitHub: github.com/claude-world/trend-pulse PyPI: pip install trend-pulse

The Problem

If you’re building AI-powered content tools, social media agents, or market research pipelines, you need trend data. But:

  • Google Trends API doesn’t exist (only an unofficial, rate-limited scraper)
  • Twitter/X API costs $100+/month for basic access
  • Reddit API killed third-party apps in 2023
  • Most trend APIs are either paid, rate-limited, or require OAuth setup

We built trend-pulse to solve this: 15 free sources, zero authentication, one unified API.

15 Sources, Zero Auth

Every source in trend-pulse uses publicly available APIs, RSS feeds, or open protocols. No API keys. No OAuth. No rate limit headaches.

SourceTypeBest For
Google TrendsRSS feedMass search trends by country
Google NewsRSS feedBreaking news stories
Hacker NewsFirebase + AlgoliaDeveloper/tech topics
RedditPublic JSONGeneral popularity signals
MastodonPublic APIOpen-source community trends
BlueskyAT ProtocolEmerging social trends
GitHubTrending pageDeveloper tools, repos
Stack OverflowPublic APITechnical questions
WikipediaPageviews APICurrent events, people
PyPIpypistats.orgPython ecosystem
npmDownloads APIJavaScript ecosystem
dev.toPublic APIDeveloper articles
Lobste.rsJSON APICurated tech news
CoinGeckoPublic APICrypto trends
Docker HubPublic APIContainer popularity

All sources return normalized scores (0-100) so you can compare across platforms.

Three Ways to Use It

1. CLI — Quick Trend Checks

# What's trending right now?
trend-pulse trending

# Taiwan trends from Google + Hacker News
trend-pulse trending --sources google_trends,hackernews --geo TW

# Search a keyword across all sources
trend-pulse search "Claude Code"

# Save snapshots for velocity tracking
trend-pulse trending --save
trend-pulse history "React" --days 7

2. Python Library — Build Your Own Tools

import asyncio
from trend_pulse.aggregator import TrendAggregator

async def main():
    agg = TrendAggregator()

    # Merged ranking from all 15 sources
    result = await agg.trending(geo="TW", count=10)
    for item in result["merged_top"]:
        print(f"[{item['source']}] {item['keyword']} (score: {item['score']})")

    # Search across sources
    result = await agg.search("AI agent")
    for item in result["merged_top"][:5]:
        print(f"{item['keyword']}{item['direction']}")

asyncio.run(main())

3. MCP Server — Let AI Agents Use It

This is where trend-pulse really shines. Add it to your Claude Code config:

{
  "mcpServers": {
    "trend-pulse": {
      "command": "uvx",
      "args": ["--from", "trend-pulse[mcp]", "trend-pulse-server"],
      "type": "stdio"
    }
  }
}

Now Claude Code can call get_trending(), search_trends(), and all 10 MCP tools directly in conversation. No copy-pasting. No switching tabs.

Velocity Tracking

trend-pulse doesn’t just show you what’s trending now — it tracks how fast things are moving.

Save snapshots over time with --save, and each trend item gets enriched with:

{
  "keyword": "Claude AI",
  "score": 92,
  "direction": "rising",
  "velocity": 15.3,
  "previous_score": 45.0
}
DirectionMeaning
risingScore increasing rapidly (velocity > 10)
stableHolding steady (-10 to 10)
decliningLosing momentum (velocity < -10)
newFirst time seen

This is stored locally in SQLite (~/.trend-pulse/history.db). Query it anytime:

trend-pulse history "Claude" --days 30

Content Guide Tools (v0.3.2)

Beyond raw trend data, trend-pulse includes 5 content guide tools designed for AI agents that create social media content.

The key architecture principle: MCP provides structured guides, the LLM does all creative work. No template concatenation. No regex scoring. The tools give frameworks; the AI creates original content.

The 5 Guide Tools

ToolWhat It Returns
get_content_briefWriting brief with hook examples, patent-based strategies, CTA examples
get_scoring_guide5-dimension evaluation framework with criteria and grade thresholds
get_review_checklistQuality gate checklist (platform compliance, engagement checks)
get_platform_specsPlatform-specific specs (char limits, algo priorities, best times)
get_reel_guideVideo script structure (scene timing, visual guidance, editing tips)

The Workflow

1. get_trending()           → Discover hot topics
2. get_content_brief()      → Get writing guide for chosen topic
3. LLM writes content       → Original text, not templates
4. get_scoring_guide()       → LLM self-scores on 5 dimensions
5. LLM revises if needed    → Iterate until score ≥ 70
6. get_review_checklist()    → Final quality gate
7. get_platform_specs()      → Adapt for each platform

Patent-Based Scoring

The scoring framework is derived from Meta’s published ranking patents and systems:

DimensionWeightBased On
Hook Power25%EdgeRank Weight + Andromeda real-time signals
Engagement Trigger25%Story-Viewer Tuple + Dear Algo active signals
Conversation Durability20%Threads 72hr multi-party dialogue window
Velocity Potential15%Andromeda cross-platform signal processing
Format Score15%Multi-modal content indexing

Grades: S (90+), A (80+), B (70+), C (55+), D (<55). The quality gate requires ≥70 overall and ≥55 conversation durability to publish.

8 Content Types

opinion, story, debate, howto, list, question, news, meme — each with different engagement multipliers and recommended hook strategies.

Add Your Own Source

trend-pulse is designed to be extensible. Adding a new source is ~30 lines:

from trend_pulse.sources.base import TrendSource, TrendItem

class MySource(TrendSource):
    name = "my_source"
    description = "My custom trend source"
    requires_auth = False

    async def fetch_trending(self, geo="", count=20) -> list[TrendItem]:
        # Your data fetching logic here
        return [
            TrendItem(
                keyword="trending topic",
                score=85.0,
                source=self.name,
                url="https://example.com",
            )
        ]

Register it with the aggregator:

from trend_pulse.aggregator import TrendAggregator

agg = TrendAggregator(sources=[MySource, ...])
result = await agg.trending()

Why We Built This

We run a social media automation pipeline that posts to Threads, Instagram, and Facebook. Every day, the pipeline needs to:

  1. Discover what’s trending in our niche (AI, developer tools, tech)
  2. Analyze which topics have viral potential
  3. Create platform-optimized content
  4. Publish across multiple accounts

For step 1, we needed trend data from multiple sources. We tried Google Trends scrapers (broke constantly), Twitter API (too expensive), and various “trend aggregator” SaaS tools (limited free tiers).

So we built trend-pulse: one library, 15 sources, zero cost.

The content guide tools (step 2-3) came from the observation that template-based content generation produces generic, low-quality posts. When we switched to “MCP guides LLM” architecture — where tools provide structured frameworks and the AI creates original content — post quality jumped from C grade (~60) to A grade (~85).

Technical Details

  • 3,400 lines of Python (src)
  • 117 tests across 4 test modules
  • Pure Python — core dependencies are just httpx + aiosqlite
  • Async-first — all source fetchers are async for parallel execution
  • SQLite history — local storage, no external DB needed
  • Bilingual — all guide tools support English and Traditional Chinese

Install

# Core only
pip install trend-pulse

# With MCP server
pip install "trend-pulse[mcp]"

# Everything (MCP + enhanced Google Trends)
pip install "trend-pulse[all]"

Or run the MCP server without installing:

uvx --from "trend-pulse[mcp]" trend-pulse-server

What’s Next

  • More sources (Product Hunt, ArXiv, X/Twitter public metrics)
  • Trend correlation analysis (detect cross-platform signal amplification)
  • Webhook notifications for rising trends
  • Dashboard UI

GitHub: github.com/claude-world/trend-pulse PyPI: pypi.org/project/trend-pulse License: MIT

Give it a star if you find it useful. PRs welcome.