--- name: notion description: How to work with Notion via MCP. Use when the user wants to read, search, create, or update Notion pages, databases, or workspace content. --- ## Finding and reading Search by name or topic: `notion-search` → `notion-fetch` Tasks / filtered queries: `notion-search` → `notion-query-database-view` or `notion-query-data-sources` With Notion AI, `notion-search` also covers connected Slack / Drive / Jira ## Creating content New page: ask where to save if unspecified, then `notion-create-pages` Database entry: `notion-fetch` the DB first to get exact property names → `notion-create-pages` New database: `notion-create-database` → `notion-create-view` for board/calendar/timeline ## Updating content Property change: `notion-search` → `notion-update-page` Targeted edit: `notion-fetch` → `notion-update-page` with `update_content` Full rewrite: `notion-update-page` with `replace_content` — confirm first Comment: `notion-create-comment`; read existing ones with `notion-get-comments` DB schema change: `notion-update-data-source` ## Organizing Move page: `notion-search` both ends → `notion-move-pages` Duplicate: `notion-duplicate-page` Add view: `notion-create-view`; edit view: `notion-update-view` ## Summarizing Status report: `notion-search` → `notion-query-data-sources` → aggregate and present Overdue tasks: query task DB with past due date + status not Done By assignee: query task DB, group by person property ## People Workspace members: `notion-get-users`; teamspaces: `notion-get-teams` ## Best Practices - Search before fetch — semantic search usually resolves by name in one call - Fetch DB schema before inserting — property names must match exactly - Prefer `update_content` over `replace_content` to avoid overwriting others' work - Ask where to save — pages without a parent go to private workspace - Confirm before moving pages, bulk edits, or full rewrites - Search rate limit is 30 req/min — avoid tight loops