content-genie-mcp

content-genie-mcp

Korean-content MCP that consolidates real-time trends from Naver, Daum, Google, YouTube, and Zum, includes a 100+ Korean holiday database, and provides a viral-score predictor for content optimization.

Category
访问服务器

README

content-genie-mcp

Korean-content-creator MCP that gives Claude live Naver/Daum/Google/YouTube/Zum trends, a 100+ Korean-holiday DB, and a viral-score predictor — so you stop tab-hopping between 5 trend dashboards before every post.

CI npm License: MIT Maintained

English · 한국어


<a name="english"></a>

Why content-genie?

Most "trend" MCPs are thin wrappers around Google Trends. If you're publishing for a Korean audience (Naver Blog, YouTube Korea, Instagram KR, TikTok), Google alone misses the signal — Naver Datalab, Daum search, Zum realtime, and KR-region YouTube each surface different keywords at different hours. content-genie consolidates all five sources into one MCP, layers a 100+ Korean-holiday + 14일-day-series + 절기 event database so Claude can plan around 빼빼로데이 and 수능 without being told, and finishes the loop with a viral-score predictor trained on the structural patterns (numbers, brackets, emotional triggers, urgency words) that move CTR in Korean content.

The Phase 4 refactor (v2.12.0, May 2026) made the whole thing safe to depend on: every scraper sits behind a per-source circuit breaker (3 fails → open 5 min) with a stale-cache fallback, so a Naver HTML change no longer takes the whole MCP down — it just degrades that one source and tells the LLM about it via resource://content-genie/sources.

What's new in v2.12.0

  • 17 tools, one registry, six small files. The old 4,712-line index.ts is gone — tools live in src/tools/{trends,seo,contentIdeas,viralScoring,competitorAnalysis,koreanEvents}.ts. Adding a tool is a one-liner.
  • Scrapers can't take the server down anymore. Per-source circuit breaker + LRU/TTL cache (15 min, 100 entries) + stale fallback. When Naver is degraded, Claude sees source_status: 'stale' and adapts.
  • Two new MCP Resources for @-mention. resource://content-genie/korean-events/{year} returns the full event DB rebased to any year; resource://content-genie/sources exposes live breaker + cache state.
  • Two MCP Prompts as guided workflows. viral-title chains optimize_title_hashtagspredict_viral_scoregenerate_ab_test_variants. competitor-analysis does URL analysis + gap-filling ideation.
  • 38 tests across 8 suites. Circuit breaker transitions, cache eviction, scraper fallback paths, SSRF guard, every tool group — runs on Node 20 + 22 in CI.

5-minute Quickstart

# 1. Install via Claude Code (recommended)
claude mcp add content-genie -- npx -y content-genie-mcp

# 2. Or add to Claude Desktop's claude_desktop_config.json:
{
  "mcpServers": {
    "content-genie": {
      "command": "npx",
      "args": ["-y", "content-genie-mcp"]
    }
  }
}
  1. Restart Claude Desktop (or claude will pick it up on the next run).
  2. Try this in Claude:
오늘 한국에서 뜨는 키워드 5개로 유튜브 쇼츠 제목 후보 3개씩 만들고, 각각 바이럴 점수 등급 매겨줘.
  1. Expected: Claude calls get_korean_trends (naver+daum+google+youtube+zum merged) → optimize_title_hashtags per keyword → predict_viral_score → returns a ranked S/A/B/C/D grade table with the structural reason ("제목에 숫자 + 호기심 트리거 포함").

Real use cases

1. "I need a Korean blog post topic that won't be obsolete by tomorrow"

Problem: Naver Blog rewards quick takes on the keywords trending right now, but those keywords change every 4 hours. With this MCP: Claude calls get_korean_trends({ platform: 'naver', limit: 20 }) and then generate_content_ideas against the freshest 5 keywords with seasonal: true. The seasonal layer adds upcoming Korean events from the 100+ DB — so the suggestion isn't just "AI 추천 도구" but "AI 추천 도구 + 수능 D-30 콘텐츠 기획" because get_seasonal_content_guide saw 수능 is 4 weeks out. Why it's better than the Naver Datalab UI: Datalab gives you a chart. This MCP gives you 5 titled, hashtag-optimized post drafts grounded in those same trends, in one conversational round-trip.

2. "Will this YouTube Shorts title actually pop?"

Problem: Title CTR is the single biggest lever on Shorts, but you only know after you publish. With this MCP: Paste your draft into Claude, say "use the viral-title prompt". The prompt chains optimize_title_hashtagspredict_viral_scoregenerate_ab_test_variants and returns an S~D grade plus 5 A/B variants with the structural deltas (added number, added urgency word, shortened to 25 chars). Why it's better than vibes: the scorer reads the same 6 signal classes a Korean copywriter would — emotional triggers (충격|실화|숨겨진), structural elements (numbers/brackets/?/!), urgency, social proof, utility framings (방법|꿀팁|노하우), and length window — and tells you which ones are missing.

