Skip to main content
Glama
mwl313

Namu Watcher

Namu Watch πŸ”

AI둜 λ‚˜λ¬΄μœ„ν‚€λ₯Ό 읽닀

Namu WatchλŠ” AI 챗봇이 μ‚¬μš©μžμ˜ μžμ—°μ–΄ μš”μ²­μ— 따라 λ‚˜λ¬΄μœ„ν‚€ λ¬Έμ„œλ₯Ό κ²€μƒ‰ν•˜κ³  읽을 수 있게 ν•΄μ£ΌλŠ” MCP μ„œλ²„μž…λ‹ˆλ‹€.

"λ‚˜λ¬΄μœ„ν‚€μ—μ„œ μ΄μˆœμ‹  μ•Œλ €μ€˜" β€” 이 ν•œλ§ˆλ””λ‘œ AIκ°€ λ‚˜λ¬΄μœ„ν‚€ λ¬Έμ„œλ₯Ό μ°Ύμ•„ μš”μ•½ν•΄μ€λ‹ˆλ‹€. μ‹€μ‹œκ°„ 검색어 νŠΈλ Œλ“œμ™€ 각 ν‚€μ›Œλ“œκ°€ μ™œ λœ¨λŠ”μ§€λ„ ν•¨κ»˜ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


μ£Όμš” κΈ°λŠ₯

κΈ°λŠ₯

도ꡬλͺ…

μ„€λͺ…

πŸ” λ‚˜λ¬΄μœ„ν‚€ 검색

search

λ‚˜λ¬΄μœ„ν‚€ λ¬Έμ„œ 검색 및 λ‚΄μš© 쑰회 (8000자 λ‹¨μœ„ 청크 λΆ„ν• , 멀티블둝 응닡). 핡심 κΈ°λŠ₯

πŸ”₯ μ‹€μ‹œκ°„ 검색어

trending

λ‚˜λ¬΄μœ„ν‚€ 곡식 API 기반 μ‹€κ²€ TOP N 쑰회

❓ μ™œ λ–΄λŠ”μ§€

why

νŠΉμ • ν‚€μ›Œλ“œκ°€ 싀검에 였λ₯Έ 이유 μ„€λͺ… (μ•„μΉ΄λΌμ΄λΈŒ β†’ λ‚˜λ¬΄μœ„ν‚€ fallback)

πŸ“… κ³Όκ±° 이λ ₯

history

νŠΉμ • λ‚ μ§œμ˜ μ‹€κ²€ μˆœμœ„ λ˜λŠ” ν‚€μ›Œλ“œ μ‹œκ°„λ³„ λ“±μž₯ 기둝

πŸ“ˆ κΈ‰μƒμŠΉ 감지

velocity

졜근 Nμ‹œκ°„ λ™μ•ˆ 쑰회수 급증 ν‚€μ›Œλ“œ 탐지

πŸ”— μ—°κ΄€ ν‚€μ›Œλ“œ

related

νŠΉμ • ν‚€μ›Œλ“œμ™€ ν•¨κ»˜ 자주 λ“±μž₯ν•˜λŠ” μ—°κ΄€ ν‚€μ›Œλ“œ

πŸ‘« ν•¨κ»˜ νŠΈλ Œλ”©

trending_together

λ™μ‹œκ°„λŒ€ ν•¨κ»˜ λ“±μž₯ν•˜λŠ” ν‚€μ›Œλ“œ 쌍 뢄석

πŸ“Š 였늘의 리포트

trend_of_day

였늘의 μ‹€κ²€ μ’…ν•© 리포트

Related MCP server: Trends MCP

μ‚¬μš© μ˜ˆμ‹œ

μ‚¬μš©μžλŠ” μΉ΄μΉ΄μ˜€ν†‘ μ±„νŒ…μ—μ„œ μžμ—°μ–΄λ‘œ μ§ˆλ¬Έν•˜λ©΄ λ©λ‹ˆλ‹€. λͺ¨λ“  λͺ…λ Ήμ–΄λŠ” AIκ°€ μžλ™μœΌλ‘œ μΈμ‹ν•©λ‹ˆλ‹€.

πŸ‘€ "λ‚˜λ¬΄μœ„ν‚€μ—μ„œ μ΄μˆœμ‹ μ— λŒ€ν•΄ μ•Œλ €μ€˜"
β†’ AIκ°€ search("μ΄μˆœμ‹ ") 호좜 β†’ λ¬Έμ„œ 전체λ₯Ό 청크 λ‹¨μœ„λ‘œ μˆ˜μ‹ 
πŸ€– "μ΄μˆœμ‹ μ€ μ‘°μ„  μ€‘κΈ°μ˜ λ¬΄μ‹ μœΌλ‘œ..."

πŸ‘€ "ㄱㄱㅅ이 λˆ„κ΅¬μ•Ό?"
β†’ AIκ°€ search("γ„±γ„±γ……") 호좜 β†’ fallback chain: "γ„±γ„±γ……" β†’ "γ„±γ„±" β†’ μ μ ˆν•œ λ¬Έμ„œ 탐색
πŸ€– "κ³ κ΅¬λ§ˆμˆœμ΄λΌκ³ λ„ λΆˆλ¦¬λŠ”..."

πŸ‘€ "μ§€κΈˆ μ‹€κ²€ 뭐 뜨고 μžˆμ–΄?"
β†’ AIκ°€ trending() 호좜 β†’ λ‚˜λ¬΄μœ„ν‚€ 곡식 μ‹€κ²€ API
πŸ€– "πŸ”₯ μ‹€μ‹œκ°„ 검색어 TOP 10..."

πŸ‘€ "ν˜Έλ‚ λ‘ μ™œ 싀검에 λ–΄μ–΄?"
β†’ AIκ°€ why("ν˜Έλ‚ λ‘") 호좜 β†’ μ•„μΉ΄λΌμ΄λΈŒ κ²Œμ‹œκΈ€ 검색 β†’ λ‚˜λ¬΄μœ„ν‚€ fallback
πŸ€– "였늘 슀페인과의 16강전에 μ„ λ°œ μΆœμ „ν–ˆμœΌλ‚˜..."

데이터 μ†ŒμŠ€

기술 μŠ€νƒ

ν•­λͺ©

기술

μ–Έμ–΄

TypeScript (Node.js 20+)

λŸ°νƒ€μž„

Node.js 20+ (ESM, "type": "module")

MCP ν”„λ‘œν† μ½œ

Streamable HTTP β€” POST /mcp (JSON-RPC 2.0)

HTTP μ„œλ²„

Node.js λ‚΄μž₯ http λͺ¨λ“ˆ

HTML νŒŒμ‹±

cheerio

λ°μ΄ν„°λ² μ΄μŠ€

sql.js (SQLite β†’ WASM, λ„€μ΄ν‹°λΈŒ λΉŒλ“œ λΆˆν•„μš”)

μž…λ ₯ 검증

zod

배포

Docker (linux/amd64)

λΉ λ₯Έ μ‹œμž‘

사전 μš”κ΅¬μ‚¬ν•­

  • Node.js 20+

  • npm

μ„€μΉ˜ 및 μ‹€ν–‰

git clone https://github.com/mwl313/NamuWatcher.git
cd NamuWatcher

npm install
npm run build
node dist/index.js

μ„œλ²„κ°€ http://localhost:3000μ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

Docker

docker build --platform linux/amd64 -t namu-watch .
docker run --platform linux/amd64 -p 3000:3000 -v namu-data:/app/data namu-watch

API μ—”λ“œν¬μΈνŠΈ

λ©”μ„œλ“œ

경둜

μ„€λͺ…

POST

/mcp

MCP Streamable HTTP (JSON-RPC 2.0)

GET

/healthz

ν—¬μŠ€μ²΄ν¬ (μƒνƒœ JSON λ°˜ν™˜)

OPTIONS

*

CORS preflight

MCP ν”„λ‘œν† μ½œ

ν΄λΌμ΄μ–ΈνŠΈλŠ” ν‘œμ€€ MCP JSON-RPC λ©”μ‹œμ§€λ₯Ό POST /mcp둜 μ „μ†‘ν•©λ‹ˆλ‹€.

μ΄ˆκΈ°ν™”:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-03-26",
    "capabilities": {},
    "clientInfo": { "name": "my-client", "version": "1.0.0" }
  }
}

도ꡬ 쑰회:

{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }

도ꡬ 호좜 (예: search):

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "search",
    "arguments": { "keyword": "μ΄μˆœμ‹ " }
  }
}

search λ„κ΅¬λŠ” 멀티블둝 응닡을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"type\":\"search\",\"title\":\"μ΄μˆœμ‹ \",\"url\":\"...\",\"total_chunks\":5}"
      },
      {
        "type": "text",
        "text": "[1/5]\nμ΄μˆœμ‹ μ€ μ‘°μ„  μ€‘κΈ°μ˜ λ¬΄μ‹ μœΌλ‘œ..."
      },
      {
        "type": "text",
        "text": "[2/5]\n1592λ…„ μž„μ§„μ™œλž€μ΄ λ°œλ°œν•˜μž..."
      }
    ]
  }
}
  • 첫 번째 블둝: 메타정보 JSON (title, url, total_chunks)

  • 이후 블둝: [i/total] 라벨 + 8000자 λ‹¨μœ„ λ³Έλ¬Έ

  • AIλŠ” 메타정보λ₯Ό 읽고, ν•„μš”ν•œ 청크λ₯Ό μ„ νƒν•˜μ—¬ 닡변을 μƒμ„±ν•©λ‹ˆλ‹€.

