ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
NexusTriage: Turning Notion into an Autonomous, Self-Healing System ๐Ÿง 
Dev.toDev.to
AI/ML

TypeScript์™€ MCP SDK๋กœ ๊ตฌ์ถ•๋œ NexusTriage๊ฐ€ Notion ์›Œํฌ์ŠคํŽ˜์ด์Šค์˜ ์ •ํฌ inbox๋ฅผ ์ž๋™ ๋ถ„๋ฅ˜ํ•˜๊ณ  AI ์š”์•ฝ๋ฌธ์„ ํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ์— ์‚ฝ์ž…ํ•˜๋ฉฐ ์‹œ๊ฐ์  ํ๋กœ ํ”„๋กœ์ ํŠธ ์ƒํƒœ๋ฅผ ๋™์  ํ‘œ์‹œํ•˜๋Š” ์ž์œจ์  ์ž‘์—… ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.

NexusTriage: Turning Notion into an Autonomous, Self-Healing System ๐Ÿง 

Sofia2026๋…„ 3์›” 30์ผ4๋ถ„intermediate

Context

Notion ์›Œํฌ์ŠคํŽ˜์ด์Šค๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก inbox์— ๋ฏธ์ฒ˜๋ฆฌ ์•„์ด๋””์–ด๊ฐ€ ์Œ“์ด๊ณ , ์ค‘๋ณต ํŽ˜์ด์ง€๊ฐ€ ์ฆ์‹ํ•˜๋ฉฐ, ์ค‘๋‹จ๋œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฐฉ์น˜๋˜๋Š” 'Workspace Decay' ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ •๋ฆฌ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด์•ผ ํ–ˆ๋‹ค.

Technical Solution

  • Notion ์›Œํฌ์ŠคํŽ˜์ด์Šค โ†’ MCP Server๋ฅผ ๊ฒฝ์œ ํ•˜์—ฌ AI ์–ด์‹œ์Šคํ„ดํŠธ์— 14๊ฐœ์˜ ์„ธ๋ถ„ํ™”๋œ ๋„๊ตฌ ์ œ๊ณต (get_database_schema, link_task_to_project, get_page_comments ๋“ฑ)
  • MCP Prompts(triage_inbox, weekly_report, cleanup_workspace)๋ฅผ ํ™œ์šฉํ•œ ์‚ฌ์ „ ์ •์˜๋œ ๋…ผ๋ฆฌ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌํ˜„
  • Notion API์˜ position: { type: "start" } ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ AI ์ƒ์„ฑ executive summary๋ฅผ ํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ์— ๊ฐ•์ œ ์‚ฝ์ž…
  • update_page_style ๋„๊ตฌ๋กœ AI๊ฐ€ ํ”„๋กœ์ ํŠธ ์ƒํƒœ์— ๋”ฐ๋ผ ๐Ÿšจ, ๐ŸŸข, ๐Ÿ›‘ ์ด๋ชจ์ง€์™€ ์ปค๋ฒ„ ์ด๋ฏธ์ง€๋ฅผ ๋™์  ๋ณ€๊ฒฝ
  • add_comment์™€ get_page_comments ๋„๊ตฌ ์กฐํ•ฉ์œผ๋กœ AI ๋ฏธ๊ฒฐ ์‚ฌํ•ญ์„ ์ธ๊ฐ„์—๊ฒŒPingํ•˜๋Š” Human-in-the-Loop ์˜์‚ฌ์†Œํ†ต ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ตฌํ˜„
  • MCP Resources๋ฅผ ํ†ตํ•ด static workspace_guidelines URI๋กœ AI ํ–‰๋™ ๊ทœ์น™(์˜๊ตฌ ์‚ญ์ œ ๊ธˆ์ง€, ๊ฐ์‚ฌ ๋กœ๊ทธ ๋Œ“๊ธ€ ๋‚จ๊ธฐ๊ธฐ ๋“ฑ) ์ „๋‹ฌ

Impact

์ •๋Ÿ‰์  ์„ฑ๋Šฅ ๋ณ€ํ™” ์ˆ˜์น˜๋Š” ์ œ๊ณต๋˜์ง€ ์•Š์Œ

Key Takeaway

MCP์˜ ์ง„์ •ํ•œ ๊ฐ€์น˜๋Š” Tools ๋‹จ๋… ๊ตฌํ˜„์ด ์•„๋‹Œ Tools, Prompts, Resources์˜ ํŠธ๋ผ์ด๋“œ ํŠธ๋ฆฌ์˜ค๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ AI์—๊ฒŒ ๋งฅ๋ฝ, ์—ญ๋Ÿ‰, ์ž์œจ์„ฑ์„ ๋™์‹œ์— ๋ถ€์—ฌํ•˜๋Š” ์„ค๊ณ„ ์ ‘๊ทผ๋ฒ•์— ์žˆ๋‹ค.


Notion ์›Œํฌ์ŠคํŽ˜์ด์Šค ๊ด€๋ฆฌ ์ž๋™ํ™”๊ฐ€ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์—์„œ MCP Server ์•„ํ‚คํ…์ฒ˜๋ฅผ TypeScript + ๊ณต์‹ MCP SDK๋กœ ๊ตฌํ˜„ ์‹œ 14๊ฐœ์˜ ์„ธ๋ถ„ํ™”๋œ CRUD ๋„๊ตฌ์™€ ์‚ฌ์ „ ์ •์˜ ์›Œํฌํ”Œ๋กœ์šฐ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์ธ๊ฐ„ ๊ฐœ์ž… ์—†๋Š” ์ž์œจ์  inbox ๋ถ„๋ฅ˜ ๋ฐ ํŽ˜์ด์ง€ ์ •๋ฆฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

์›๋ฌธ ์ฝ๊ธฐ