Mmk notion page
Claude Code skills for Magic Meal Kits CLI — Notion, Paymint, Threads, YouTube automation
npx -y skills add magic-meal-kits/mmk-skills --skill mmk-notion-pageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Manage Notion pages — invite, revoke, publish, unpublish, config, publish-settings, duplicate, list-published, markdown (get/create/append/replace/update), 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", "create page from markdown", "append markdown", "replace markdown", "update markdown", "page transcript", "meeting transcript", "get page", "page by id", "update page", "archive page", "lock page", "erase page".
SKILL.md
12.2 KB, as published. Nobody here has run it
MMK Notion — Page Commands
Prerequisite: Read
../mmk-shared/SKILL.mdfor 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:
| Role | Access Level | Works With |
|---|---|---|
editor | Full access — edit structure, content, manage permissions | Pages & Databases |
read_and_write | Can edit — modify content | Pages & Databases |
content_only_editor | Can edit content — edit rows but not DB structure | Databases only |
comment_only | Can comment — view and add comments only | Pages & Databases |
reader | Can view — read-only | Pages & 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: --type — sites (default), forms, or links
markdown — Verb-based sub-commands (get, create, append, replace, update)
markdown is a sub-command group. All verbs accept --markdown (inline string), --file (read from file), or stdin.
markdown get — Retrieve a Notion page as markdown
mmk notion page markdown get <page_id> -o json
mmk notion page markdown get <page_id> --include-transcript -o json
Required: <page_id> (positional)
Optional: --include-transcript — include meeting note transcripts
markdown create — Create a new Notion page from markdown
mmk notion page markdown create --parent <page_id> --title "Sprint planning" --file ./plan.md -o json
mmk notion page markdown create --parent <db_id> --title "Task X" --markdown "..." --set Status=InProgress --set Priority=High -o json
cat notes.md | mmk notion page markdown create --parent <page_id> --title "Notes" -o json
Required: --parent (page id, database id, or Notion URL)
Optional:
| Flag | Description |
|---|---|
--title | Page title (page parent: optional, derived from first H1; database parent: required) |
--markdown | Inline markdown body |
--file | Read markdown from a file |
--set | Extra database properties: Key=Value (repeatable; database parent only) |
--icon-emoji | Page icon (emoji) |
--cover-url | Page cover image (https URL) |
For a database parent, --title becomes the title-property value and --set Key=Value populates additional schema properties.
markdown append — Append markdown to an existing Notion page
mmk notion page markdown append <page_id> --markdown "## Notes" -o json
echo "## Notes" | mmk notion page markdown append <page_id> -o json
mmk notion page markdown append <page_id> --file ./notes.md --after "start text...end text" -o json
Required: <page_id> (positional), one of --markdown, --file, or piped stdin
Optional:
| Flag | Description |
|---|---|
--after | Ellipsis selector 'start text...end text' — insert after this location (omit to append at end) |
--file | Read markdown from a file |
markdown replace — Overwrite an existing Notion page with new markdown
mmk notion page markdown replace <page_id> --markdown "# Fresh start" -o json
mmk notion page markdown replace <page_id> --file ./new.md --yes -o json
Required: <page_id> (positional), one of --markdown, --file, or piped stdin
Optional:
| Flag | Description |
|---|---|
--file | Read markdown from a file |
--allow-deleting-content | Permit removal of child pages/databases |
-y, --yes | Skip the destructive-overwrite confirmation prompt |
DESTRUCTIVE — replaces entire page content. Prompts for confirmation when running interactively (pass --yes or pipe stdin to skip).
markdown update — Edit a Notion page via search-and-replace
mmk notion page markdown update <page_id> --from "Draft" --to "Final" -o json
mmk notion page markdown update <page_id> --from "TODO" --to "DONE" --from "Draft" --to "Final" -o json
mmk notion page markdown update <page_id> --data '[{"old_str":"x","new_str":"y","replace_all_matches":true}]' -o json
Required: <page_id> (positional), one of --from/--to pairs or --data
Optional:
| Flag | Description |
|---|---|
--from | Old text to find (paired with --to; repeatable) |
--to | New text to substitute (paired with --from; repeatable) |
--all | Set replace_all_matches=true on every operation |
--allow-deleting-content | Permit removal of child pages/databases |
--data | Raw JSON array of {old_str, new_str, replace_all_matches} for power users |
Matching is case-sensitive and whitespace-sensitive. Each old_str must match exactly one location unless --all is set.
Optional:
| Flag | Description |
|---|---|
--markdown | Inline markdown to append |
--file | Read markdown from a file |
--after | Ellipsis selector 'start text...end text' — insert after this anchor (omit to append at end) |
markdown replace — Overwrite an existing Notion page with new markdown
mmk notion page markdown replace <page_id> --markdown "# Fresh start" -o json
mmk notion page markdown replace <page_id> --file ./new.md --yes -o json
Required: <page_id> (positional)
Optional:
| Flag | Description |
|---|---|
--markdown | Inline markdown body |
--file | Read markdown from a file |
-y, --yes | Skip the destructive-overwrite confirmation prompt |
--allow-deleting-content | Permit removal of child pages/databases |
DESTRUCTIVE — replaces all page content. Prompts for confirmation when run interactively (use --yes or pipe stdin to suppress).
markdown update — Edit a page in place via search-and-replace
mmk notion page markdown update <page_id> --from "Draft" --to "Final" -o json
mmk notion page markdown update <page_id> --from "TODO" --to "DONE" --from "Draft" --to "Final" -o json
mmk notion page markdown update <page_id> --data '[{"old_str":"x","new_str":"y","replace_all_matches":true}]' -o json
Required: <page_id> (positional), --from + --to (paired), or --data
Optional:
| Flag | Description |
|---|---|
--from | Old text to find (repeatable, paired with --to) |
--to | New text to substitute (repeatable, paired with --from) |
--all | Set replace_all_matches=true on every operation |
--data | Raw JSON array of {old_str, new_str, replace_all_matches} |
--allow-deleting-content | Permit removal of child pages/databases |
Matching is case-sensitive and whitespace-sensitive.
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:
| Flag | Description |
|---|---|
--archive | Archive the page |
--unarchive | Unarchive the page |
--trash | Move page to trash |
--restore | Restore page from trash |
--lock | Lock page editing |
--unlock | Unlock page editing |
--erase-content | Erase all page content (DESTRUCTIVE, cannot be undone) |
--data | Raw JSON request body (Notion API format) |
-y, --yes | Skip confirmation for destructive operations |
WARNING: --erase-content permanently deletes all page content and cannot be undone via API.
update-markdown — [DEPRECATED] Update a page's content using markdown
Deprecated: Use the verb-based
markdownsub-commands instead:
--markdown/--replace→mmk notion page markdown replace <page_id>--append→mmk notion page markdown append <page_id>
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:
| Flag | Description |
|---|---|
--markdown | Full markdown content (replaces all existing content) |
--append | Markdown to append to existing content |
--replace | Markdown to replace all content (uses replace_content operation) |
--timezone | Timezone for date-related content (e.g. Asia/Seoul) |
Tips
--block-idaccepts both raw UUIDs and full Notion URLs — the CLI extracts the ID automatically- For bulk operations, run commands sequentially and check each result
- Page invite errors for non-Notion users indicate the email is not associated with a Notion account — consider using the
mmk-notion-onboardskill for automatic email fallback
See Also
- mmk-shared — Auth, global flags, error handling
- mmk-notion — All Notion commands overview
- mmk-notion-workspace — Workspace invite and remove
- mmk-notion-people — List members, guest page access