NexusTriage: Turning Notion into an Autonomous, Self-Healing System 🧠
Source: Dev.to
📦 Submission for the Notion MCP Challenge
The Problem: The Notion Graveyard 🪦
We all love Notion, but over time every workspace succumbs to Workspace Decay:
- Quick ideas dumped into the Inbox stay there forever.
- Projects get abandoned.
- Duplicate pages multiply.
Before you know it, a perfectly structured workspace becomes a messy graveyard where it’s impossible to separate signal from noise.
Typical fix: Spend hours on manual “cleanup time.”
What if your workspace could clean, organize, and triage itself automatically?
What I Built 🚀
NexusTriage – a custom Model Context Protocol (MCP) server that turns Notion from a passive data repository into an active, self‑healing system managed by AI.
Key Features
- Autonomous Inbox Triage – Reads raw thoughts and routes them to the correct active projects.
- Executive Summaries – Scrapes project progress and injects visual AI summaries at the top of project pages.
- Decay Prevention – Detects duplicates, empty pages, and stale tasks, then proposes soft‑deletion cleanups.
- Visual Cues – Dynamically changes page icons (🚨, 🟢, 🛑) and covers based on real‑time project health.
Built from the ground up with TypeScript and the official MCP SDK, NexusTriage isn’t just a read/write bot; it orchestrates the entire workspace as a proactive “Human‑in‑the‑Loop” manager.
🎥 Video Demo
(Insert video embed or link here)
💻 Open‑Source
The full MCP server is open‑sourced and organized with a modular tool architecture, allowing anyone to add new capabilities in minutes.
GitHub Repository – NexusTriage
Feel free to explore, fork, and extend the system to fit your own Notion workflow!
🧠 NexusTriage — Autonomous Semantic Workspace Orchestrator
Transform Notion from a passive data repository into an active, context‑aware system.
NexusTriage is a custom MCP (Model Context Protocol) server that gives AI assistants deep, structured access to your Notion workspace, enabling:
- Autonomous task triaging
- Executive‑summary generation
- Workspace‑decay prevention
Built for the Notion MCP Challenge on DEV.to.
✨ Features
🔍 Context Readers (6 tools)
| Tool | Description |
|---|---|
list_databases | Discover all databases in the workspace |
search_pages | Find pages by text query |
get_page_content | Read full block content of any page (with pagination) |
get_inbox_items | Query inbox for un‑triaged items |
get_active_projects | Fetch projects with active status |
get_database_schema | Inspect database structure (properties, types, options) |
✏️ Context Mutators (6 tools)
| Tool | Description |
|---|---|
create_page | Create new pages in any database |
update_page | Update page properties via flexible JSON |
link_task_to_project | Link tasks to projects via a Relation property |
inject_executive_summary | 🌟 Insert a callout at the start of a page (new API feature!) |
move_to_trash | Move a page or block to the trash |
| (additional mutators) | … |
How I Used Notion MCP (The Deep Dive) 🛠️
To build a system capable of semantic reasoning, my MCP server does far more than simple CRUD (Create, Read, Update, Delete) operations. I leveraged the full potential of the Model Context Protocol together with the bleeding‑edge Notion API (Version: 2026‑03‑11).
1. The Full MCP Triad: Tools, Prompts, and Resources
| Component | What it provides |
|---|---|
| Context Tools (Readers & Mutators) | 14 highly specific tools. Example: get_database_schema lets the AI reverse‑engineer any unknown database’s structure (properties, types, select options) without hard‑coded mappings. link_task_to_project handles complex Notion Relations. get_page_comments reads human replies inside Notion, preserving chat history. |
| Semantic Orchestrations (Prompts) | 3 pre‑defined workflows (triage_inbox, weekly_report, cleanup_workspace). Invoking weekly_report automatically instructs the AI to fetch active projects, analyze blockers, and place the results where they belong. |
| Global Guidelines (Resources) | A static workspace_guidelines URI exposed via MCP Resources. It encodes “rules of engagement” such as “never permanently delete a page—use in_trash: true” and “always leave an audit‑trail comment when moving a task.” |
2. Utilizing Unreleased & Brand‑New Notion Capabilities
| Capability | Why it matters |
|---|---|
position: start Callout Injector | The newly introduced position: { type: "start" } API flag lets inject_executive_summary place a callout block at the absolute top of a page, ensuring a weekly status report is seen immediately. |
update_page_style Tool | Allows the AI to change page emojis and covers dynamically (e.g., 🚨 for blocked projects, ✨ for successfully triaged tasks). |
| Human‑in‑the‑Loop Dialogues | When the AI encounters ambiguity, it uses add_comment to ping a human (e.g., “I can’t tell if this is marketing or dev. Leaving it here for review.”). The user replies directly in Notion; the AI later reads the response via get_page_comments and proceeds accordingly. |
Conclusion
NexusTriage demonstrates that, with MCP, an AI can move beyond passive “read‑and‑write” behavior. It becomes an active, localized agent that manages, triages, and curates an organization’s workflow—working silently in the background while you sleep.