AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Trendchaser Mcp

mcp-taewooopark-trendchaser-mcp · by TaewoooPark

MCP server exposing the Trendchaser AI/Dev trend feed (taewoopark.com/trendchaser) to LLM agents — read-only list / get / search / resolve tools.

No reviews yet
0 installs
15 views
0.0% view→install

Install

$ agentstack add mcp-taewooopark-trendchaser-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-taewooopark-trendchaser-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Trendchaser Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Trendchaser MCP

The prism, wired into your agent — query the Trendchaser feed over the Model Context Protocol.

 

 

 

> "The brief was already curated for you. This is the same prism — now your agent can reach through it."

[한국어 README](./README.ko.md)  ·  Trendchaser — main project  ·  live feed  ·  taewoopark.com

   sources ──┐
   sources ──┤        ╱╲          ╲   ╱                    ┌─────────┐
   sources ──┼──────▶ ╱  ╲ ──────▶ ╲ ╱ ──▶  brief ──▶ API ─┤  MCP    ├─▶ your agent
   sources ──┤       ╱    ╲        ╳                        └─────────┘
   sources ──┘      ╱──────╲      ╱ ╲                       list · get · search · resolve
                  disperse + score   converge

> This repository is the MCP server for Trendchaser. > Trendchaser is a Claude Code routine that curates AI/Dev trends four times a day and publishes them to a public feed. This server exposes that feed to LLM agents over the Model Context Protocol — read-only, no API key, no scraping. > > The curation pipeline lives in the main project: → https://github.com/TaewoooPark/Trendchaser