ν™˜κ²½ λ³€μˆ˜

λ³€μˆ˜

κΈ°λ³Έκ°’

μ„€λͺ…

PORT

3000

HTTP μ„œλ²„ 포트

DB_PATH

/app/data/namu_watch.db

SQLite 파일 경둜

NODE_ENV

production

μ‹€ν–‰ λͺ¨λ“œ

ν”„λ‘œμ νŠΈ ꡬ쑰

namu-watch/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts               # HTTP μ„œλ²„ + JSON-RPC ν•Έλ“€λŸ¬
β”‚   β”œβ”€β”€ types.ts               # 곡톡 νƒ€μž… μ •μ˜
β”‚   β”œβ”€β”€ utils.ts               # μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜ (fetch, delay, μΉ΄ν…Œκ³ λ¦¬ λΆ„λ₯˜)
β”‚   β”œβ”€β”€ tools/
β”‚   β”‚   β”œβ”€β”€ search.ts          # πŸ” λ‚˜λ¬΄μœ„ν‚€ λ¬Έμ„œ 검색 (청크 λΆ„ν•  + 멀티블둝 응닡)
β”‚   β”‚   β”œβ”€β”€ trending.ts        # πŸ”₯ λ‚˜λ¬΄μœ„ν‚€ 곡식 API μ‹€κ²€ TOP N
β”‚   β”‚   β”œβ”€β”€ why.ts             # ❓ μ‹€κ²€ 이유 μ„€λͺ… (μ•„μΉ΄λΌμ΄λΈŒ β†’ λ‚˜λ¬΄μœ„ν‚€ fallback)
β”‚   β”‚   β”œβ”€β”€ history.ts         # πŸ“… κ³Όκ±° μ‹€κ²€ 이λ ₯ 쑰회
β”‚   β”‚   β”œβ”€β”€ velocity.ts        # πŸ“ˆ κΈ‰μƒμŠΉ ν‚€μ›Œλ“œ 감지
β”‚   β”‚   β”œβ”€β”€ related.ts         # πŸ”— μ—°κ΄€ ν‚€μ›Œλ“œ
β”‚   β”‚   β”œβ”€β”€ trending-together.ts  # πŸ‘« ν•¨κ»˜ λœ¨λŠ” ν‚€μ›Œλ“œ
β”‚   β”‚   └── trend-of-day.ts    # πŸ“Š μ’…ν•© 리포트
β”‚   β”œβ”€β”€ scrapers/
β”‚   β”‚   β”œβ”€β”€ namuwiki.ts        # πŸ“– λ‚˜λ¬΄μœ„ν‚€ λ¬Έμ„œ νŒŒμ‹± (3단계 우회: 직행 β†’ μΏ ν‚€ β†’ Google Cache)
β”‚   β”‚   β”œβ”€β”€ ranking.ts         # πŸ“Š search.namu.wiki 곡식 μ‹€κ²€ API
β”‚   β”‚   └── arca.ts            # πŸ›οΈ μ•„μΉ΄λΌμ΄λΈŒ 싀검채널 μŠ€ν¬λž˜ν•‘ (vrow ꡬ쑰)
β”‚   └── db/
β”‚       β”œβ”€β”€ schema.ts          # SQLite μ΄ˆκΈ°ν™” (snapshots + articles)
β”‚       └── queries.ts         # DB CRUD ν•¨μˆ˜
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ package.json
└── tsconfig.json

λΌμ΄μ„ μŠ€

MIT

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Real-time trend data from Google Trends (Search, Images, News, Shopping), YouTube, TikTok, Reddit, Amazon, Wikipedia, npm, Steam, Spotify, X (Twitter), App Store, Google Play, web traffic, and news sentiment via one MCP connection. Works with Claude, Cursor, VS Code, Windsurf, ChatGPT, and any MCP-compatible AI.
    Last updated
    28
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Naver Search API + Datalab API MCP server with 19 tools for Korean web search and trend analysis.
    Last updated
    30

View all related MCP servers

Related MCP Connectors

  • Live Wikipedia edit feed, page summaries, trending pages, and Wikidata search.

  • Korean news aggregator - Naver, Google News, Daum trends in real-time

  • Provide real-time data querying and visualization by integrating Tako with your agents. Generate o…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mwl313/NamuWatcher'

If you have feedback or need assistance with the MCP directory API, please join our Discord server