
Notion Arena
io.github.imgulPublished by GitHub account imgulv0.2.2Updated Oct 26, 2026
MCP server for Notion Arena — 143 Notion components: 132 widgets + 11 recipes
The publisher's own server: Notion
Overview
Local MCP server for the Notion Arena component registry, letting an assistant search, inspect and plan installation of Notion widgets and recipes.
- What you can do
- Browse and search the Notion Arena catalog of widgets and native recipes, and read categories and site info
- Inspect a single component or registry item, including a widget's configuration schema and parameters
- Build embed URLs for hosted widgets with chosen configuration options
- Plan an install of a native recipe, and fetch install guides explaining the delivery channels
- Filter components by capability flags such as offline-safe, persists locally or writes to Notion
- When to use it
- Useful when you want an assistant to find a suitable Notion widget or recipe and explain how to add it to a page, for example a pomodoro timer, a habit tracker or a CRM pipeline. It is a catalog and planning aid, not a tool that edits your Notion workspace itself.
- Requirements
- Runs locally over stdio via npx from the npm package notion-arena-mcp, so Node.js is needed. No authentication, environment variables or headers are declared. Network access is needed to fetch the package and to reach the hosted registry and embed URLs.
Installation
In SourceWeft
- Open Notion Arena in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[Deploy with Vercel] [npm version] [MCP Registry] [License: MIT] [PRs Welcome] [Discord]
Notion Arena
The component registry for Notion.
shadcn/ui's model: browse, configure, copy, own, install from code — applied to Notion dashboards.
[192 Widgets] [11 Recipes] [MCP Ready] [Skill Enabled]
[Time] [Dashboards] [Trackers] [Planning] [Business] [Docs] [Visuals] [Automations]
🎯 What is Notion Arena?
Notion Arena is a machine-readable component registry for Notion — 203 pre-built components you can drop into any Notion page:
Notion is a trademark of Notion Labs Inc. This is an independent project and is not affiliated with or endorsed by Notion.
🎨 Popular Widgets Showcase
📦 All 192 Widgets (click to expand)
⚙️ Native Recipes (11)
🤖 For AI Agents — MCP + Skill
Plug Notion Arena directly into your AI agent — Claude Code, Cursor, Windsurf, Claude Desktop.
MCP Server
Gives your agent tools to list/search/configure/plan-install all 203 components:
Skill
Teaches your agent the Notion Arena workflow, delivery channels, widget contract:
Once both are installed, just ask:
"Find me a pomodoro timer for Notion" "Add a CRM pipeline to my Notion" "I need a habit tracker that works offline"
Your agent will use search_components, get_component, build_embed_url, plan_install automatically.
MCP Tools: list_components, search_components, get_component, get_widget_schema, build_embed_url, plan_install, get_registry_item, get_install_guide, get_categories, get_site_info
Skill: skills/notion-arena/SKILL.md + .claude/skills/notion-arena/SKILL.md + .claude-plugin/plugin.json + .claude-plugin/marketplace.json
See docs/AGENT_SETUP.md for MCP+Skill setup and docs/DEPLOY_AND_PUBLISH.md for free deployment (Vercel) + publishing MCP to npm & registry and Skill to skills.sh & plugin marketplace.
🏗️ Three Delivery Channels — Visualized
One HTML file serves both widget channels, so they cannot drift. Configuration comes from the query string on the hosted path and from a baked-in
<script id="bk-config">on the downloaded path, because a sandboxed block has no URL.
📋 Widget Contract — The 4 Rules
Every widget in public/widgets/ implements the same four rules. See /docs/authoring for the full guide and checklist.
Plus: body { overflow: hidden } with .wrap managing its own scroll (one scrollbar, not two), a prefers-reduced-motion escape hatch, and clipboard exports that always also console.log the payload as a fallback.
🏃 Running It Locally
Requirements: Node 22+, Next.js 16 (Turbopack), React 19, Tailwind v4, TypeScript.
Set NEXT_PUBLIC_SITE_URL in production to https://notionarena.vercel.app so registry manifests emit absolute URLs for the right host. Without it, URLs are derived from the request's forwarded host, falling back to https://notionarena.vercel.app (or http://localhost:3000 in local dev).
📁 Project Layout
📦 The Registry (shadcn-compatible)
mode: "plan" requiring no token is deliberate: review the request sequence before authorising any write to your workspace.
⚠️ Two Things Worth Knowing
A widget cannot read or write your Notion data. Notion's HTML block sandbox has no network access and no bridge to its parent page. Widgets may keep user-entered personal state in this browser, but that state is not Notion data and is not shared. If a workflow needs workspace records, collaboration, permissions, or an audit trail, use a native database or recipe.
Relations force a two-pass install. Since Notion split databases from data sources, a relation property targets a data_source_id that does not exist until the target database has been created and read back. planInstall() therefore emits: create databases with base properties → read back each data source id → patch in relations → patch in rollups → patch in formulas → views → seed rows → pages → block bodies in chunks of 100.
Recipes also declare what they cannot do. Four real API gaps (no button block type, no automation endpoint, no recurring-template endpoint, no synced-block duplicates) appear as manual[] steps, each citing the limitation. A manual step whose reason is "it's easier by hand" is rejected.
🤝 Contributing
We welcome contributions! Whether it's a new widget, a native recipe, a bug fix, documentation, or an idea — here's how to contribute.
Quick Start for Contributors
- Open an Issue — Discuss your idea first. Check for duplicates. Get maintainer feedback.
- Fork & Clone — Create your branch:
git checkout -b feat/my-widget - Develop — Follow the widget contract (see checklist below)
- Test — Run all checks locally
- Pull Request — Clear title, link issue, screenshots/GIFs, update CHANGELOG
- Review — Maintainer review, CI checks, widget contract audit
- Merge — Auto-deploy to Vercel, MCP catalog regenerates, available immediately
Widget Authoring Checklist
Every widget must pass all checks before merge — see scripts/check-widgets.mjs.
Adding a New Widget
- Create
public/widgets/my-widget.html(single HTML file, self-contained) - Add entry to
lib/catalog.tswith all required fields: - Run
npm run check:widgetsandnpm run typecheck - Test in Notion (embed + HTML block)
- Submit PR
Adding a Native Recipe
- Create recipe in
lib/recipes/my-recipe.tsexportingplanInstall()and schema - Add entry to
lib/catalog.tswithkind: "native"andrecipe: "my-recipe" - Run
npm run generate:mcp-catalogandnpm run build:mcp - Test with
mode: "plan"thenmode: "api" - Submit PR
Code Style
- TypeScript strict mode — no
any, explicit types - Tailwind v4 — utility-first, no custom CSS unless necessary
- React 19 — server components by default,
'use client'only when needed - Conventional Commits —
feat:,fix:,docs:,chore:,refactor:
📜 Honesty Policy
- No fabricated install counts, star counts, or customer logos
- Badges are qualitative (
new,popular,staff-pick) and derived from the catalog - Market numbers appear only where cited
- Capability claims are booleans in the catalog (
interactive,offlineSafe,persistsLocally,writesToNotion,needsNetwork) exposed in the registry so an agent can filter on them instead of reading prose
📄 License
MIT License — see LICENSE for details.
Components you download are yours: modify them, host them, ship them in templates you sell. Free components carry no attribution requirement. See /legal/terms.
🔗 Links
- Live Site: https://notionarena.vercel.app
- MCP Package: https://www.npmjs.com/package/notion-arena-mcp
- MCP Registry: https://registry.modelcontextprotocol.io
- Documentation: https://notionarena.vercel.app/docs
- Research:
docs/RESEARCH.md - Agent Setup:
docs/AGENT_SETUP.md - Deploy & Publish:
docs/DEPLOY_AND_PUBLISH.md - Contributing:
CONTRIBUTING.md - Changelog:
CHANGELOG.md
Made with ❤️ by SynergyFlow Labs and contributors
Source: README.md at commit e09613e
Tools
0Version history
1- v0.2.2LatestOct 12, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.
Other Notion integrations
Notion
com.notionOfficial publisher
Notion's hosted MCP server, published by notion.com; credential required; Streamable HTTP.

Notion Large File Upload
Published by GitHub account shoubhiksaha
Local MCP server that uploads large files from disk (up to 5 GB) to Notion and attaches them to pages or blocks.
Notion
com.foreverworks
Local MCP server that lets an assistant search, read and write several Notion workspaces, with pages as Markdown and typed database queries.

Notion MCP by InsightfulPipe
com.insightfulpipe
Hosted Notion MCP server that lets an AI assistant search, read and, with write scopes, create or update Notion pages, databases, data sources and blocks.

Notion Mcp
Published by GitHub account shck-dev
Lets an assistant search a Notion workspace and export, import, append, and create pages as markdown, plus manage comments and images.