Notion Mastery
Create, design, and automate in Notion using MCP tools and the REST API. Build professional-looking pages with proper visual design patterns.
Page Design Principles
For complete design patterns and page templates, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/page-design-patterns.md.
Making Pages Look Professional
Notion pages look best when they follow these principles:
- Lead with a callout — Use a callout block at the top with an emoji icon and brief description. Sets the tone and provides immediate context.
- Use toggle headings —
## Heading {toggle="true"} keeps pages scannable. Users expand sections they care about.
- Columns for side-by-side content — Two or three columns using
<columns> for dashboards, comparison views, or separating related content.
- Non-obtrusive TOC — Place
<table_of_contents/> inside a toggle or callout, not at the very top. Or place it in a column beside content.
- Callouts for emphasis — Color-coded callouts for tips, warnings, notes, prerequisites. Use sparingly.
- Dividers between sections —
--- creates visual breathing room between major sections.
- Alternating block types — Mix headings, text, callouts, tables, and images. Avoid walls of text.
- Consistent color scheme — Pick 2-3 colors and use them throughout. Blue for info, yellow for warnings, green for success.
Layout Patterns
Hero pattern — Callout with icon + brief intro, then divider, then content:
::: callout {icon="🚀" color="blue_bg"}
**Project Dashboard** — Track progress, milestones, and blockers at a glance.
:::
---
Two-column dashboard — Key metrics on left, action items on right:
<columns>
<column>
## 📊 Metrics {toggle="true"}
Content...
</column>
<column>
## ✅ Actions {toggle="true"}
Content...
</column>
</columns>
Toggle sections — Clean, expandable page:
## 📋 Overview {toggle="true"}
Content here...
## 🎯 Goals {toggle="true"}
Content here...
## 📝 Notes {toggle="true"}
Content here...
Notion-Flavored Markdown
For the complete block catalog and syntax, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/notion-markdown-spec.md and ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/block-catalog.md.
Notion uses a custom Markdown dialect for page content. Key syntax:
Block Colors
Any block accepts {color="Color"} at the end of its first line:
- Text colors:
gray, brown, orange, yellow, green, blue, purple, pink, red
- Background colors:
gray_bg, brown_bg, orange_bg, yellow_bg, green_bg, blue_bg, purple_bg, pink_bg, red_bg
Key Block Types
- Callout:
::: callout {icon="💡" color="yellow_bg"}\nContent\n:::
- Columns:
<columns><column>Left</column><column>Right</column></columns>
- Toggle:
<details><summary>Label</summary>\n\tContent\n</details>
- Toggle heading:
## Heading {toggle="true"}
- Table:
<table header-row="true"><tr><td>A</td><td>B</td></tr></table>
- Table of contents:
<table_of_contents/>
- Synced block:
<synced_block>\n\tContent\n</synced_block>
- Code block:
```language\nCode\n```
- Equation:
$$\nLaTeX\n$$
- Image:

- Divider:
---
- Meeting notes:
<meeting-notes>\n\tTitle\n\t<notes>\n\t\tContent\n\t</notes>\n</meeting-notes>
Rich Text Formatting
- Bold:
**text**, Italic: *text*, Strikethrough: ~~text~~
- Underline:
<span underline="true">text</span>
- Color:
<span color="blue">text</span> or <span color="red_bg">text</span>
- Inline code:
`code`, Inline math: $equation$
- Link:
[text](url), Mention: <mention-page url="...">Title</mention-page>
Databases
For complete database reference, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/database-mastery.md.
Core Concepts
- Properties — Columns defining data schema: Title, Text, Number, Select, Multi-select, Date, Person, Files, Checkbox, URL, Email, Phone, Formula, Relation, Rollup, Created time, Last edited time, Created by, Last edited by, Status, AI autofill
- Views — Different ways to visualize the same data: Table, Board, Calendar, Timeline, Gallery, List
- Filters — Narrow visible rows by property conditions
- Sorts — Order rows by property values
- Templates — Pre-built page content for new database entries
- Relations — Link entries across databases (one-to-many, many-to-many)
- Rollups — Aggregate related data (count, sum, average, date range, etc.)
- Linked databases — Show a filtered view of another database on any page
Database via MCP
Use notion-create-database to create databases. Use notion-fetch to read schema. Use notion-update-data-source to modify schema.
Notion Formulas
For the complete formula reference, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/formula-language.md.
Notion formulas use a functional syntax (not VB.NET, not Excel):
// Days until deadline
dateBetween(prop("Due Date"), now(), "days")
// Status emoji
if(prop("Status") == "Done", "✅",
if(prop("Status") == "In Progress", "🔄", "⏳"))
// Progress percentage
round(prop("Completed Tasks") / prop("Total Tasks") * 100)
Key Formula Functions
- Logic:
if(), and(), or(), not(), empty()
- Math:
add(), subtract(), multiply(), divide(), mod(), pow(), round(), ceil(), floor(), abs(), min(), max()
- Text:
concat(), join(), slice(), length(), contains(), replace(), replaceAll(), test(), upper(), lower(), repeat(), padStart(), padEnd(), trim()
- Date:
now(), today(), dateAdd(), dateSubtract(), dateBetween(), formatDate(), minute(), hour(), day(), date(), month(), year()
- Lists:
at(), first(), last(), slice(), concat(), sort(), reverse(), map(), filter(), every(), some(), find(), findIndex(), flat(), length(), includes()
AI Features
For complete AI feature reference, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/ai-features.md.
- AI Autofill property — Database property that uses AI to fill values based on page content
- AI blocks — Inline AI-generated content within pages
- Meeting notes —
<meeting-notes> blocks with AI summaries and transcripts
- AI search — Semantic search across workspace and connected sources via MCP search tool
MCP Tools
For detailed MCP usage patterns, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/mcp-tools-guide.md.
Available Notion MCP tools:
notion-search — Search pages, databases, users across workspace
notion-fetch — Read full page content, database schema, data source details
notion-create-pages — Create one or more pages with content and properties
notion-update-page — Update properties, replace/insert content, apply templates, verify pages
notion-move-pages — Move pages or databases to new parents
notion-duplicate-page — Duplicate existing pages
notion-create-database — Create new databases with schema
notion-update-data-source — Modify database schema and properties
notion-create-comment — Add comments to pages or specific blocks
notion-get-comments — Read comments and discussions
notion-get-teams — List teamspaces
notion-get-users — List workspace members
MCP Workflow Pattern
- Search to find existing content:
notion-search
- Fetch to read full details:
notion-fetch
- Create or update to make changes:
notion-create-pages or notion-update-page
- Verify the result by fetching again
REST API
For API endpoints and patterns, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/api-reference.md.
The Notion API (api.notion.com) is useful when MCP tools don't cover a scenario:
- Bulk operations — Creating hundreds of pages in batches
- Webhooks — Listening for changes
- Programmatic database queries — Complex filtering with the API's filter object
- Block-level manipulation — Appending, moving, and deleting individual blocks
- User management — Bot user info, workspace member details
Authentication: Bearer token (integration token or OAuth). Base URL: https://api.notion.com/v1/.
Troubleshooting
For common errors and diagnostic steps, read ${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/troubleshooting.md.
Covers MCP tool errors (page not found, rate limits, invalid content), page design issues (toggle content not nesting, callouts not rendering), database problems (formula errors, relation issues), API-specific issues, and performance diagnostics.
Reference Files
| File |
Path |
Content |
| Notion Markdown Spec |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/notion-markdown-spec.md |
Complete Notion-flavored Markdown syntax reference |
| Page Design Patterns |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/page-design-patterns.md |
Visual design principles, layouts, color schemes, professional page patterns |
| Block Catalog |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/block-catalog.md |
Every block type with syntax, use cases, and styling tips |
| Database Mastery |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/database-mastery.md |
Views, relations, rollups, linked DBs, templates, automations |
| Formula Language |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/formula-language.md |
Complete Notion formula syntax, functions, and patterns |
| MCP Tools Guide |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/mcp-tools-guide.md |
How to use each Notion MCP tool effectively |
| API Reference |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/api-reference.md |
REST API endpoints, authentication, SDK patterns |
| AI Features |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/ai-features.md |
AI blocks, meeting notes, autofill, AI search, connected sources |
| Troubleshooting |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/troubleshooting.md |
Common errors, diagnostic steps, and performance issues |
Example Files
| File |
Path |
Content |
| Page Templates |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/page-templates.md |
Complete page templates: dashboard, wiki, meeting notes, project tracker |
| Database Schemas |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/database-schemas.md |
Production database designs for common use cases |
| Design Showcase |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/design-showcase.md |
Beautiful page layouts with full Notion Markdown source |
| API Automation |
${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/api-automation.md |
TypeScript examples for common automation patterns |
1---2name: notion-mastery3description: This skill should be used when the user asks about Notion — creating pages, designing layouts, building databases, writing formulas, using AI features, or automating with the Notion API. Covers page design and styling (columns, callouts, toggle headings, wrapped images, non-obtrusive TOC), every block type (tables, synced blocks, code, equations, embeds, mermaid diagrams), database architecture (views, relations, rollups, filters, templates, linked databases), Notion formula language, AI blocks and meeting notes, MCP tool usage, and REST API automation. Example user requests: "create a beautiful project dashboard in Notion", "style this Notion page with columns and callouts", "build a Notion database for tracking tasks", "write a Notion formula for days until deadline", "search my Notion workspace", "make this page look professional".4---56# Notion Mastery78Create, design, and automate in Notion using MCP tools and the REST API. Build professional-looking pages with proper visual design patterns.910## Page Design Principles1112For complete design patterns and page templates, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/page-design-patterns.md`.1314### Making Pages Look Professional1516Notion pages look best when they follow these principles:1718- **Lead with a callout** — Use a callout block at the top with an emoji icon and brief description. Sets the tone and provides immediate context.19- **Use toggle headings** — `## Heading {toggle="true"}` keeps pages scannable. Users expand sections they care about.20- **Columns for side-by-side content** — Two or three columns using `<columns>` for dashboards, comparison views, or separating related content.21- **Non-obtrusive TOC** — Place `<table_of_contents/>` inside a toggle or callout, not at the very top. Or place it in a column beside content.22- **Callouts for emphasis** — Color-coded callouts for tips, warnings, notes, prerequisites. Use sparingly.23- **Dividers between sections** — `---` creates visual breathing room between major sections.24- **Alternating block types** — Mix headings, text, callouts, tables, and images. Avoid walls of text.25- **Consistent color scheme** — Pick 2-3 colors and use them throughout. Blue for info, yellow for warnings, green for success.2627### Layout Patterns2829**Hero pattern** — Callout with icon + brief intro, then divider, then content:30```31::: callout {icon="🚀" color="blue_bg"}32**Project Dashboard** — Track progress, milestones, and blockers at a glance.33:::34---35```3637**Two-column dashboard** — Key metrics on left, action items on right:38```39<columns>40 <column>41 ## 📊 Metrics {toggle="true"}42 Content...43 </column>44 <column>45 ## ✅ Actions {toggle="true"}46 Content...47 </column>48</columns>49```5051**Toggle sections** — Clean, expandable page:52```53## 📋 Overview {toggle="true"}54 Content here...55## 🎯 Goals {toggle="true"}56 Content here...57## 📝 Notes {toggle="true"}58 Content here...59```6061## Notion-Flavored Markdown6263For the complete block catalog and syntax, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/notion-markdown-spec.md` and `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/block-catalog.md`.6465Notion uses a custom Markdown dialect for page content. Key syntax:6667### Block Colors6869Any block accepts `{color="Color"}` at the end of its first line:70- Text colors: `gray`, `brown`, `orange`, `yellow`, `green`, `blue`, `purple`, `pink`, `red`71- Background colors: `gray_bg`, `brown_bg`, `orange_bg`, `yellow_bg`, `green_bg`, `blue_bg`, `purple_bg`, `pink_bg`, `red_bg`7273### Key Block Types7475- **Callout**: `::: callout {icon="💡" color="yellow_bg"}\nContent\n:::`76- **Columns**: `<columns><column>Left</column><column>Right</column></columns>`77- **Toggle**: `<details><summary>Label</summary>\n\tContent\n</details>`78- **Toggle heading**: `## Heading {toggle="true"}`79- **Table**: `<table header-row="true"><tr><td>A</td><td>B</td></tr></table>`80- **Table of contents**: `<table_of_contents/>`81- **Synced block**: `<synced_block>\n\tContent\n</synced_block>`82- **Code block**: ` ```language\nCode\n``` `83- **Equation**: `$$\nLaTeX\n$$`84- **Image**: ``85- **Divider**: `---`86- **Meeting notes**: `<meeting-notes>\n\tTitle\n\t<notes>\n\t\tContent\n\t</notes>\n</meeting-notes>`8788### Rich Text Formatting8990- Bold: `**text**`, Italic: `*text*`, Strikethrough: `~~text~~`91- Underline: `<span underline="true">text</span>`92- Color: `<span color="blue">text</span>` or `<span color="red_bg">text</span>`93- Inline code: `` `code` ``, Inline math: `$equation$`94- Link: `[text](url)`, Mention: `<mention-page url="...">Title</mention-page>`9596## Databases9798For complete database reference, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/database-mastery.md`.99100### Core Concepts101102- **Properties** — Columns defining data schema: Title, Text, Number, Select, Multi-select, Date, Person, Files, Checkbox, URL, Email, Phone, Formula, Relation, Rollup, Created time, Last edited time, Created by, Last edited by, Status, AI autofill103- **Views** — Different ways to visualize the same data: Table, Board, Calendar, Timeline, Gallery, List104- **Filters** — Narrow visible rows by property conditions105- **Sorts** — Order rows by property values106- **Templates** — Pre-built page content for new database entries107- **Relations** — Link entries across databases (one-to-many, many-to-many)108- **Rollups** — Aggregate related data (count, sum, average, date range, etc.)109- **Linked databases** — Show a filtered view of another database on any page110111### Database via MCP112113Use `notion-create-database` to create databases. Use `notion-fetch` to read schema. Use `notion-update-data-source` to modify schema.114115## Notion Formulas116117For the complete formula reference, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/formula-language.md`.118119Notion formulas use a functional syntax (not VB.NET, not Excel):120121```122// Days until deadline123dateBetween(prop("Due Date"), now(), "days")124125// Status emoji126if(prop("Status") == "Done", "✅",127 if(prop("Status") == "In Progress", "🔄", "⏳"))128129// Progress percentage130round(prop("Completed Tasks") / prop("Total Tasks") * 100)131```132133### Key Formula Functions134135- **Logic**: `if()`, `and()`, `or()`, `not()`, `empty()`136- **Math**: `add()`, `subtract()`, `multiply()`, `divide()`, `mod()`, `pow()`, `round()`, `ceil()`, `floor()`, `abs()`, `min()`, `max()`137- **Text**: `concat()`, `join()`, `slice()`, `length()`, `contains()`, `replace()`, `replaceAll()`, `test()`, `upper()`, `lower()`, `repeat()`, `padStart()`, `padEnd()`, `trim()`138- **Date**: `now()`, `today()`, `dateAdd()`, `dateSubtract()`, `dateBetween()`, `formatDate()`, `minute()`, `hour()`, `day()`, `date()`, `month()`, `year()`139- **Lists**: `at()`, `first()`, `last()`, `slice()`, `concat()`, `sort()`, `reverse()`, `map()`, `filter()`, `every()`, `some()`, `find()`, `findIndex()`, `flat()`, `length()`, `includes()`140141## AI Features142143For complete AI feature reference, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/ai-features.md`.144145- **AI Autofill property** — Database property that uses AI to fill values based on page content146- **AI blocks** — Inline AI-generated content within pages147- **Meeting notes** — `<meeting-notes>` blocks with AI summaries and transcripts148- **AI search** — Semantic search across workspace and connected sources via MCP search tool149150## MCP Tools151152For detailed MCP usage patterns, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/mcp-tools-guide.md`.153154Available Notion MCP tools:155- `notion-search` — Search pages, databases, users across workspace156- `notion-fetch` — Read full page content, database schema, data source details157- `notion-create-pages` — Create one or more pages with content and properties158- `notion-update-page` — Update properties, replace/insert content, apply templates, verify pages159- `notion-move-pages` — Move pages or databases to new parents160- `notion-duplicate-page` — Duplicate existing pages161- `notion-create-database` — Create new databases with schema162- `notion-update-data-source` — Modify database schema and properties163- `notion-create-comment` — Add comments to pages or specific blocks164- `notion-get-comments` — Read comments and discussions165- `notion-get-teams` — List teamspaces166- `notion-get-users` — List workspace members167168### MCP Workflow Pattern1691701. **Search** to find existing content: `notion-search`1712. **Fetch** to read full details: `notion-fetch`1723. **Create or update** to make changes: `notion-create-pages` or `notion-update-page`1734. **Verify** the result by fetching again174175## REST API176177For API endpoints and patterns, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/api-reference.md`.178179The Notion API (api.notion.com) is useful when MCP tools don't cover a scenario:180- **Bulk operations** — Creating hundreds of pages in batches181- **Webhooks** — Listening for changes182- **Programmatic database queries** — Complex filtering with the API's filter object183- **Block-level manipulation** — Appending, moving, and deleting individual blocks184- **User management** — Bot user info, workspace member details185186Authentication: Bearer token (integration token or OAuth). Base URL: `https://api.notion.com/v1/`.187188## Troubleshooting189190For common errors and diagnostic steps, read `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/troubleshooting.md`.191192Covers MCP tool errors (page not found, rate limits, invalid content), page design issues (toggle content not nesting, callouts not rendering), database problems (formula errors, relation issues), API-specific issues, and performance diagnostics.193194## Reference Files195196| File | Path | Content |197|------|------|---------|198| Notion Markdown Spec | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/notion-markdown-spec.md` | Complete Notion-flavored Markdown syntax reference |199| Page Design Patterns | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/page-design-patterns.md` | Visual design principles, layouts, color schemes, professional page patterns |200| Block Catalog | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/block-catalog.md` | Every block type with syntax, use cases, and styling tips |201| Database Mastery | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/database-mastery.md` | Views, relations, rollups, linked DBs, templates, automations |202| Formula Language | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/formula-language.md` | Complete Notion formula syntax, functions, and patterns |203| MCP Tools Guide | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/mcp-tools-guide.md` | How to use each Notion MCP tool effectively |204| API Reference | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/api-reference.md` | REST API endpoints, authentication, SDK patterns |205| AI Features | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/ai-features.md` | AI blocks, meeting notes, autofill, AI search, connected sources |206| Troubleshooting | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/references/troubleshooting.md` | Common errors, diagnostic steps, and performance issues |207208## Example Files209210| File | Path | Content |211|------|------|---------|212| Page Templates | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/page-templates.md` | Complete page templates: dashboard, wiki, meeting notes, project tracker |213| Database Schemas | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/database-schemas.md` | Production database designs for common use cases |214| Design Showcase | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/design-showcase.md` | Beautiful page layouts with full Notion Markdown source |215| API Automation | `${CLAUDE_PLUGIN_ROOT}/skills/notion-mastery/examples/api-automation.md` | TypeScript examples for common automation patterns |