write
Create or update Notion pages using Markdown with YAML frontmatter. Supports single or batch operations, appending/prepending content, and auto-matching database properties.
Instructions
Create or update Notion pages from Markdown with YAML frontmatter.
Mode (default "auto"): if frontmatter has "id" → update, otherwise → create.
Batch mode
Separate multiple pages with a line containing only "===" to create/update them in one call.
Frontmatter fields
Field | Create | Update | Description |
id | - | required | Page ID to update |
title | recommended | optional | Page title |
parent | required* | ignored | Parent page name or ID |
database | required* | ignored | Database name or ID (*either parent or database) |
icon | optional | optional | Emoji (e.g. 📋) or image URL |
cover | optional | optional | Cover image URL |
properties | optional | optional | DB properties (see below) |
Properties are auto-matched to the database schema. Use the exact property name as key. Read-only fields from read output (url, created, last_edited, formula, etc.) are safely ignored.
Examples
Create a page under a parent page:
---
title: Meeting Notes
parent: "Project Alpha"
icon: "📝"
---
## Agenda
- Review progressCreate a database entry:
---
title: Fix login bug
database: "Task Board"
properties:
Status: In Progress
Tags:
- backend
- urgent
Due Date: "2026-03-01"
---
## Description
Login fails when password contains special chars.Update an existing page (edit output from read):
---
id: abc123-def456
title: Updated Title
properties:
Status: Done
---
## New content
Body replaces all existing blocks.Append to an existing page (add content without rewriting):
Use position: "append" to add content to the end, or "prepend" to add to the beginning. Only the new content needs to be provided — existing content is preserved.
---
id: abc123-def456
---
## New section added at the endBatch create (multiple pages in one call):
---
title: Task 1
database: "Task Board"
properties:
Status: Todo
---
Task 1 details
===
---
title: Task 2
database: "Task Board"
properties:
Status: Todo
---
Task 2 detailsInput Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "auto" (default): create if no id, update if id present. "create": force create. "update": force update (requires id). | auto |
| markdown | Yes | Markdown with YAML frontmatter. Separate multiple pages with '===' on its own line. See tool description for format. | |
| position | No | "replace" (default): replace all content. "append": add to end (efficient, no need to send existing content). "prepend": add to beginning. Only affects updates. | replace |