mmk-notion-page

Manage Notion pages — invite, revoke, publish, unpublish, config, publish-settings, duplicate, list-published, markdown, transcript, get, update. Triggers on "invite to page", "revoke access", "publish page", "unpublish", "page config", "full width", "publish settings", "duplicate page", "list published", "page markdown", "page transcript", "meeting transcript", "get page", "page by id", "update page", "archive page", "lock page", "erase page".

MMK Notion — Page Commands

Prerequisite: Read ../mmk-shared/SKILL.md for auth, global flags, and error handling. Parent: mmk-notion

Always use -o json when parsing results or composing with other commands.


invite — Invite a user to a page

mmk notion page invite --email <email> --role <role> --block-id <page-id-or-url> -o json

Required: --email, --role, --block-id

Available roles:

RoleAccess LevelWorks With
editorFull access — edit structure, content, manage permissionsPages & Databases
read_and_writeCan edit — modify contentPages & Databases
content_only_editorCan edit content — edit rows but not DB structureDatabases only
comment_onlyCan comment — view and add comments onlyPages & Databases
readerCan view — read-onlyPages & Databases

revoke — Revoke a user's access to a page

mmk notion page revoke --email <email> --block-id <page-id-or-url> -o json

Required: --email, --block-id


publish — Publish a page to the web

mmk notion page publish --block-id <page-id-or-url> -o json

Required: --block-id

Returns public URL on success. Returns 409 if already published (not an error — returns existing public URL).


unpublish — Unpublish a page from the web

mmk notion page unpublish --block-id <page-id-or-url> -o json

Required: --block-id

Returns 409 if already private (not an error).


config — Configure page display settings

mmk notion page config --block-id <page-id> --full-width -o json
mmk notion page config --block-id id1 --block-id id2 --small-text=false -o json

Required: --block-id (string slice — supports multiple pages) At least one of: --full-width (bool), --small-text (bool)


publish-settings — Update publish settings for a published page

mmk notion page publish-settings --block-id <id> --allow-duplicate=false -o json
mmk notion page publish-settings --block-id <id> --seo-title "Title" --slug "my-page" -o json

Required: --block-id At least one of: --allow-duplicate (bool), --search-engine-index (bool), --seo-title, --seo-description, --social-image, --slug


duplicate — Duplicate a page into a parent page

mmk notion page duplicate --source-id <page-id> --parent-id <parent-id> -o json

Required: --source-id, --parent-id


list-published — List all published pages in the workspace

mmk notion page list-published -o json
mmk notion page list-published --type forms -o json

Optional: --typesites (default), forms, or links


markdown — Retrieve a Notion page as cleaned markdown

mmk notion page markdown <page_id> -o json

Required: <page_id> (positional)


get — Get a page by ID

mmk notion page get <page_id> -o json

Required: <page_id> (positional — accepts UUID or full Notion URL)


transcript — Get meeting note transcript, summary, and notes from a page

mmk notion page transcript <page_id> -o json
mmk notion page transcript <page_id> --include summary,notes -o json

Required: <page_id> (positional) Optional: --include — sections to include: summary, notes, transcript (comma-separated, default: all)


update — Update a Notion page (archive, trash, lock, erase content)

mmk notion page update <page_id> --archive -o json
mmk notion page update <page_id> --lock -o json
mmk notion page update <page_id> --erase-content --yes -o json
mmk notion page update <page_id> --data '{"properties": {...}}' -o json

Required: <page_id> (positional)

Optional flags:

FlagDescription
--archiveArchive the page
--unarchiveUnarchive the page
--trashMove page to trash
--restoreRestore page from trash
--lockLock page editing
--unlockUnlock page editing
--erase-contentErase all page content (DESTRUCTIVE, cannot be undone)
--dataRaw JSON request body (Notion API format)
-y, --yesSkip confirmation for destructive operations

WARNING: --erase-content permanently deletes all page content and cannot be undone via API.


update-markdown — Update a page's content using markdown

mmk notion page update-markdown <page_id> --markdown "# New Content" -o json
mmk notion page update-markdown <page_id> --append "## Appended Section" -o json
mmk notion page update-markdown <page_id> --replace "# Replaced Content" --timezone "Asia/Seoul" -o json

Required: <page_id> (positional), one of --markdown, --append, or --replace

Optional flags:

FlagDescription
--markdownFull markdown content (replaces all existing content)
--appendMarkdown to append to existing content
--replaceMarkdown to replace all content (uses replace_content operation)
--timezoneTimezone for date-related content (e.g. Asia/Seoul)

Tips

  1. --block-id accepts both raw UUIDs and full Notion URLs — the CLI extracts the ID automatically
  2. For bulk operations, run commands sequentially and check each result
  3. Page invite errors for non-Notion users indicate the email is not associated with a Notion account — consider using the mmk-notion-onboard skill for automatic email fallback

See Also