This is a submission for the Notion MCP Challenge
Table of Contents
What I Built
Explanatory Video
Introduction
NoteRunway: an AI-powered workspace management tool that helps Notion power users clean up, audit, and command their workspace through a single interface.
Think of it as a flight control tower for your Notion workspace. It scans for problems you didn't know you had, visualizes connections you couldn't see, and lets you talk to your workspace in plain English.
π Live Demo β noterunway.pilotronica.com
The Backstory
I'm a Notion addict. Not the "I use it for grocery lists" kind, rather the "I have 400+ pages, nested databases inside databases, and a set of half-written ideas from 2 AM" kind.
It all started in 2020, when I decided it was time to bring more order into my life. My notes were scattered everywhere, there was some structure, but not nearly enough. I needed something more powerful... something more organized.
Then I discovered Notion and instantly knew it was exactly what I'd been looking for all along and didn't know existed.
You know how it goes, at first, you're fully motivated. Everything's clean, structured, flawless. You're convinced this time you'll manage your notes perfectly.
But sooner or later, every power user ends up in the same place: orphaned pages from long-forgotten projects, duplicate notes written three times because the first two vanished into the void, and dead links leading to pages you archived months ago.
And somewhere in that chaos, there's probably a note with an API key you definitely didn't mean to paste and leave it forever. Have you ever pasted an API key or secret thinking "I'm gonna move it somewhere more secure later"? And that "later" doesn't really come, does it?
I needed a tool that could see the bigger picture, something that could scan everything, something that'd surface what's broken, and help me fix it without blindly deleting content or forcing me to manually comb through bajillion pages.
When the Notion MCP Challenge dropped, it clicked right away. I could build that tool, and give something back to the Notion community while I'm at it.
The 7 Tools
NoteRunway packs 7 workspace management tools, split between pure scanners and AI-powered analyzers.
Think of it as a crew of seven tools at your disposal, everything you need to keep your Notion workspace in top shape. Each one has a specific role: some scan your workspace to surface hidden issues, others go deeper to analyze patterns and give you smarter insights.
Together, they cut through the clutter, highlight what actually needs attention, and help you clean things up without the risk of losing something important. No guesswork, no endless manual checks, just a clear view of your workspace and the tools to keep it running smoothly.
π Workspace Health Dashboard
Your workspace at a glance. Total pages, top-level pages, recently edited, empty pages, and link density (how well-connected your workspace actually is).
It's the "oh wow, I have how many empty pages?" moment.
π Duplicate Detection
This is where the AI earns its keep. NoteRunway fetches up to 100 pages with their content snippets, sends them to the LLM with a specialized system prompt, and gets back semantic duplicate groups with similarity scores.
Not just "same title" duplicates, it catches pages with different names but overlapping content. The AI picks a recommended "keep" version (β), and you choose which ones to archive.
ποΈ Garbage Collector
Rule-based detection across three categories:
- Orphaned β parent page was deleted, child is floating in limbo
- Empty β zero content blocks (you created it and... forgot)
- Stale β untouched for 90+ days (configurable)
Dry-run mode is on by default. You review everything before anything moves.
π Dead Link Detector
Finds @mentions pointing to pages that no longer exist. Every broken mention is tracked back to its source page, so you know exactly where to fix it.
π Sensitive Data Finder
Two-phase security scanner:
Phase 1 (Regex): Scans all pages against 13 patterns: API keys (OpenAI, Anthropic, Stripe, AWS, GitHub), PEM keys, JWTs, database URLs, passwords, credit cards. Findings are always partially redacted, never exposing full values.
Phase 2 (AI Deep Scan): Optionally sends page text to the LLM to catch natural-language secrets that regex misses. Things like "the password is hunter2" or "login: admin/secret123".
πΈοΈ Dependency Graph
An interactive force-directed graph of your entire workspace. Pages are nodes (colored by depth), connections are edges (solid for parent-child, dashed for @mentions). Orphaned pages glow red.
You can hover, click, collapse branches, and zoom around. It's surprisingly therapeutic to see your workspace as a living network.
π¬ Semantic Ask (Agentic Chat)
A natural language interface to your workspace, powered by an agentic AI loop.
Type something like "Find all pages about authentication and summarize them" or "Archive everything in the old-project folder." The AI breaks it into tool calls (search, read, analyze), feeds results back into its context, and proposes structured actions for your approval.
It supports 5 action types: archive, create, rename, append, and update, all with a human-in-the-loop confirmation step. No action executes without your explicit "yes."
Just a heads-up: be cautious with destructive actions. Avoid updating or archiving critical data.
This project is still in beta, and I don't want you to risk losing important information. As you know, AI isn't deterministic, and unexpected outcomes can happen.
Show us the code
Here's the repository:
NoteRunway
AI-Powered Notion Workspace Management
Clean, organize, and command your Notion workspace with AI. Powered by the Notion MCP.
Table of Contents
- Overview
- Features
- Tech Stack
- Architecture
- Project Structure
- Getting Started
- AI Provider Support
- MCP Integration
- Archive System
- Security
- Scripts
- Author
- Acknowledgements
- License
Overview
NoteRunway is a browser-based tool that helps Notion power users clean up, audit, and manage their workspace using a combination of deterministic scans and AI-powered intelligence via the Notion MCP.
It connects to your Notion workspace through OAuth, runs server-side analysis via Next.js API routes, and provides a cyberpunk-themed UI for reviewing findings and approving actions.
Core Principles
| Principle | Description |
|---|---|
| Zero Lock-in | Your data stays in Notion. NoteRunway never stores workspace content. |
| Human-in-the-Loop | No destructive action runs without explicit user approval. |
| Privacy First | AI keys stored only in your browser (BYOK). Sent per-request to NoteRunway APIs and never persisted server-side. |
How I Used Notion MCP
This is the core of the whole project. NoteRunway uses the Notion MCP Server as the execution layer for all workspace interactions in the Semantic Ask feature.
The Architecture
Browser β Next.js API (SSE) β Vercel AI SDK β MCP Client β notion-mcp-server (stdio) β Notion API
Here's the flow:
- User sends a message in the Ask interface
-
Vercel AI SDK processes it with
streamText()and the selected LLM - When the AI decides it needs workspace data, it calls tools:
search_pages,get_page,get_page_content,run_analysis - These tools route through MCPClient, which communicates with the Notion MCP server over stdio (JSON-RPC 2.0)
- The MCP server translates tool calls into Notion API requests and returns structured results
- Results feed back into the AI's context for the next reasoning step (up to 10 steps)
- When the AI wants to make changes, it calls
propose_actions, which streams proposed actions to the UI for human approval - Only after the user confirms does the action execute via MCP
Why MCP and Not Just the API?
I use both. Here's the split:
- NotionClient (direct SDK) for bulk reads, workspace scans, pagination-heavy operations. It's faster for fetching 400 pages than routing through MCP.
- MCPClient (MCP server) for all writes like creating, archiving, renaming, updating pages. MCP provides a sandboxed execution layer with tool-level safety.
This hybrid approach gives me the speed of direct API access with the safety of MCP's tool calling protocol.
Destructive Tool Safety
Any tool that modifies workspace data (patch, post-page, delete, move) requires an approved: true flag. The AI can propose actions, but nothing destructive runs without the user clicking "Execute."
The Tech Behind It
| Layer | Technology | Why |
|---|---|---|
| Framework | Next.js 16 (App Router) | Full-stack React with API routes |
| AI SDK | Vercel AI SDK 6 | Unified streaming + tool calling across 4 providers |
| MCP | @notionhq/notion-mcp-server | Notion workspace access via Model Context Protocol |
| Visualization | React Flow 11 | Force-directed graph for the dependency viewer |
| Validation | Zod 4 | Runtime schema validation for all API inputs/outputs |
| Styling | Tailwind CSS 4 + shadcn/ui | Cyberpunk aesthetic with accessible components |
Multi-Provider AI (BYOK)
NoteRunway supports 4 AI providers with 13 models: OpenAI (GPT-5.4, GPT-5 Mini), Anthropic (Claude Opus 4.6, Haiku 4.5), xAI (Grok 4, Grok 3), and Google (Gemini 2.5 Pro/Flash).
Your API key stays in your browser's localStorage. It's sent per-request in an HTTP header, used once to create a provider instance, and discarded. NoteRunway's server never stores, logs, or persists your key.
The Archive System
Every destructive action creates an audit trail:
NoteRunway Archive/
βββ Duplicates/
β βββ [Audit Stub] Original Title
βββ Garbage Collection/
β βββ [Audit Stub] Stale Page Name
βββ Semantic Ask/
βββ [Audit Stub] Archived via Chat
Each audit stub contains a callout with the archive date, reason, and a faithful copy of the original content. The original page is soft-archived to Notion's trash (recoverable for 30 days).
Nothing is ever truly deleted without a paper trail.
Wrapping Up
NoteRunway started as a personal itch, a messy workspace and a dev challenge deadline. It turned into something I'm going to use every week.
Building with the Notion MCP was a revelation. The ability to give an AI structured access to a workspace, with tool-level control over what it can read and write, opens up workflows that feel like magic. Ask a question, get an answer sourced from your actual pages. Propose a cleanup, review it, execute it. All in one flow.
If you're a Notion power user drowning in pages, give it a spin: noterunway.pilotronica.com
And if you find an API key you forgot about in a meeting note... you're welcome. π
Built with β and too many late nights by Giorgi Kobaidze








