This is a submission for the Notion MCP Challenge
NexusForge is a multimodal workflow app for Notion. It turns screenshots, whiteboard photos, rough sketches, and messy prompts into structured Notion-ready deliverables.
The strongest workflow in the app is diagram to technical brief: upload a system design image, ask for a concise engineering summary, and NexusForge produces a clean markdown artifact that can be previewed immediately and published into Notion as a child page.
I built it to solve a very practical problem: visual thinking happens early, but documentation usually happens later and manually. NexusForge closes that gap.
It combines:
âś… Gemini 3 Flash Preview for multimodal understanding
âś… Notion API for creating real pages from generated markdown
âś… Notion MCP configuration in the workspace, so the repo is ready for direct Notion MCP OAuth in VS Code
Reliability Hardening
To make the app safer for broader public use, I added:
- a Notion page picker backed by live workspace search
- client-side upload validation for unsupported image types and oversized files
- clearer Notion publish errors instead of generic failures
- retry and timeout handling for both Gemini and Notion requests
- a small runtime health panel so users can see whether Gemini, OAuth, and Notion publish paths are actually ready
Live:
View the source code:
aniruddhaadak80
/
nexus-forge
Turn rough visuals into polished Notion deliverables with Gemini, Notion, and MCP.
Overview
NexusForge is a challenge-focused multimodal workflow app for Notion. It takes a screenshot, whiteboard photo, product sketch, or architecture diagram plus a text prompt, uses Gemini 3 Flash Preview to generate structured markdown, and then publishes that result into Notion as a child page.
It now supports two Notion auth paths:
- Connect Notion with OAuth from the app UI
- Fall back to
NOTION_API_KEY for a workspace token based setup
The project also includes workspace-level Notion MCP configuration in .vscode/mcp.json so the repo itself is ready for direct Notion MCP OAuth inside VS Code.
Why This Is Different
- It is built around a concrete workflow, not a generic chat wrapper.
- It demonstrates multimodal input with a real generated artifact.
- It uses an honest split between Notion MCP for workspace tooling and the Notion API for user-triggered web publishing.
- It is screenshot-ready for…
aniruddhaadak80
/
nexus-forge
Turn rough visuals into polished Notion deliverables with Gemini, Notion, and MCP.
Overview
NexusForge is a challenge-focused multimodal workflow app for Notion. It takes a screenshot, whiteboard photo, product sketch, or architecture diagram plus a text prompt, uses Gemini 3 Flash Preview to generate structured markdown, and then publishes that result into Notion as a child page.
It now supports two Notion auth paths:
- Connect Notion with OAuth from the app UI
- Fall back to
NOTION_API_KEYfor a workspace token based setup
The project also includes workspace-level Notion MCP configuration in .vscode/mcp.json so the repo itself is ready for direct Notion MCP OAuth inside VS Code.
Why This Is Different
- It is built around a concrete workflow, not a generic chat wrapper.
- It demonstrates multimodal input with a real generated artifact.
- It uses an honest split between Notion MCP for workspace tooling and the Notion API for user-triggered web publishing.
- It is screenshot-ready for…
Demo:
Landing page
Generated result from an uploaded system map
Structure Flowchart
Let's see how the internal pipeline operates using this diagram:
Setup & Implementation Guide
1. The Multimodal Intelligence
I used @google/genai with gemini-3-flash-preview so NexusForge can reason about both text and images in one request. That makes screenshots and architecture diagrams first-class input instead of just attachments.
const contents = [
{
text: `${buildSystemPrompt(mode)}\n\nUser request: ${prompt.trim()}`,
},
];
if (imageBase64) {
const [meta, data] = imageBase64.split(",");
const mimeType = meta.split(":")[1]?.split(";")[0] ?? "image/png";
contents.push({
inlineData: { data, mimeType },
});
}
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents,
});
2. The Notion Publishing Path
For the web app runtime, I now support a proper Notion OAuth connect flow. Users can connect their own workspace from the UI, which stores an encrypted session cookie and lets the server publish to Notion using that workspace token. I also kept NOTION_API_KEY as a fallback for internal demos.
Once connected, the app uses the Notion API to create a real child page under a selected parent page:
const response = await fetch("https://api.notion.com/v1/pages", {
method: "POST",
headers: {
Authorization: `Bearer ${notionApiKey}`,
"Content-Type": "application/json",
"Notion-Version": "2026-03-11",
},
body: JSON.stringify({
parent: { page_id: cleanParentId },
properties: {
title: {
title: [{ text: { content: title } }],
},
},
markdown,
}),
});
3. OAuth Callback + Session Handling
The app includes a callback route at /api/notion/callback that exchanges the authorization code for an access token, encrypts the token server-side, and stores it in an HTTP-only cookie. That makes the demo feel like a real connected product rather than a one-off internal script.
4. Where MCP Fits
The repo also includes .vscode/mcp.json pointing at https://mcp.notion.com/mcp, so the workspace itself is ready for direct Notion MCP authentication inside GitHub Copilot or other MCP-capable tools in VS Code.
That means the project demonstrates two complementary ideas:
- Web app publishing flow for end users
- Workspace MCP integration for AI-assisted Notion operations while developing
Why This Stands Out In The Challenge
- It is not just “chat with Notion”. It is a concrete production-style workflow.
- It shows off multimodality in a way judges can understand immediately.
- It includes a real in-product Connect Notion OAuth handoff instead of relying only on hidden developer credentials.
- It uses Notion in a way that feels native: generating polished artifacts and pushing them directly into a workspace.
- It is practical across engineering, operations, marketing, and study workflows.
- It has been hardened beyond a demo by reducing common user failure modes in the publish flow.
Future Scope
- Add PDF and document ingestion for richer multimodal pipelines.
- Add template-aware publishing into specific Notion databases.
- Add polling and human-in-the-loop approval flows for recurring workflows.
NexusForge aims to redefine exactly how interactive and automated workspaces should feel!
Thank you to Notion and DEV. đź’–



Top comments (0)