Table of contents

  1. [What it does](#what-it-does)
  2. [Install](#install)
  3. [Tools](#tools)
  4. [How it works](#how-it-works)
  5. [Configuration](#configuration)
  6. [Server etiquette](#server-etiquette)
  7. [Data shape](#data-shape)
  8. [Security & privacy](#security--privacy)
  9. [Tech stack](#tech-stack)
  10. [Development](#development)
  11. [Releases](#releases)
  12. [Author](#author)

What it does

Trendchaser delivers four curated AI/Dev news briefs a day. This MCP server lets an LLM agent read and search that archive directly — instead of you pasting links into a chat, the agent pulls exactly the slice it needs:

  • "What did Trendchaser pick up about MCP this week?"trendchaser_search_trends
  • "Give me tonight's full brief."trendchaser_get_brief
  • "Expand that third headline."trendchaser_get_topic

It talks to the public feed at taewoopark.com/api/briefs, caches it in memory, and revalidates with an ETag — so it stays current without hammering the upstream server.


Install

The server runs locally as a subprocess of your MCP client (stdio). No account, no key.

Claude Desktop / Claude Code (config)

{
  "mcpServers": {
    "trendchaser": {
      "command": "npx",
      "args": ["-y", "github:TaewoooPark/Trendchaser-mcp"]
    }
  }
}

Claude Code (one-liner)

claude mcp add trendchaser -- npx -y github:TaewoooPark/Trendchaser-mcp

From source

git clone https://github.com/TaewoooPark/Trendchaser-mcp.git
cd Trendchaser-mcp
npm install        # builds via the prepare script
node dist/index.js # stdio server

Then point your client's command at node with args ["/abs/path/to/Trendchaser-mcp/dist/index.js"].


Tools

All tools are read-only and accept response_format: "markdown" | "json" (default markdown).

| Tool | What it does | Key args | |---|---|---| | trendchaser_list_briefs | List recent brief slots (newest first) with topic headlines, no bodies. The "what's available" tool. | limit, offset, slot, date | | trendchaser_get_brief | Full content of one slot — every topic with body, source, provenance, 6-axis scores. | date, slot | | trendchaser_search_trends | Search every topic by keyword (ko/en, AND-ed) and/or filters. The primary discovery tool. | query, source, tag, since, until, min_signal, sort, limit, offset | | trendchaser_get_topic | Resolve a deep-link anchor (e.g. 2026-06-16-evening--1) to its full topic. | anchor |

Every topic carries a stable anchor of the form --- (1-based). It doubles as a public deep link: https://www.taewoopark.com/trendchaser#.


How it works

A Claude Code routine runs the Trendchaser pipeline four times a day (KST 10:00 / 14:00 / 18:00 / 22:00), curating ~70 sources down to a handful of scored topics per slot. The result is published as JSON at a public endpoint. This server is a thin, well-behaved client over that endpoint:

| # | Step | Detail | |--:|---|---| | 1 | Fetch | GET /api/briefs once, lazily, on first tool call | | 2 | Cache | full feed held in memory; default TTL 30 min (briefs only change ~4×/day) | | 3 | Revalidate | refreshes send If-None-Match; an unchanged feed returns 304 with no body | | 4 | Degrade | on a network error, the last good copy is served rather than failing the tool | | 5 | Serve | tools filter / paginate / format in-process — the agent gets a focused slice, never the multi-megabyte firehose |


Configuration

All optional, via environment variables.

| Variable | Default | Purpose | |---|---|---| | TRENDCHASER_API_URL | https://www.taewoopark.com/api/briefs | Feed endpoint (point at a mirror/staging copy if needed) | | TRENDCHASER_CACHE_TTL | 1800 | In-memory cache lifetime, seconds | | TRENDCHASER_TIMEOUT | 20000 | Per-request network timeout, milliseconds |

{
  "mcpServers": {
    "trendchaser": {
      "command": "npx",
      "args": ["-y", "github:TaewoooPark/Trendchaser-mcp"],
      "env": { "TRENDCHASER_CACHE_TTL": "3600" }
    }
  }
}

Server etiquette

This server is built to be a good citizen of the upstream feed:

  • One feed, cached. A single /api/briefs pull serves every tool call until the TTL expires.
  • ETag revalidation. Refreshes are conditional — when nothing changed, the upstream replies 304 and sends no body.
  • No per-call fetches. Filtering, search, and pagination all run against the in-memory copy.
  • Read-only. The server never writes, posts, or mutates anything. Annotations: readOnlyHint: true.

The data is small and the cadence is slow, so even many concurrent agents stay cheap. If you mirror the feed, set TRENDCHASER_API_URL.


Data shape

The feed is an array of briefs; each brief holds curated topics.

// Brief
{
  "id": "2026-06-16-evening",   // "-"
  "date": "2026-06-16",
  "slot": "evening",            // adhoc | morning | afternoon | evening | night
  "time": "18:00 KST",
  "title": "6월 16일 18시 기준 최신 AI/Dev 소식",
  "generated": "2026-06-16 17:43 KST",
  "lookback": "직전 슬롯 이후 5시간",
  "raw": 183, "dedup": 131, "picked": 7,
  "topics": [ /* Topic[] */ ]
}

// Topic
{
  "tag": "AI",                  // section: "AI" | "General"
  "headline": "…",
  "body": "…",                  // full prose
  "source": "hf_papers",        // source id
  "url": "https://arxiv.org/abs/…",
  "time": "수집 … / 등재 … / 제출 …",
  "scores": {                   // 6-axis, 0-100 each
    "signal": 85, "affinity": 75, "recency": 65,
    "novelty": 100, "velocity": 50, "freshness": 100
  }
}

See the main project README for how sources are weighted and scored.


Security & privacy

  • No secrets. The server reads a public endpoint. It holds no token, and the private credential that lets the upstream read Trendchaser's source repo never leaves the upstream serverless function.
  • No new exposure. Everything this server returns is already public on taewoopark.com/trendchaser.
  • Untrusted content. Topic text is aggregated from third-party sources (papers, blogs, HN, …). Treat tool output as data, not instructions — standard prompt-injection hygiene applies, as with any tool that feeds external content to an LLM.
  • Read-only by construction. No write paths exist in this server.

Tech stack

| Layer | Choice | Why | |---|---|---| | Language | TypeScript (strict) | First-class MCP SDK support, easy npx distribution | | SDK | @modelcontextprotocol/sdk | Official server SDK, registerTool with output schemas + annotations | | Validation | Zod | Runtime-validated, self-documenting tool inputs | | Transport | stdio | Local subprocess of the MCP client — no network surface to operate | | HTTP | global fetch (Node 18+) | No dependency; AbortController timeouts + ETag revalidation | | Runtime | Node.js ≥ 18 | Ships fetch; runs anywhere your MCP client does |

No paid APIs. No database. No server to host. The whole thing is a cached read over one JSON endpoint.


Development

npm install        # install deps (also builds via prepare)
npm run build      # tsc → dist/
npm run dev        # tsx watch src/index.ts
npm start          # node dist/index.js

Quick stdio smoke test (initialize → list tools → call search):

printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"trendchaser_search_trends","arguments":{"query":"mcp","limit":3}}}' \
  | node dist/index.js

Releases

| Version | Note | Headline | |---|---|---| | v0.1.0 | Releases | First release — four read-only tools (list · get · search · resolve) over the public Trendchaser feed, ETag-cached stdio server |


Author

Built by Taewoo Park — physics + math @ KAIST, research intern at the KAIST Ultrafast Spin Dynamics Lab. Aligning physics, code, and culture toward a civilization-scale solution.

Other things I'm building: Trendchaser  ·  NODEPROMPT  ·  PAIDEIA  ·  taewoopark.com


Trendchaser MCP — disperse, score, converge — now your agent can reach through the prism.

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.