Top comments (29)
I don't use Notion on a daily basis, but I still love this app. Blue-neon colors π
Thanks a lot! I refuse to use any other color I'm so obsessed with it π
It's also my favorite, next to turqoise π Actually, the more I'm looking on this page, the more I want to try Notion, maybe it'll sort a bit my inner chaos π
Try it, it'll make your life easier. And it's not even hard to get used to - it's so intuitive, structured, and, most importantly, customizable.
The flight control tower framing is apt. The part I find most interesting is the audit layer - scanning for problems you didnβt know you had. Most Notion workspaces accumulate invisible debt: orphaned pages, broken relations, properties nobody uses. A tool that surfaces that automatically rather than waiting for the next spring clean is solving a real pain. How does it handle false positives when surfacing "problems" - some things that look like orphans are actually intentional?
Thanks for a great feedback. Right now, when it sees empty / orphaned pages or dead links, it just assumes it's not right, but it doesn't make any changes without the owner's approval, because it's not fully automated - and that's by design.
Actually, detecting false positives can be a really good new feature in the future. It's going to be way more complex, but really interesting at the same time.
The human-in-the-loop for approvals is the right call at this stage. False positive detection would be a genuinely tricky problem - the agent would need some model of "intended state" to know when an empty page is a bug vs. a placeholder. Would be interesting to see how you approach that when you get there.
I'll probably create a separate article and maybe even a dedicated video when I get to that. It's a major feature and definitely deserves its own spotlight.
That makes sense. False positive detection deserves its own deep-dive, not a footnote. Looking forward to that article when it comes.
George, you magnificent brain wizard! As a full-stack dev whose daily routine involves wrestling code into submission and occasionally questioning the meaning of semicolons, I gotta say, the pristine architecture and sheer logic behind NoteRunway is a sight for sore eyes. Notion is powerful, yes, but organizing it usually feels like trying to fold a fitted sheet in a wind tunnel. This 'elite crew' of independent tools isn't just sensible; it's a stroke of genius. Now go forth and absolutely crush that MCP challenge! May your databases be ever clean and your caffeine supply endless. π₯
Oh wow! That's overwhelmingly positive feedback, sir! Thank you so much!π
Now please check my website zlvox.com and please share with your friends or audience :)
The crew framing is the right mental model. Seven specialists with narrow roles beats one generalist trying to do everything. The real architecture decision was knowing where to use direct SDK for speed and MCP for safety, that's the kind of hybrid most people miss when they reach for "one tool to rule them all."
Absolutely! One thing that Iβve learned during my career is that if one tool does everything, that might not be the most effective tool in the βdrawerβ. Usually the same applies to people in general.
Awesome submission! I really like the '7 tools' framingβit makes the complex workspace management feel much more approachable. The Dependency Graph is a nice touch too; visualizing those orphaned pages is often the first step to a clean workspace. Great work on the Notion MCP integration!
Appreciate such a great feedback! This gives me more motivation to make these 7 tools even more polished and precise in the future and add a few more features.π«‘
The orphaned page detection is the sleeper feature. Most Notion workspaces accumulate dead pages faster than anyone cleans them up β not because people are lazy, but because thereβs no cost signal. Visualizing the dependency graph and seeing which pages have zero inbound links makes the cleanup obvious. This only works when you have structured access to the workspace graph, which is what MCP gives you.
In the future I might add modifications directly from the graph. It has a lot of potential.
The Sensitive Data Finder is the feature I didn't know I needed until I read this. The two-phase approach regex first, then AI deep scan for natural-language secrets is the right order. Regex catches the structured patterns fast and cheap. AI catches the password is hunter2 style entries that no regex would ever find. Running them sequentially instead of in parallel keeps the cost predictable too.
The hybrid SDK + MCP split is also worth calling out separately. Direct SDK for bulk reads, MCP for all writes that's not an obvious call to make, and most people would just pick one and stick with it. Using MCP as a safety layer specifically for destructive operations is a genuinely smart architectural boundary.
One question: with the Sensitive Data Finder, does the AI deep scan phase see the full page content or just the sections that flagged suspicious in Phase 1? Sending only the flagged content to the LLM would be cheaper and also limits how much raw workspace data the model sees curious whether that was a deliberate design call.
Thank you! Your analysis is 100% spot on and I'm glad you found it useful. π¦Ύ
Regarding the question: AI does its own scan, and it scans the whole workspace. That's why it's recommended to avoid it on huge workspaces with thousands of pages, it can drain AI credits way too fast. But for small or medium-sized workspaces, it works like a charm. In the future I might add support for selectively scanning pages with AI - sometimes you just know specific pages don't contain any sensitive data and there's no point of wasting AI credits on those.
The 'crew of specialists' framing is a nice mental model for multi-agent systems β each agent has a narrow, well-defined role rather than one generalist trying to do everything.
The interesting architecture question is how you handle coordination: when two 'crew members' have conflicting outputs, who arbitrates? In database contexts we've found that having a clear single source of truth (the DB) as the arbiter works well, but in creative/planning workflows it's murkier.
This is a great question. At the moment, each tool is designed to run independently, with its own clearly defined responsibility. That means each one makes decisions based on its own criteria.
The only exception is the semantic ask. However, any destructive action, whether itβs an addition, deletion, or modification, requires explicit user approval before being executed. Because of that, conflicts donβt really arise in practice.
Also, the process isnβt asynchronous, a user approves one change at a time.
The Sensitive Data Finder is something every Notion power user quietly needs β that "I'll move this API key later" moment never comes π
π―everybody does it, nobody admits itπ
I donβt even use Notion, but this looks clean.
The βcrew of toolsβ idea + the security angle is actually smart. Feels like something power users would genuinely need, not just another AI wrapper.
Thanks a lot! Tried my best to make it as clean and intuitive as possible. I'm glad it worked!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.