3. "I run a small Korean brand, I need a content calendar that respects local holidays"

Problem: Generic calendar tools don't know about 빼빼로데이, 김장철, 수능, or 한가위 연휴, so you end up posting a promo on 현충일. With this MCP: Claude calls create_content_calendar({ months: 3, niche: 'beauty' }), which joins your 3-month window against the 100+ event DB (공휴일 18 + 데이 시리즈 12 + 절기 15 + 상업 이벤트 15 + 시즌/날씨 12 + 입시 10 + 쇼핑 10 + 크리에이터 특화 8) and produces a date-by-date plan with content themes per event. Why it's better than a Notion template: the DB is rebased to any year (resource://content-genie/korean-events/2027 is a single @-mention away), so the calendar stays accurate next year without you maintaining it.

Tools / Resources / Prompts

Name Type What it does
get_korean_trends tool Real-time trends across Naver / Daum / Google / YouTube / Zum, merged + de-duped
analyze_news_trends tool Korean news headline trends with category buckets
analyze_seo_keywords tool Naver + Google autocomplete + long-tail expansion
optimize_title_hashtags tool CTR-optimized title rewrites + per-platform hashtag set
generate_hashtag_strategy tool Per-platform (IG/YT/TikTok/Naver) hashtag mix with breadth/depth split
generate_content_ideas tool Idea generation seeded by trend + season + niche
generate_script_outline tool Long-form script / short-form scene-by-scene outline
repurpose_content tool One post → cross-platform variants (Blog → Shorts → Reel → Thread)
predict_viral_score tool S~D grade with structural / emotional / urgency reasons
generate_ab_test_variants tool N A/B title variants with the lever changed in each
predict_content_performance tool Heuristic CTR / share / save estimate
analyze_thumbnail tool Thumbnail concept analysis + CTR-optimization checklist
analyze_competitor_content tool URL-fetch competitor post (SSRF-guarded) + gap analysis
benchmark_content_performance tool Industry benchmarks by niche / platform
analyze_influencer_collab tool Influencer fit / audience-overlap / brief generator
create_content_calendar tool Multi-month calendar joined against Korean event DB
get_seasonal_content_guide tool "What should I post in the next 2 weeks?" — event-aware
resource://content-genie/korean-events/{year} resource Full 100+ event DB rebased to any year (JSON)
resource://content-genie/sources resource Live scraper breaker + cache state for graceful degradation
prompt://content-genie/viral-title prompt optimize → predict → A/B-vary, one slash command
prompt://content-genie/competitor-analysis prompt URL fetch → gap-fill ideation workflow

How it works

                    Claude (or any MCP client)
                              │
                              ▼
                        McpServer (SDK 1.25)
                              │
                  ┌───────────┼───────────┐
                  ▼           ▼           ▼
              17 tools    Resources    Prompts
                  │
                  ▼
            runScraper()  ◄── core/cache.ts (LRU + 15min TTL)
                  │       ◄── core/circuitBreaker.ts (3-fail → open 5min)
                  ▼
         scrapers/{naver,daum,google,youtube,zum}.ts
                  │
                  ▼
            core/security.ts (SSRF + 30s timeout + 5MiB cap)

Three design choices that matter:

  1. Per-source circuit breaker. A bad day at Naver doesn't take down 16 other tools — only the trend tools that need Naver, and even those return a stale-cache status: 'stale' envelope so the LLM can adapt.
  2. Scrapers never throw. They return a ScrapeResult envelope (ok | stale | unavailable). All error handling is in one place (runScraper), so adding a new source is "write a scraper, return ScrapeResult, done".
  3. Event DB rebased on read. The 100+ Korean holiday/event database is stored as month-day rules and rebased to any year on demand — so …/korean-events/2027 works today.

Configuration

Env var Default Purpose
MCP_HTTP_MODE false true to run as Streamable HTTP server instead of stdio
HOST 0.0.0.0 HTTP bind host
PORT 3000 HTTP bind port
CONTENT_GENIE_ALLOWED_HOSTS KR search/social/commerce allowlist Comma-separated host allowlist for analyze_competitor_content SSRF guard. Override to add your own competitor domains.

HTTP endpoints (when MCP_HTTP_MODE=true):

Method Path Purpose
GET / Server info
GET /health Health probe (Railway/Docker)
POST /mcp MCP JSON-RPC requests (2025-03-26 spec)
GET /mcp SSE stream for server-initiated messages

Known limitations

  • Scrapers are HTML-driven. Naver / Daum / Zum don't expose public trend APIs; the scrapers parse HTML. When they change their markup, the affected source returns status: 'unavailable' until we ship a parser fix. The circuit breaker keeps the rest of the MCP working in the meantime.
  • Viral score is structural, not semantic. predict_viral_score is a heuristic over Korean copy patterns. It can't read the meaning of your post — only the structural / emotional / urgency signals in the title + description.
  • No thumbnail image analysis. analyze_thumbnail works on a thumbnail concept description, not on an uploaded image. Image-in is on the roadmap.
  • Korean-first. Hashtag templates, urgency words, and the event DB are Korean. English/JP modes are not in scope for v2.x.

When NOT to use this

  • If you need a global trend dashboard, use Google Trends directly — content-genie is opinionated toward the Korean creator stack.
  • If you need paid keyword data with search volume (네이버 검색광고 API, Ahrefs, SEMrush), use those — content-genie's SEO tools rely on free autocomplete + heuristic long-tail expansion.
  • If you need deterministic LLM-free copy generation for compliance reasons, this MCP feeds an LLM — the LLM is what writes the actual titles.

Comparison

content-genie-mcp Raw scraping yourself Naver Datalab UI SmartEditor / 네이버 검색광고 API
Multi-source merge (5 KR sources) yes DIY Naver only Naver only
Korean event DB built-in 100+ events no no no
Circuit breaker + cache yes DIY n/a n/a
Viral score heuristic yes no no no
MCP-native (Claude @-mention events) yes no no no
Cost free (npm) dev time free paid above quota

Roadmap

  • More sources. Tistory realtime, Brunch picks, Kakao View — currently 5 sources, want 8.
  • Image-in thumbnail analysis. Accept uploaded thumbnails and run vision-based CTR scoring.
  • Cached-trend Resource. Expose resource://content-genie/trends/{platform}/latest so the LLM can @-mention last-scrape results without spending a tool call.
  • Video script → captions/subtitles. Pair generate_script_outline with a captions formatter for Shorts upload.
  • Naver 검색광고 API integration (opt-in). When the user supplies an API key, switch SEO tools from autocomplete heuristics to real search volume.

Contributing

PRs welcome. The Phase 4 refactor made the codebase contributor-friendly — adding a tool is a single-file change. See the Contributing section below or open an issue first if you want to discuss a larger change. CI runs typecheck + test + build on Node 20 + 22 against every PR.

Quick contributor loop:

git clone https://github.com/MUSE-CODE-SPACE/content-genie-mcp
cd content-genie-mcp
npm install
npm run typecheck && npm test && npm run build

Security

This MCP fetches third-party URLs and takes LLM-driven input. The threat model, SSRF host allowlist, 30-second fetch timeout + 5 MiB body cap, and CONTENT_GENIE_ALLOWED_HOSTS override are documented in SECURITY.md. Report vulnerabilities privately via a GitHub Security Advisory at https://github.com/MUSE-CODE-SPACE/content-genie-mcp/security/advisories/new.

License

MIT — SPDX identifier declared in package.json (a top-level LICENSE file will be added in the next release).

Maintainer

@yoon-k (MUSE-CODE-SPACE). For support, open an issue: https://github.com/MUSE-CODE-SPACE/content-genie-mcp/issues.


<a name="한국어"></a>

한국어 요약

content-genie-mcp는 한국 콘텐츠 크리에이터를 위한 MCP 서버입니다. 네이버 / 다음 / 구글 / 유튜브 / 줌 5개 소스의 실시간 트렌드를 한 번에 합쳐 보여주고, 100+ 한국 기념일/이벤트 DB(공휴일 18, 데이 시리즈 12, 절기 15, 상업 이벤트 15, 시즌/날씨 12, 입시 10, 쇼핑 10, 크리에이터 특화 8)와 바이럴 점수 예측기(S~D 등급, 한국어 카피 패턴 기반)를 함께 제공합니다.

v2.12.0(2026-05-20)에서 17개 도구가 도메인별로 모듈화되었고, 스크래퍼별 회로 차단기 + LRU 캐시 + stale fallback 으로 한 소스가 망가져도 나머지가 정상 동작합니다. @-mention 가능한 MCP Resources 2개와 슬래시 명령용 Prompts 2개도 추가되었습니다.

설치 (Claude Code):

claude mcp add content-genie -- npx -y content-genie-mcp

첫 호출 예시:

오늘 한국에서 뜨는 키워드 5개로 유튜브 쇼츠 제목 후보 3개씩 만들고, 각각 바이럴 점수 등급 매겨줘.

자세한 내용은 영문 섹션, 변경 이력은 CHANGELOG.md, 위협 모델은 SECURITY.md를 참고하세요.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选