Content Genie

io.github.MUSE-CODE-SPACE由 GitHub 帳號 MUSE-CODE-SPACE 發布v2.9.4更新於 Oct 25, 2026

AI Content Creation Assistant for Korean creators - Trend analysis & SEO

概覽

AI 產生的概覽

為韓國內容創作者設計的 MCP 伺服器,讓助理取得 Naver、Daum、Google、YouTube、Zum 的即時趨勢,並提供韓國節慶資料庫、SEO 與爆紅評分工具。

可以做什麼
  • 擷取並合併 Naver、Daum、Google、YouTube、Zum 的即時韓國趨勢,以及韓國新聞標題趨勢
  • 透過 Naver 與 Google 自動完成進行 SEO 關鍵字分析與長尾擴展,並產生各平台主題標籤策略
  • 改寫標題以提升點擊率,產生內容構想、腳本大綱、跨平台改寫版本與 A/B 標題變體
  • 為標題預測爆紅分數,估算點擊率、分享與收藏,並分析縮圖概念
  • 依網址分析競品內容、依領域與平台做成效基準、評估網紅合作
  • 依 100 多個韓國節慶與活動資料庫產生多月內容行事曆與季節性指南,並以可依年份重算的資源形式提供
適用情境
適合面向韓國受眾在 Naver 部落格、YouTube 韓國、Instagram 或 TikTok 發布內容,並希望在助理內取得立基於趨勢的標題、標籤、構想與行事曆。不適合全球趨勢儀表板、付費搜尋量資料或非韓語內容。
執行需求
透過 npx 以 stdio 在本機執行(需要 Node.js)。未宣告帳號或 API 金鑰。選用環境變數 MCP_HTTP_MODE、HOST、PORT 與 CONTENT_GENIE_ALLOWED_HOSTS 用於控制 HTTP 模式與網址允許清單。擷取趨勢來源需要網路存取。
安裝前請注意
它會擷取第三方網站,頁面結構變動時結果可能變成過期或無法使用。analyze_competitor_content 會抓取模型提供的網址,受 SSRF 允許清單保護,而 CONTENT_GENIE_ALLOWED_HOSTS 可擴大該清單。啟用 MCP_HTTP_MODE 會暴露一個預設綁定 0.0.0.0 的 HTTP 端點。爆紅分數是基於結構的啟發式判斷,並非語意理解。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Content Genie,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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 · 한국어


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_hashtags → predict_viral_score → generate_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 22 + 24 in CI.

5-minute Quickstart

bash
# 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:
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_hashtags → predict_viral_score → generate_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

NameTypeWhat it does
get_korean_trendstoolReal-time trends across Naver / Daum / Google / YouTube / Zum, merged + de-duped
analyze_news_trendstoolKorean news headline trends with category buckets
analyze_seo_keywordstoolNaver + Google autocomplete + long-tail expansion
optimize_title_hashtagstoolCTR-optimized title rewrites + per-platform hashtag set
generate_hashtag_strategytoolPer-platform (IG/YT/TikTok/Naver) hashtag mix with breadth/depth split
generate_content_ideastoolIdea generation seeded by trend + season + niche
generate_script_outlinetoolLong-form script / short-form scene-by-scene outline
repurpose_contenttoolOne post → cross-platform variants (Blog → Shorts → Reel → Thread)
predict_viral_scoretoolS~D grade with structural / emotional / urgency reasons
generate_ab_test_variantstoolN A/B title variants with the lever changed in each
predict_content_performancetoolHeuristic CTR / share / save estimate
analyze_thumbnailtoolThumbnail concept analysis + CTR-optimization checklist
analyze_competitor_contenttoolURL-fetch competitor post (SSRF-guarded) + gap analysis
benchmark_content_performancetoolIndustry benchmarks by niche / platform
analyze_influencer_collabtoolInfluencer fit / audience-overlap / brief generator
create_content_calendartoolMulti-month calendar joined against Korean event DB
get_seasonal_content_guidetool"What should I post in the next 2 weeks?" — event-aware
resource://content-genie/korean-events/{year}resourceFull 100+ event DB rebased to any year (JSON)
resource://content-genie/sourcesresourceLive scraper breaker + cache state for graceful degradation
prompt://content-genie/viral-titlepromptoptimize → predict → A/B-vary, one slash command
prompt://content-genie/competitor-analysispromptURL 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 varDefaultPurpose
MCP_HTTP_MODEfalsetrue to run as Streamable HTTP server instead of stdio
HOST0.0.0.0HTTP bind host
PORT3000HTTP bind port
CONTENT_GENIE_ALLOWED_HOSTSKR search/social/commerce allowlistComma-separated host allowlist for analyze_competitor_content SSRF guard. Override to add your own competitor domains.

HTTP endpoints (when MCP_HTTP_MODE=true):

MethodPathPurpose
GET/Server info
GET/healthHealth probe (Railway/Docker)
POST/mcpMCP JSON-RPC requests (2025-03-26 spec)
GET/mcpSSE 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-mcpRaw scraping yourselfNaver Datalab UISmartEditor / 네이버 검색광고 API
Multi-source merge (5 KR sources)yesDIYNaver onlyNaver only
Korean event DB built-in100+ eventsnonono
Circuit breaker + cacheyesDIYn/an/a
Viral score heuristicyesnonono
MCP-native (Claude @-mention events)yesnonono
Costfree (npm)dev timefreepaid 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 22 + 24 against every PR.

Quick contributor loop:

bash
git clone https://github.com/MUSE-CODE-SPACE/content-genie-mcpcd content-genie-mcpnpm installnpm 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.


한국어 요약

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):

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

첫 호출 예시:

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

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

來源:README.md,提交 7b1749b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.9.4最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分