TypeScript์ MCP SDK๋ก ๊ตฌ์ถ๋ NexusTriage๊ฐ Notion ์ํฌ์คํ์ด์ค์ ์ ํฌ inbox๋ฅผ ์๋ ๋ถ๋ฅํ๊ณ AI ์์ฝ๋ฌธ์ ํ์ด์ง ์ต์๋จ์ ์ฝ์ ํ๋ฉฐ ์๊ฐ์ ํ๋ก ํ๋ก์ ํธ ์ํ๋ฅผ ๋์ ํ์ํ๋ ์์จ์ ์์ ๊ด๋ฆฌ ์์คํ ์ ๊ตฌํํ๋ค.
NexusTriage: Turning Notion into an Autonomous, Self-Healing System ๐ง
AI ์์ฝ
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 ๋ถ๋ฅ ๋ฐ ํ์ด์ง ์ ๋ฆฌ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋ค.