Content Genie
개요
제작자가 쓴 설명(영어 원문)
AI Content Creation Assistant for Korean creators - Trend analysis & SEO
PopNx MCP의 세 기둥
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
- 사용자 의견i아직 리뷰가 없어요리뷰는 다음 단계에서 계정 기능과 함께 열려요
- 우리의 기본 점검i1개 중 1개 통과공개된 정보로 점검했으며, 코드는 아직 스캔하지 않았어요
- 사용 정도i아주 새로움↓ 94/주 · ★ –
할 수 있는 일
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
- 연결 방식: 내 컴퓨터에서 실행
- 전송 방식: stdio
- 카테고리: 마케팅 및 소셜 미디어
설치
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
설치하기 전에
- 기본 점검: 1개 중 1개 통과
- 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
- 레지스트리에 입력해야 할 키가 나와 있지 않아요.
필요한 것
- npmNode.js 설치(npx 명령어용)
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"content-genie": {
"command": "npx",
"args": [
"-y",
"content-genie-mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add content-genie -- npx -y content-genie-mcp또는 설정을 직접 복사하기
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"content-genie": {
"command": "npx",
"args": [
"-y",
"content-genie-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
또는 설정을 직접 복사하기
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"content-genie": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"content-genie-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
할 수 있는 일
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
기본 점검i
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
- ✓ 통과
제작자와 저장소 일치
레지스트리 이름이 GitHub 계정 MUSE-CODE-SPACE 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
- … 아직 점검 안 함
계속 관리되고 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- … 아직 점검 안 함
라이선스 있음
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
- – 해당 없음
엔드포인트 응답
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
- – 해당 없음
OAuth로 로그인
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
- … 아직 점검 안 함
도구 설명에 숨겨진 지시 없음
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
마케팅 및 소셜 미디어 카테고리의 다른 서버와 비교i
- 이 카테고리의 다른 서버 3593개 중 0%보다 스타가 많아요
- 이 카테고리의 다른 서버 3593개 중 0%보다 최근에 레지스트리에 공개됐어요
- 기본 점검 결과가 이 카테고리의 다른 서버 3593개 중 100%와 같거나 더 좋아요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
자주 묻는 질문
Content Genie, 안전한가요?
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
어떤 키나 코드가 필요한가요?
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
아직 관리되고 있나요?
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.9.4)은 11개월 전 레지스트리에 올라왔어요.
어떤 앱에서 쓸 수 있나요?
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
대신 쓸 수 있는 건 뭐가 있나요?
같은 카테고리에는: MCP YouTube Transcript, Google Analytics MCP, BibiGPT YouTube Video Summarizer
대안
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Google Analytics MCP
GA4 MCP server for AI agents: schema discovery, server-side aggregation, analysis-ready defaults.
BibiGPT YouTube Video Summarizer
AI video summarizer: summarize and transcribe YouTube, Bilibili, TikTok and podcast videos.
제작자의 README
README 열기
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.
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.tsis gone — tools live insrc/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/sourcesexposes live breaker + cache state. - Two MCP Prompts as guided workflows.
viral-titlechainsoptimize_title_hashtags→predict_viral_score→generate_ab_test_variants.competitor-analysisdoes 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
# 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"] } } }
- Restart Claude Desktop (or
claudewill pick it up on the next run). - Try this in Claude:
오늘 한국에서 뜨는 키워드 5개로 유튜브 쇼츠 제목 후보 3개씩 만들고, 각각 바이럴 점수 등급 매겨줘.
- Expected: Claude calls
get_korean_trends(naver+daum+google+youtube+zum merged) →optimize_title_hashtagsper 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
| 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:
- 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. - Scrapers never throw. They return a
ScrapeResultenvelope (ok | stale | unavailable). All error handling is in one place (runScraper), so adding a new source is "write a scraper, returnScrapeResult, done". - 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/2027works 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_scoreis 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_thumbnailworks 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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요