The Notion MCP connector routes your AI agent's tool calls to Notion's own MCP server through Scalekit. Each user signs in to Notion once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 70 tools.
- Tools
- 70
- What they doRead · write · destructive
- 14 · 51 · 514 read51 write5 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
What you can do
- Search and fetch content: search the workspace and connected sources, and retrieve pages, databases, and data sources
- Create and edit pages: create pages with Markdown content, update properties and content, duplicate, and move pages
- Query databases: query databases with SQL or saved views, including the user’s meeting notes
- Manage databases and views: create databases, update their schema, and create or update filtered, sorted views
- Comment on pages: add comments to pages and discussion threads, and read existing discussions
- Browse the workspace: list recent, favorite, private, and shared pages, plus users and teamspaces
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Notion MCP connection
In AgentKit > Connections, create a Notion MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Notion, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'notionmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Notion MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'notionmcp_notion-get-teams',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "notionmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Notion MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="notionmcp_notion-get-teams",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolnotionmcp_notion-download-attachmentDownload the contents of a small UTF-8 text attachment created by the Notion create-attachment tool.Read-onlyNotion Download Attachment
Download the contents of a small UTF-8 text attachment created by the Notion create-attachment tool. Limited to 200 KiB and text formats such as HTML, Markdown, plain text, CSV, JSON, XML, CSS, YAML, TSV, calendar, GPX, or SVG.
Inputs
file_upload_idstringrequired- The FileUpload ID returned by the create-attachment tool.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-fetchRetrieve details about a Notion page, database, or data source by URL or ID.Read-onlyNotion Fetch
Retrieve details about a Notion page, database, or data source by URL or ID.
Inputs
idstringrequired- The ID or URL of the Notion page, database, or data source to fetch. Supports notion.so URLs, Notion Sites URLs (*.notion.site), raw UUIDs, and data source URLs (collection://...). Pass "memory" to fetch the connected user's About page and memory database in this workspace without creating them. Pass a notion://docs/* URI to read that documentation resource. Also accepts an explicit saved view URL (view://...) from a database response. If a database block ID returns a validation error, use the collection:// URL from that error. Example: <example>notion://docs/notion-flavored-markdown-spec</example>.
include_discussionsboolean- Whether to include discussion/comment indicators in the page output. When true, adds a <page-discussions> summary with discussion count, preview snippets, and discussion:// URLs. Use with the get_comments tool to retrieve full discussion content. Defaults to false.
include_file_urlsboolean- Whether to return signed download URLs for uploaded files. Defaults to false. When false, page Markdown cites uploaded files by stable notion-file-block:// references and the response has no references map; call get_file_download_urls with the references when you need those files' contents. When true, the response's references map gives the signed URL for each reference.
include_transcriptboolean- Whether to include meeting note transcripts. Defaults to false. When true, full transcripts are included; when false, a placeholder with the meeting note URL is shown instead.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-get-async-taskRetrieve the current status of an async task started by another tool (for example, create-pages or update-page called with allow_async: true).Read-onlyNotion Get Async Task
Retrieve the current status of an async task started by another tool (for example, create-pages or update-page called with allow_async: true). Status is one of queued, running, retrying, succeeded, or failed.
Inputs
task_idstringrequired- The ID of the async task to retrieve, as returned in the async_task response of the tool that started it.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-get-commentsRetrieve comments and discussion threads from a Notion page.Read-onlyNotion Get Comments
Retrieve comments and discussion threads from a Notion page.
Inputs
page_idstringrequired- The page ID, with or without dashes, or a Notion page URL.
discussion_idstring- Fetch a specific discussion by ID or discussion URL (e.g., discussion://pageId/blockId/discussionId).
include_all_blocksboolean- Include discussions on child blocks, not just page-level discussions. Defaults to false.
include_resolvedboolean- Include resolved discussions in the response. Defaults to false.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-get-teamsRetrieve a list of teams (teamspaces) in the current workspace.Read-onlyNotion Get Teams
Retrieve a list of teams (teamspaces) in the current workspace.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
querystring- Optional search query to filter teams by name (case-insensitive).
telemetryobject- No description.
notionmcp_notion-get-usersRetrieve a list of users in the current Notion workspace.Read-onlyNotion Get Users
Retrieve a list of users in the current Notion workspace.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
page_sizeinteger- Number of users to return per page (1â100; default 100).
querystring- Optional search query to filter users by name or email (case-insensitive).
start_cursorstring- Cursor for pagination. Use the next_cursor value from the previous response to get the next page.
telemetryobject- No description.
user_idstring- Return only the user matching this ID. Pass "self" to fetch the current user.
notionmcp_notion-list-favorite-pagesList the current user's favorite pages and databases in sidebar order.Read-onlyNotion List Favorite Pages
List the current user's favorite pages and databases in sidebar order. Use this when the user refers to a favorite or pinned workspace item.
Inputs
cursorstring- Opaque pagination cursor from the previous response.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
limitnumber- Maximum results to return (1-200).
telemetryobject- No description.
notionmcp_notion-list-private-pagesList the current user's top-level pages and databases in their Private sidebar section.Read-onlyNotion List Private Pages
List the current user's top-level pages and databases in their Private sidebar section. Use this to browse private workspace structure; use search when looking for content by meaning or keyword.
Inputs
cursorstring- Opaque pagination cursor from the previous response.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
limitnumber- Maximum results to return (1-200).
telemetryobject- No description.
notionmcp_notion-list-recent-pagesList pages and databases the current user recently viewed, ranked by recency and visit frequency.Read-onlyNotion List Recent Pages
List pages and databases the current user recently viewed, ranked by recency and visit frequency. Use this to recover likely navigation context when the user refers to something they were recently working on.
Inputs
cursorstring- Opaque pagination cursor from the previous response.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
limitnumber- Maximum results to return (1-200).
telemetryobject- No description.
notionmcp_notion-query-data-sourcesQuery Notion databases using SQL or by specifying a view.Read-onlyNotion Query Data Sources
Query Notion databases using SQL or by specifying a view.
Inputs
datastringrequired- Mode parameter reference and examples. Put `mode`, `query`, `data_source_urls`, `data_source_url`, `params`, `limit`, filters (`filter`), sorts (`sort`), and view arguments (`view_url`, `start_cursor`, `page_size`, `is_archived`) inside `data`, never at the tool-argument root. All examples below are complete tool arguments with exactly one outer `data` wrapper. Pass them as shown; do not add another wrapper. SQL mode: - Use single quotes for SQL string values, such as `"Status" = 'Done'`. Use double quotes for table and column names. In SQL, `''` is an empty string. - Prefer `?` placeholders for values. For text values, the `params` array uses JSON strings, so `[""]` passes an empty string and `["__YES__"]` passes a checked checkbox value. Do not add SQL quote marks around a bound value. - Checkbox SQL values: `'__YES__'` means checked; `'__NO__'` means unchecked. Rows mode: Return up to 100 rows with faithful rich-text property values and optional structured filters and sorts. Example: <example>{"data":{"mode":"rows","data_source_url":"collection://f336d0bc-b841-465b-8045-024475c079dd","filter":{"type":"group","operator":"and","filters":[{"type":"property","property":"Status","propertyType":"select","operator":"enum_is","value":{"type":"exact","value":"In Progress"}}]},"limit":20}}</example> Examples: - Simple SQL: <example>{"data":{"data_source_urls":["collection://f336d0bc-b841-465b-8045-024475c079dd"],"query":"SELECT * FROM [collection://f336d0bc-b841-465b-8045-024475c079dd] LIMIT 10"}}</example> - SQL parameters: <example>{"data":{"mode":"sql","data_source_urls":["collection://f336d0bc-b841-465b-8045-024475c079dd"],"query":"SELECT * FROM [collection://f336d0bc-b841-465b-8045-024475c079dd] WHERE Status = ? AND Priority = ?","params":["In Progress","High"]}}</example> - Checkbox query: <example>{"data":{"data_source_urls":["collection://f336d0bc-b841-465b-8045-024475c079dd"],"query":"SELECT * FROM [collection://f336d0bc-b841-465b-8045-024475c079dd] WHERE Completed = ?","params":["__YES__"]}}</example> View mode: Execute a specific database view's query with its filters and sorts. Omit "is_archived" or set it to false for non-archived rows. Set "is_archived": true to apply the view inside the archived partition. When the response has "has_more": true, pass its "next_cursor" as "start_cursor" in a follow-up view-mode request with the same "is_archived" value. Example: <example>{"data":{"mode":"view","view_url":"https://www.notion.so/f336d0bcb841465b8045024475c079dd?v=0123456789abcdef0123456789abcdef","is_archived":false}}</example>
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-query-meeting-notesQuery the current user's Notion meeting notes data source with optional filters.Read-onlyNotion Query Meeting Notes
Query the current user's Notion meeting notes data source with optional filters.
Inputs
filterobject- Meeting note filter reference. Title keyword searching uses a filter on property "title" (for example, string_contains). Returns up to 50 rows of matching meeting notes. Filterable properties: - "title" (text) â meeting title - "attendees" (person) â meeting attendees - "created_time" (date) â when the meeting note was created - "created_by" (person) â who created the meeting note - "last_edited_time" (date) â when the meeting note was last edited - "last_edited_by" (person) â who last edited the meeting note Combinator filters use "filters" (not "operands"): { "operator": "and" | "or", "filters": [ ... ] } Date filtering (recommended default: date_is_within): - Prefer "date_is_within" for relative windows like "past N days/weeks/months". - Relative (common): { type: "relative", value: "the_past_week" | "the_past_month" | "this_week" } - Relative (custom): { type: "relative", value: "custom", direction: "past" | "future", unit: "day" | "week" | "month" | "year", count: <number> } - Exact range: { type: "exact", value: { type: "daterange", start_date: "YYYY-MM-DD", end_date: "YYYY-MM-DD" } } - Single-date operators ("date_is", "date_is_before", "date_is_after", "date_is_on_or_before", "date_is_on_or_after"): - Exact: { type: "exact", value: { type: "date", start_date: "YYYY-MM-DD" } } - Relative shortcuts: today | tomorrow | yesterday | one_week_ago | one_week_from_now | one_month_ago | one_month_from_now Title keyword filtering (OR vs AND): - Use OR ("operator": "or") when unsure or for broad discovery. - Use AND ("operator": "and") when the user is specific and you want to narrow results. - Break multi-word phrases into individual terms and filter on each term separately. Examples: - Past week: <example>{"operator":"and","filters":[{"property":"created_time","filter":{"operator":"date_is_within","value":{"type":"relative","value":"the_past_week"}}}]}</example> - Past 3 days: <example>{"operator":"and","filters":[{"property":"created_time","filter":{"operator":"date_is_within","value":{"type":"relative","value":"custom","direction":"past","unit":"day","count":3}}}]}</example> - Exact date range: <example>{"operator":"and","filters":[{"property":"created_time","filter":{"operator":"date_is_within","value":{"type":"exact","value":{"type":"daterange","start_date":"2025-01-01","end_date":"2025-12-31"}}}}]}</example> - Created after a date: <example>{"operator":"and","filters":[{"property":"created_time","filter":{"operator":"date_is_after","value":{"type":"exact","value":{"type":"date","start_date":"2025-06-01"}}}}]}</example> - Specific attendee: <example>{"operator":"and","filters":[{"property":"attendees","filter":{"operator":"person_contains","value":[{"type":"exact","value":{"table":"notion_user","id":"<user-id>"}}]}}]}</example> - Attendee since a date: <example>{"operator":"and","filters":[{"property":"created_time","filter":{"operator":"date_is_on_or_after","value":{"type":"exact","value":{"type":"date","start_date":"2025-01-01"}}}},{"property":"attendees","filter":{"operator":"person_contains","value":[{"type":"exact","value":{"table":"notion_user","id":"<user-id>"}}]}}]}</example> - Title contains both terms: <example>{"operator":"and","filters":[{"property":"title","filter":{"operator":"string_contains","value":{"type":"exact","value":"design"}}},{"property":"title","filter":{"operator":"string_contains","value":{"type":"exact","value":"review"}}}]}</example> - Title contains either term: <example>{"operator":"or","filters":[{"property":"title","filter":{"operator":"string_contains","value":{"type":"exact","value":"standup"}}},{"property":"title","filter":{"operator":"string_contains","value":{"type":"exact","value":"sync"}}}]}</example>
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-searchSearch pages, databases, and connected sources in the Notion workspace.Read-onlyNotion Search
Search pages, databases, and connected sources in the Notion workspace.
Inputs
querystringrequired- Short, specific keywords for Notion content search. For user search, enter a name or email address. Provide a non-empty query unless intentionally browsing with filters or a non-relevance sort.
data_source_urlstring- Optionally restrict keyword search to a data source URL returned in a <data-source> tag.
filtersobject- Optional exact filters for Notion workspace search. Omit unless required by the request. Keep filter fields nested here; do not send them at the top level. Some filters require Business access.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
max_highlight_lengthinteger- Maximum character length for result highlights (default 200). Set to 0 to omit highlights entirely.
page_sizeinteger- Maximum number of results to return (default 10). Lower values reduce response size.
page_urlstring- Optionally restrict keyword search to a page and its descendants. Accepts a Notion page URL or ID.
query_typestring- Specify type of the query as either "internal" or "user". Always include this input if performing "user" search.one of
internaluser sortstring- Result ordering for Notion workspace search. Omit for the default "relevance" ordering. "last_edited" and "created" require Business access.one of
relevancelast_editedcreated teamspace_idstring- Optionally, provide the ID of a teamspace to restrict search results to. This will perform a search over content within the specified teamspace only. Accepts the teamspace ID (UUIDv4) with or without dashes.
telemetryobject- No description.
notionmcp_notion-search-agentsSearch agents by name or description, or browse the current user's favorite agents and the workspace's newest agents.Read-onlyNotion Search Agents
Search agents by name or description, or browse the current user's favorite agents and the workspace's newest agents.
Inputs
scopestringrequired- Which agents to list: "favorites" for the current user's favorite agents, or "workspace" for agents shared with the workspace.one of
favoritesworkspace cursorstring- Opaque pagination cursor from the previous response.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
limitnumber- Maximum results to return (1-200).
querystring- Search text matched against agent names and descriptions. Queries return one page and cannot use a cursor. When omitted, favorites are returned in sidebar order and workspace agents are returned newest first.
telemetryobject- No description.
notionmcp_notion_calendar_cancel_eventsCancel one or more identified events the user can manage.WriteNotion Calendar Cancel Events
Cancel one or more identified events the user can manage. Cancellation may notify attendees. For an event the user does not organize, use calendar_update_events with updateType: "RSVP" instead.
Inputs
eventsarrayrequired- Events to cancel.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_calendar_create_eventsCreate one or more events on writable calendars.WriteNotion Calendar Create Events
Create one or more events on writable calendars. Use this after the date, time, attendees, and target calendar are known. Creating events may notify attendees.
Inputs
eventsarrayrequired- Events to create.
timeZonestringrequired- Date-times of returned events will be expressed in this time-zone
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_calendar_list_calendar_resourcesList rooms or other calendar resources available for specific times.WriteNotion Calendar List Calendar Resources
List rooms or other calendar resources available for specific times. Resource discovery is scoped to the connected account of the target calendar and only works with Google Workspace accounts that have admin permissions to view Calendar resources.
Inputs
minCapacityintegerrequired- Minimum room capacity (number of people). MUST include the meeting organizer/user themselves in the count. For a 1-on-1, pass 2. For a meeting with N invitees besides the user, pass N+1.
timeSlotsarrayrequired- Specific time slots to check. Returns available resources for each time slot independently.
timeZonestringrequired- Date-times of returned events will be expressed in this time-zone
calendarobject- Calendar of the event the rooms will be attached to. Rooms are scoped to a single account.
ignoreWorkingLocationboolean- If true, do not narrow rooms to the user's working-location building for this day. Set this when the user is explicitly asking about rooms in a different office (e.g. for a visiting team).
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
maxCountinteger- Maximum number of resources to return per time slot (default: 20, max: 40)
telemetryobject- No description.
notionmcp_notion_calendar_list_calendarsList calendars grouped by connected account.WriteNotion Calendar List Calendars
List calendars grouped by connected account. Use this to identify a target or conflict calendar before another Calendar operation.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
onlyAccountEmailsarray- Return only accounts linked to these email addresses. Useful to get calendars from a work account only for example. Do not specify if you are interested in getting the whole picture of someone's agenda across work and personal accounts.
telemetryobject- No description.
notionmcp_notion_calendar_list_contactsFind contacts by name or email across the user's connected Calendar accounts.WriteNotion Calendar List Contacts
Find contacts by name or email across the user's connected Calendar accounts. Use this to resolve attendee identities before another Calendar operation.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
queriesarray- Optional search queries to filter contacts by name or email. Results matching any query are included.
telemetryobject- No description.
notionmcp_notion_calendar_list_coworkers_eventsList detailed events for coworkers in the same organization within a time range.WriteNotion Calendar List Coworkers Events
List detailed events for coworkers in the same organization within a time range. Use this when event titles or context are needed, not only free/busy availability.
Inputs
coworkerEmailsarrayrequired- Emails of relevant coworkers
timeMaxstringrequired- End of the time range, as an ISO 8601 date-time.
timeMinstringrequired- Start of the time range, as an ISO 8601 date-time.
timeZonestringrequired- Date-times of returned events will be expressed in this time-zone
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_calendar_list_eventsList the user's events across connected calendars within a time range.WriteNotion Calendar List Events
List the user's events across connected calendars within a time range. Use this to inspect the user's own schedule or identify events before changing them.
Inputs
timeMaxstringrequired- End of the time range, as an ISO 8601 date-time.
timeMinstringrequired- Start of the time range, as an ISO 8601 date-time.
timeZonestringrequired- Date-times of returned events will be expressed in this time-zone
includeDeclinedInvitesboolean- Whether to include event invites the user has declined
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_calendar_update_eventsUpdate one or more identified events, including timing, attendees, recurrence, resources, or RSVP status.WriteNotion Calendar Update Events
Update one or more identified events, including timing, attendees, recurrence, resources, or RSVP status. Updates require permission and may notify attendees.
Inputs
timeZonestringrequired- Date-times of returned events will be expressed in this time-zone
updatesarrayrequired- Event updates to apply.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_check_mcp_next_stepsWhen to call: Only when a Notion fetch result instructs you to.WriteNotion Check Mcp Next Steps
When to call: Only when a Notion fetch result instructs you to. Finish all Notion tool calls needed for the current request, then call at most once with no arguments. Never call it per fetch or failure, without that instruction, or retry it. Result handling: If no next step is returned or rendering fails, do not retry or mention it. Otherwise, finish the user's task before the follow-up. Follow-up: Add one brief sentence grounded in the user's Notion work this session, followed by the returned destination as a compact, labeled Markdown link. You may present it as an optional Business next step for that type of work, but only claim a benefit when the tool result explicitly provides it. Do not introduce other capabilities or estimate performance or time savings. Give this follow-up once. Never mention limits, eligibility, or frequency logic. Do not give a sales pitch, tell the user to upgrade, criticize their workflow, use a bare URL, or create a link preview.
Inputs
This tool takes no inputs.
notionmcp_notion_create_suggested_editPropose one precise, reviewable change without changing accepted page content.WriteNotion Create Suggested Edit
Propose one precise, reviewable change without changing accepted page content. Copy old_text exactly from fetch, use one suggestion per localized change, and use get_suggested_edit to inspect it before any later resolution. If availability is not already known for this connection, call get_tool_access with {} before using this tool. Reuse the returned access map across tools; check the status and restricted_parameters.
Inputs
new_textstringrequired- Proposed Notion Markdown. With replace, it replaces old_text; use an empty string to suggest deletion. With insert_before or insert_after, it is only the text to insert and old_text remains unchanged.
old_textstringrequired- Unique, non-empty exact text copied from the accepted Notion Markdown returned by fetch.
page_idstringrequired- Page UUID or URL containing the target text.
commentstring- Optional inline Markdown comment that starts the suggestion thread.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
modestring- How to apply new_text relative to old_text. Defaults to replace.one of
replaceinsert_beforeinsert_after property_namestring- Exact page title or database title/text property name. Omit for page body text.
telemetryobject- No description.
notionmcp_notion_download_skillDownload a spec-compliant Notion Skill as a complete tar.gz archive containing SKILL.md and its supporting files and nested folders.WriteNotion Download Skill
Download a spec-compliant Notion Skill as a complete tar.gz archive containing SKILL.md and its supporting files and nested folders. Pass the skill page ID. Returns a temporary signed url. Download and extract the archive to read or use the skill.
Inputs
idstringrequired- Identifier for a Notion skill page.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_get_enabled_skillsUse this tool to view the Notion skills the user has enabled for you and other external MCP clients, each with a name and a description of when it should be used.WriteNotion Get Enabled Skills
Use this tool to view the Notion skills the user has enabled for you and other external MCP clients, each with a name and a description of when it should be used. If you choose to use one of these skills, mention to the user that you are loading the skill from Notion first, then download them.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_get_file_download_urlsGet signed download URLs for files that fetch output cites by stable `notion-file-block://` references.WriteNotion Get File Download Urls
Get signed download URLs for files that fetch output cites by stable `notion-file-block://` references. Pass up to 25 references exactly as they appear in the page Markdown. Each reference resolves independently: `files` lists the ones that resolved and `unresolved` lists the rest with a reason. The URLs expire after a few minutes; call this tool again for fresh ones. Keep the stable references, not the URLs, when editing or copying page Markdown. <examples> 1. Get download URLs: {"references":["notion-file-block://12345678-90ab-4def-8234-567890abcdef/abcdef12-3456-4890-abcd-ef1234567890?space_id=fedcba98-7654-4321-8fed-cba987654321&name=diagram.png"]} </examples>
Inputs
referencesarrayrequired- Stable notion-file-block:// file references, copied exactly from the Markdown returned by fetch. Up to 25 per call.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_get_groupsRetrieves permission groups in the current workspace that you can see, with their IDs and names.WriteNotion Get Groups
Retrieves permission groups in the current workspace that you can see, with their IDs and names. People properties reference a group as `space_permission_group-<id>`. Use this tool to find the name of a group in a People property value, or to find a group by name before setting it in a People property. Listings are sorted by name and searches return the closest matches first. Results are limited to a maximum of 25 groups. <examples> 1. List groups (up to the limit): {} 2. Search for groups by name: {"query": "engineering"} 3. Look up a group from a People property value: {"query": "space_permission_group-141083e9-5e66-4c8f-8a38-bce5762903c2"} </examples>
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
querystring- Optional group name to search for (case-insensitive), or a group ID from a People property value (`space_permission_group-<id>` or the bare ID) to look up that group.
telemetryobject- No description.
notionmcp_notion_get_selfGet the current Notion connection's workspace and authenticated user.WriteNotion Get Self
Get the current Notion connection's workspace and authenticated user. Call with {}. Returns the workspace ID and name, and the user's ID, name, type, and email when available. Use this tool to identify the connected account. To check tool availability, use get_tool_access.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_get_session_statusGet the latest turn's status for a Custom Agent session without waiting.WriteNotion Get Session Status
Get the latest turn's status for a Custom Agent session without waiting. Requires Notion AI.
Inputs
session_urlstringrequired- Use the complete session_url returned by session tools, unchanged. Format: session://<spaceId>/<sessionId>. Shorthand session://<sessionId> and thread://<sessionId> use the connected workspace. Fully qualified URLs must refer to that workspace.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_get_suggested_editRead the exact before-and-after diff and currently allowed actions for one pending suggested edit.WriteNotion Get Suggested Edit
Read the exact before-and-after diff and currently allowed actions for one pending suggested edit. Call this before deciding whether to accept or reject it. If availability is not already known for this connection, call get_tool_access with {} before using this tool. Reuse the returned access map across tools; check the status and restricted_parameters.
Inputs
suggested_edit_urlstringrequired- Pending suggested-edit discussion URL returned by get_comments or create_suggested_edit.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_get_tool_accessGet current tool availability, parameter restrictions, and available upgrade links for this Notion connection.WriteNotion Get Tool Access
Get current tool availability, parameter restrictions, and available upgrade links for this Notion connection. This lookup is optional: tools apply access limits themselves and report them in their results as notices or errors with upgrade links. Use it when the user asks which Notion tools or features are available, or after a result reports restricted access or an upgrade requirement. Call with {} for the full access map, or pass tool_names to narrow the result. Unknown names and tools not exposed to this connection are omitted. The map may report AI search access under ai_search; use search for every content search, which runs AI search when it is available. Tool availability and restricted_parameters are independent. This tool does not grant access or change the workspace.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
tool_namesarray- Optional RunTool names to include, such as search and ai_search. Omit to return all tools visible to this connection. Unknown or unexposed names are omitted. An empty list returns an empty map.
notionmcp_notion_get_version_changesList what changed in a Notion page or database between two times, who changed it, and whether they used AI, an agent, or an MCP client.WriteNotion Get Version Changes
List what changed in a Notion page or database between two times, who changed it, and whether they used AI, an agent, or an MCP client. Each block, property, row, data source, or view that changed is listed once, with how it looked at the start and at the end of the time range. The range defaults to the last 24 hours. Filter by authors or sources to list only the records those people, agents, or kinds of edits touched; before and after still include everyone's edits, so use a shorter range to isolate one author. To read the whole page at a time, use view_version. Comments are not listed. Changes inside a page's inline databases are not listed either; pass an inline database's url to read them. Requires edit access to the page.
Inputs
pagestringrequired- The page or database to read: a page URL, database URL, data source (collection://) URL, or ID.
authorsarray- Only return records that these people or agents changed: user:// URLs or agent URLs. Each record's before and after still include everyone's edits in the range, and contributors lists everyone who edited it.
end_timestring- End of the time range, included, as an ISO 8601 time with a time zone, such as "2026-10-10T18:05:02Z". Must be after start_time. Leave it out unless the user names a time; it defaults to now.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
sourcesarray- Only return records changed through these, such as ["notion_ai", "custom_agent", "mcp"] for changes made by AI. Each record's before and after still include every edit in the range, and contributors lists everyone who edited it.
start_timestring- Start of the time range, not included, as an ISO 8601 time with a time zone, such as "2026-10-10T18:05:02Z". Leave it out unless the user names a time; it defaults to 24 hours before end_time.
telemetryobject- No description.
notionmcp_notion_list_page_backlinksList the pages that link to or mention a Notion page (backlinks), in the same workspace.WriteNotion List Page Backlinks
List the pages that link to or mention a Notion page (backlinks), in the same workspace. Returns IDs, titles and URLs only; fetch a result to read it. Only pages you can open are listed. Follow next_cursor for more.
Inputs
page_idstringrequired- ID or URL of the page or database to find backlinks for.
cursorstring- next_cursor from the previous call.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
page_sizeinteger- Maximum backlinks to return (1-100; default 25).
telemetryobject- No description.
typesarray- Only return these kinds of backlinks. page_mention is an inline @-mention in text, a title, or a caption; link_to_page is a link-to-page block; property_mention is a mention in a database property; comment_mention is a mention in a comment. Omit for all kinds.
notionmcp_notion_list_session_eventsList short summaries of saved events in a Custom Agent session.WriteNotion List Session Events
List short summaries of saved events in a Custom Agent session. Requires Notion AI.
Inputs
countintegerrequired- Maximum number of committed events to return.
session_urlstringrequired- Use the complete session_url returned by session tools, unchanged. Format: session://<spaceId>/<sessionId>. Shorthand session://<sessionId> and thread://<sessionId> use the connected workspace. Fully qualified URLs must refer to that workspace.
after_sequenceinteger- Load the next page of events starting after this sequence number.
before_sequenceinteger- Load the previous page of events ending before this sequence number.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_memory_searchSearch memories that the user's connected agents saved in earlier sessions: context, preferences, corrections, and decisions.WriteNotion Memory Search
Search memories that the user's connected agents saved in earlier sessions: context, preferences, corrections, and decisions. Returns the best matches, not every memory. To list, count, or filter memories, fetch id "memory" and run query-data-sources on its data source. The first time you use memory in a conversation, whether searching or saving, read notion://docs/memory once.
Inputs
querystringrequired- Words or a short phrase to find in personal memories.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
limitinteger- Maximum number of memories to return. Defaults to 10 and cannot exceed 50.
telemetryobject- No description.
notionmcp_notion_query_multiple_data_sourcesQuery data across multiple Notion data sources using read-only SQLite SQL.WriteNotion Query Multiple Data Sources
Query data across multiple Notion data sources using read-only SQLite SQL. Use this tool for JOINs, UNIONs, comparisons, and aggregations that need two or more data sources. Queries across multiple data sources require a Business or Enterprise plan with Notion AI. Use query_data_sources instead when you need one data source or a saved database view. Prerequisites: 1. Use the "fetch" tool first to get each data source's schema and collection:// URL. 2. Data source URLs are found in <data-source url="..."> tags in fetch results. SQL: - Use each collection:// URL as a quoted SQLite table name in the query. - Bind untrusted values with ? placeholders and params; do not interpolate them into SQL. - Include every needed filter in WHERE. Saved-view filters and sorts are not automatically applied. - Checkbox values: use "__YES__" for checked and "__NO__" for unchecked. - Date properties expand to `date:<Name>:start`, `:end`, `:is_datetime`; `created_time` keeps its base name. Returns matching rows, the queried data source IDs, and whether results were truncated.
Inputs
data_source_urlsarrayrequired- Notion data source URLs whose SQLite tables are available to the query; each data source is exposed as a table named by its URL. Obtain them from the fetch tool, in the format: collection://f336d0bc-b841-465b-8045-024475c079dd
querystringrequired- Read-only SQLite query to execute against the data sources. Use a data source URL as the table name, e.g. SELECT * FROM "collection://..." WHERE .... Use only table and column names shown in the fetched `<sqlite-table>` definition; date properties use the expanded column names listed there, not the base name. Example: if the fetched schema has a date property `Due`, use `"date:Due:start"`, not `"Due"`. Properties of type `created_time` or `last_edited_time` keep their exact fetched base columns (e.g. `"Created"` only if listed). A formula or another property with a date-looking name or result does not automatically have `date:` columns or become queryable. Copy actual fetched columns, not property labels. Include every needed filter in WHERE (filters on views of the data source are not automatically applied). For time comparisons or ordering, normalize text timestamps with datetime(...) or date(...). SQL text values can omit rich-text mentions and formatting, and links can lose their destination. Use faithful rows mode or fetch the page before rewriting a rich-text property.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
modestring- Optional SQL mode marker. This tool only supports SQL queries.one of
sql paramsarray- Positional parameters bound to `?` placeholders in the query. Prefer parameterized queries over string interpolation. Use "__YES__" for checked checkboxes and "__NO__" for unchecked checkboxes.
telemetryobject- No description.
notionmcp_notion_query_sessionsList agent sessions available to the integration.WriteNotion Query Sessions
List agent sessions available to the integration. Filter, sort, or search by title. A bounded page can be empty while has_more is true; follow next_cursor until has_more is false. Requires Notion AI.
Inputs
filterstring- A session property filter, or an and/or compound filter nested up to two levels deep.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
page_sizeinteger- The number of sessions to return. Maximum: 100.
querystring- A case-insensitive substring search over session titles.
sortsarray- Ordered sort precedence. Defaults to updated_at descending.
start_cursorstring- The continuation cursor returned by the previous page.
telemetryobject- No description.
notionmcp_notion_read_session_eventRead the full visible content of one saved Custom Agent session event.WriteNotion Read Session Event
Read the full visible content of one saved Custom Agent session event. Requires Notion AI.
Inputs
sequenceintegerrequired- Committed event sequence number to read.
session_urlstringrequired- Use the complete session_url returned by session tools, unchanged. Format: session://<spaceId>/<sessionId>. Shorthand session://<sessionId> and thread://<sessionId> use the connected workspace. Fully qualified URLs must refer to that workspace.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_resolve_suggested_editAccept or reject one pending suggested edit.WriteNotion Resolve Suggested Edit
Accept or reject one pending suggested edit. Use the exact suggested_edit_url, inspect it with get_suggested_edit first, and call this only after the user explicitly chooses accept or reject. If availability is not already known for this connection, call get_tool_access with {} before using this tool. Reuse the returned access map across tools; check the status and restricted_parameters.
Inputs
actionstringrequired- Whether to apply or discard the suggestion.one of
acceptreject suggested_edit_urlstringrequired- Pending suggested-edit discussion URL returned by get_comments or create_suggested_edit.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_restore_pagesRestore Notion pages or databases from Trash to where they were before they were deleted.WriteNotion Restore Pages
Restore Notion pages or databases from Trash to where they were before they were deleted. Use this when the user asks to undo a deletion or to restore something from Trash. Database rows are pages. Restoring something that is already out of Trash succeeds and changes nothing. To restore a page whose parent is in Trash, restore the parent.
Inputs
page_idsarrayrequired- IDs of 1 to 20 pages or databases in Trash. Database rows are pages. Duplicate IDs are restored once.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_search_sessionsSearch past agent sessions by topic in a periodically refreshed index and return matching session URLs and excerpts.WriteNotion Search Sessions
Search past agent sessions by topic in a periodically refreshed index and return matching session URLs and excerpts. Recently created or updated sessions may not appear; use query_sessions for recent sessions. Requires Notion AI.
Inputs
questionstringrequired- What you want to find in past sessions.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
lookbackstring- How far back to search, such as "30d" or "1y". Leave it out to search the past year.
telemetryobject- No description.
notionmcp_notion_send_message_to_sessionSend a follow-up message to a Custom Agent session you can access.WriteNotion Send Message To Session
Send a follow-up message to a Custom Agent session you can access. Requires Notion AI.
Inputs
messagestringrequired- Follow-up message to send.
session_urlstringrequired- Use the complete session_url returned by session tools, unchanged. Format: session://<spaceId>/<sessionId>. Shorthand session://<sessionId> and thread://<sessionId> use the connected workspace. Fully qualified URLs must refer to that workspace.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_set_comment_reactionAdd or remove your emoji reaction on a comment.WriteNotion Set Comment Reaction
Add or remove your emoji reaction on a comment. Get the comment ID from get_comments or create_comment. Safe to repeat: setting the same state twice changes nothing. Requires a Business or Enterprise plan.
Inputs
comment_idstringrequired- The comment ID, with or without dashes. Use the id of a <comment> from get_comments, or the id returned by create_comment.
emojistringrequired- One standard Unicode emoji.
reactedbooleanrequired- True to add the reaction, false to remove it.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_set_discussion_resolvedResolve or reopen a comment discussion.WriteNotion Set Discussion Resolved
Resolve or reopen a comment discussion. Get the discussion ID from get_comments or create_comment. Use this tool only when a human explicitly asks to resolve that discussion. Do not infer resolution from addressing feedback, replying, completing related work, passing checks, or changing task status. Requires a Business or Enterprise plan.
Inputs
discussion_idstringrequired- The discussion ID or URL, such as the id of a <discussion> from get_comments (discussion://pageId/blockId/discussionId) or the discussion_id returned by create_comment.
resolvedbooleanrequired- True to resolve the discussion, false to reopen it.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_show_advanced_analysis_next_stepsUse this exactly once at the end of a turn when query_multiple_data_sources requires the full version of Notion MCP.WriteNotion Show Advanced Analysis Next Steps
Use this exactly once at the end of a turn when query_multiple_data_sources requires the full version of Notion MCP. Call with no arguments. Do not call this once per failed query, and do not call it again if it has already been called in this turn. Use the card data to give the user the relevant next-step message and destination link in the final response. Use a compact, labeled Markdown link rather than a bare URL, and do not request or create a separate link preview.
Inputs
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
notionmcp_notion_spawn_sessionStart a session with a published Custom Agent.WriteNotion Spawn Session
Start a session with a published Custom Agent. Use get_session_status or wait_session to check its progress. Requires Notion AI.
Inputs
agent_urlstringrequired- Published Custom Agent URL in agent://<spaceId>/<agentId> format, as returned by search_agents.
initial_messagestringrequired- Initial message for the new session.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_stop_sessionStop a running Custom Agent session you can access.WriteNotion Stop Session
Stop a running Custom Agent session you can access. Requires Notion AI.
Inputs
session_urlstringrequired- Use the complete session_url returned by session tools, unchanged. Format: session://<spaceId>/<sessionId>. Shorthand session://<sessionId> and thread://<sessionId> use the connected workspace. Fully qualified URLs must refer to that workspace.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_update_commentReplace the text of a comment you wrote.WriteNotion Update Comment
Replace the text of a comment you wrote. Get the comment ID from get_comments or create_comment. The new text replaces the whole comment, so send the full corrected text. To fix a comment, update it instead of deleting it and posting a new one. You can only edit your own comments. Requires a Business or Enterprise plan.
Inputs
comment_idstringrequired- The comment ID, with or without dashes. Use the id of a <comment> from get_comments, or the id returned by create_comment.
markdownstringrequired- The full replacement text for the comment, as inline Markdown. It replaces the whole comment, so include any text you want to keep. Use the same inline syntax as create_comment. Lists, headings, and other block-level Markdown are not supported in comments.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_update_enabled_skillsEnable or disable Notion Skills for external MCP clients, Notion AI, or both by adding or removing their page URLs.WriteNotion Update Enabled Skills
Enable or disable Notion Skills for external MCP clients, Notion AI, or both by adding or removing their page URLs. The surfaces option defaults to both and changes only the current user's Skill settings.
Inputs
add_skill_urlsarray- Notion Skill page URLs to enable for the current user on every surface.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
remove_skill_urlsarray- Notion Skill page URLs to turn off on the requested surfaces.
surfacesarray- Surfaces to turn remove_skill_urls off for. Defaults to both external MCP and Notion AI. Does not apply to add_skill_urls.
telemetryobject- No description.
notionmcp_notion_upload_skillImport a spec-compliant Agent Skills directory into a page in a Skills database.WriteNotion Upload Skill
Import a spec-compliant Agent Skills directory into a page in a Skills database. First call action=prepare with page_id and the exact tar.gz content_length and checksum_crc32. PUT the raw archive bytes to upload_url with all upload_headers, then call action=complete with the same page_id and upload_token. The archive must contain SKILL.md with name/description YAML frontmatter, either at the root or in a single matching skill-name directory. Completion replaces the page title, Description, body, and Files; it preserves the page and uses the page-update diff engine rather than recreating all content blocks. SKILL.md becomes page content. Its sibling folders and files are added directly to Files, preserving nested directories without a skill-name wrapper. Previous folders are not deleted. For a new skill, create a page in a Skills database first. Maximum 20 MiB compressed, 25 MiB expanded, 1000 entries, 20 path levels, and 200 UTF-8 bytes per filename. Paths must be unique ignoring case. Only name and description are imported from frontmatter; optional fields are ignored. Links and special files are rejected. Upload URLs and tokens expire after ten minutes. Uploading never executes skill instructions or scripts.
Inputs
actionstringrequired- Prepare an upload or complete a previously uploaded archive.one of
preparecomplete page_idstringrequired- Target page in a Skills database. Create a new page first to import a new skill.
checksum_crc32string- Required for prepare. Base64-encoded big-endian CRC32 of the tar.gz bytes; S3 verifies it on upload.
content_lengthinteger- Required for prepare. Exact compressed archive size in bytes (maximum 20 MiB).
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
upload_tokenstring- Required for complete. Opaque token from prepare. Bound to the integration, workspace, and page; expires after ten minutes.
notionmcp_notion_view_versionRead a Notion page or database as it looked at a past time.WriteNotion View Version
Read a Notion page or database as it looked at a past time. The open page and other reads show only current content, so use this for any question about what a page said, contained, or looked like at an earlier date, even when the page is already open. A page returns its Markdown and properties; each inline database is a database tag, and you can pass that tag's url to this tool to read the database at the same time. A database returns its data sources, views, and rows. A linked database leaves out the data sources, views, and rows that belong to another database. Requires edit access to the page.
Inputs
pagestringrequired- The page or database to read: a page URL, database URL, data source (collection://) URL, or ID.
timestringrequired- The moment to read, as an ISO 8601 time with a time zone offset. Convert the user's date and time in their own time zone, such as "2026-10-10T14:05:02-04:00" for 2:05 PM in New York. If the user names only a date, pick a time on that date in their time zone and tell them which.
cursorstring- A database's next_cursor, to read its next rows. Pass the same page and time as the call that returned it.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_wait_sessionWait for the latest turn in a Custom Agent session to stop running.WriteNotion Wait Session
Wait for the latest turn in a Custom Agent session to stop running. Requires Notion AI.
Inputs
secondsintegerrequired- Maximum number of seconds to wait.
session_urlstringrequired- Use the complete session_url returned by session tools, unchanged. Format: session://<spaceId>/<sessionId>. Shorthand session://<sessionId> and thread://<sessionId> use the connected workspace. Fully qualified URLs must refer to that workspace.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-convert-page-to-skillMark a Notion page as an AI skill.WriteNotion Convert Page To Skill
Mark a Notion page as an AI skill. The page must be in the current workspace, and the authenticated user must have permission to edit it.
- Idempotent
Inputs
page_urlstringrequired- The full Notion URL of the page to mark as a skill.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-create-attachmentCreate an attachment and upload it to Notion.WriteNotion Create Attachment
Create an attachment and upload it to Notion. Provide exactly one of content (small UTF-8 text), source_url (a direct publicly reachable HTTPS URL), or source_file_id (a file already uploaded by this integration).
Inputs
contentstring- The complete UTF-8 text content of the file. Maximum 200 KiB after UTF-8 encoding. Requires filename. Examples: <example><!doctype html><html><body><h1>Report</h1></body></html></example> or <example># Notes Hello</example>.
content_typestring- Optional MIME type, such as text/html or application/pdf. It must match the filename extension; omit it to infer the type from the filename. Omit it with source_file_id; the stored upload already carries a content type.
filenamestring- The filename to create in Notion, including a supported extension such as .html, .md, .pdf, or .png. Required with content and source_url. Omit it with source_file_id; the stored upload already carries a filename.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
source_file_idstring- The ID of a file upload this exact integration already created. Use create_file_upload when available; otherwise run `ntn files create` or use the Notion File Upload API with this integration's token. Its status must be uploaded. An upload created with a different token is not visible. Example: <example>1e2f3a4b-5c6d-7e8f-9a0b-1c2d3e4f5a6b</example>.
source_urlstring- A direct, publicly reachable HTTPS URL from which Notion can download the file within one minute. Notion makes a metadata-only HEAD request when supported, then a GET. Redirects, private network addresses, custom request headers, and cookies are not supported. Downloads are limited to 5 MiB for free workspaces and 50 MiB for paid workspaces. Requires filename. Example: <example>https://storage.example.com/report.pdf?signature=...</example>.
telemetryobject- No description.
notionmcp_notion-create-commentAdd a comment to a Notion page or inline discussion thread.WriteNotion Create Comment
Add a comment to a Notion page or inline discussion thread.
Inputs
page_idstringrequired- The page ID, with or without dashes, or a Notion page URL.
discussion_idstring- The ID or URL of an existing discussion to reply to (e.g., discussion://pageId/blockId/discussionId).
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
markdownstring- The content of the comment as a Markdown string. Provide exactly one of markdown or rich_text. For exact syntax, read the MCP resource `notion://docs/notion-flavored-markdown-spec` through your MCP client's resource-reading interface, or call the Notion "fetch" tool with this URI if your client does not support reading MCP resources. Do NOT pass this URI to any other URL-fetching tool. Use only the Rich text types and Mentions syntax that comments support. Comments support inline formatting (bold, italic, strikethrough, underline, code, links), inline math using $Equation$, user, page, and database mentions such as <mention url="user://..." />, and date mentions such as <date start="YYYY-MM-DD" />. To attach a file created by create-file-upload or create-attachment, include its returned suggested_markdown on a separate line; up to three file attachments are supported. Do not use UI shortcuts like @today, @name, [[page]], or autocomplete-style emoji syntax; those are editor affordances, not markdown syntax. Mention tags must include a real url where required by the spec. Other block-level Markdown such as fenced code blocks, headings, lists, tables, and blockquotes is stored as plain comment text rather than rendered as blocks. Example: <example>Looks good.</example>.
reply_to_comment_idstring- The ID of the comment to reply to.
rich_textarray- An array of rich text objects that represent the content of the comment. Provide exactly one of rich_text or markdown.
selection_with_ellipsisstring- Unique content snippet: ~10 characters from each end, joined by "...". A match within one block's text gets an inline comment on that text; otherwise, comment on the block where the match starts. No match returns an error.
telemetryobject- No description.
notionmcp_notion-create-databaseCreate a new Notion database using a SQL DDL schema definition.WriteNotion Create Database
Create a new Notion database using a SQL DDL schema definition.
Inputs
database_typestring- Create a canonical typed database with Notion's required properties and metadata. Supported types: tasks, projects, skills. Example: <example>tasks</example>. Use title "Tasks" when needed.one of
tasksprojectsskills descriptionstring- The description of the new database.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
parentobject- The parent under which to create the new database. If omitted, the database will be created as a private page at the workspace level.
schemastring- SQL DDL CREATE TABLE statement defining the database schema. Cannot be combined with database_type. Column names must be double-quoted and type options use single quotes. Property type syntax: - Simple: TITLE, RICH_TEXT, DATE, PEOPLE, CHECKBOX, URL, EMAIL, PHONE_NUMBER, FILES - SELECT('opt':color, ...) / MULTI_SELECT('opt':color, ...) - STATUS('Backlog':gray:to_do, 'Building':blue:in_progress, 'Shipped':green:complete); groups are to_do, in_progress, complete - NUMBER [FORMAT 'dollar'] / FORMULA('expression') - RELATION('ds') for a one-way relation - RELATION('ds', DUAL) for a two-way relation - RELATION('ds', DUAL 'Children') with a synced property name - RELATION('ds', DUAL 'Children' 'children') with a synced name and synced_id (for self-relations) - ROLLUP('rel_prop', 'target_prop', 'function') - UNIQUE_ID [PREFIX 'X'] / CREATED_TIME / LAST_EDITED_TIME - Any column: COMMENT 'description text' Colors: default, gray, brown, orange, yellow, green, blue, purple, pink, red. Examples: - Minimal: <example>CREATE TABLE ("Name" TITLE)</example> - With options: <example>CREATE TABLE ("Name" TITLE, "Budget" NUMBER FORMAT 'dollar', "Tags" MULTI_SELECT('eng':blue, 'design':pink), "Task ID" UNIQUE_ID PREFIX 'PRJ')</example> - Self-relations are a two-step flow: create the database, then use its data source ID with update_data_source to add paired properties such as RELATION('ds', DUAL 'Children' 'children').
telemetryobject- No description.
titlestring- The title of the new database.
notionmcp_notion-create-file-uploadCreate a short-lived URL for uploading one local file directly to Notion.WriteNotion Create File Upload
Create a short-lived URL for uploading one local file directly to Notion. After calling this, send a multipart/form-data POST to the returned upload_url with the file and headers.
Inputs
filenamestringrequired- The filename to create in Notion, including a supported extension such as .pdf, .png, or .zip.
content_typestring- Optional MIME type, such as application/pdf or image/png. Prefer omitting it so the type is inferred from the filename: a type that disagrees with the extension is stored as given, and the file then renders as the wrong kind.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-create-folderCreate an empty Notion Folder under a page or another Folder.WriteNotion Create Folder
Create an empty Notion Folder under a page or another Folder. This tool creates only the empty Folder; it is non-idempotent and creates a new Folder on every successful call.
Inputs
parentstringrequired- Where to create the Folder.
titlestringrequired- The title of the new Folder.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-create-pagesCreate one or more Notion pages with properties and Markdown content.WriteNotion Create Pages
Create one or more Notion pages with properties and Markdown content.
Inputs
pagesarrayrequired- The pages to create.
allow_asyncboolean- Default to true for page creation. Set to false only when the next step needs the created pages immediately, or when async execution rejects the request as too large. When this create operation is accepted for background execution, it returns an async_task result. Use get_async_task to wait for a succeeded status before taking a dependent action on the pages. For pages created with template_id, a succeeded status does not mean template content is ready; fetch and retry until it is ready before changing or relying on that content. If omitted or false, the tool keeps the existing synchronous result shape.
creation_modestring- If the user explicitly names a private or shared destination, omit "creation_mode" and use that parent. Otherwise, use "draft" when the user clearly wants a durable page but has not named a destination. Prefer this explicit draft mode over omitting the parent. Draft mode is server-enforced: it creates a private workspace-level page and cannot be combined with "parent". Create it without first asking where it should live. After creation, tell the user it is private and offer to move it once they name a destination.one of
draft instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
parentstring- All pages in one call share this parent. Pass "memory" to save a personal memory; see notion://docs/memory. Otherwise use a page (page_id), database page (database_id), data source (data_source_id), or teamspace root (teamspace_id, from get_teams). Teamspace roots require a user-backed connection and permission to add top-level pages. A database_id cannot be used when the database has more than one data source; fetch it and use the right collection:// URL as data_source_id. If omitted, pages are private at the workspace level. When no destination is named, prefer explicit "creation_mode": "draft" over omitting the parent.
telemetryobject- No description.
notionmcp_notion-create-viewCreate a new view on a Notion database with optional filters and sorts.WriteNotion Create View
Create a new view on a Notion database with optional filters and sorts.
Inputs
data_source_idstringrequired- The data source (collection) ID. Accepts a collection:// URI from <data-source> tags or a bare UUID.
namestringrequired- The name of the view.
typestringrequired- The type of view to create.one of
tableboardlistcalendartimelinegalleryformchartmapdashboard configurestring- View configuration DSL directives and examples: - FILTER "Property" = "value" â filter rows. Relation values must be a page URL or UUID; person values must be a user URI (user://<user_id>), user UUID, or "me". Names are not supported for either. - QUICK FILTER "Property" â add a quick filter to the view's filter bar with no criteria; add a condition to preselect one (QUICK FILTER "Status" = "Done") - SORT BY "Property" ASC â sort rows - GROUP BY "Property" [BY OPTION | BY GROUP] [SHOW EMPTY | HIDE EMPTY] â group by property (required for board views) - SUB GROUP BY "Property" [BY OPTION | BY GROUP] [SHOW EMPTY | HIDE EMPTY] â add board sub-grouping BY OPTION and BY GROUP apply only to status properties and rollups that return status values (Show original or Show unique). For select and multi_select properties, omit both modifiers, even if the property is named "Status" (for example, GROUP BY "Status"). - CARD LAYOUT default | compact â set board or gallery card layout - CARD SIZE small|medium|large â set gallery card size independently of its cover - CALENDAR BY "Property" â date property (required for calendar views) - TIMELINE BY "Start" TO "End" â date range (required for timeline views) - MAP BY "Property" â location property (required for map views) - CHART column|bar|line|donut|number â chart type with optional AGGREGATE, COLOR, HEIGHT, SORT, STACK BY, CAPTION - FORM CLOSE|OPEN â close/open form submissions - FORM ANONYMOUS true|false â toggle anonymous submissions - FORM PERMISSIONS none|reader|editor â set submission permissions - SHOW "Prop1", "Prop2" â set visible properties - WIDTH "Prop1" 320, "Prop2" 120 â set table column widths in pixels - COVER "Property" â cover image property - WRAP PROPERTIES true|false â wrap configured gallery property values - ICON "ð" â view tab icon: an emoji, a Notion icon such as "icons/rocket_blue", or an image URL <example>SHOW "Name", "Status", "Due Date"</example> <example>GROUP BY "Status" BY GROUP SHOW EMPTY; SUB GROUP BY "Priority"; CARD LAYOUT compact</example> <example>SHOW "Name", "Status"; CARD SIZE small; WRAP PROPERTIES true</example> <example>FILTER "Status" = "In Progress"; SORT BY "Due Date" ASC</example> <example>CALENDAR BY "Due Date"</example> <example>TIMELINE BY "Start" TO "End"</example> <example>FILTER "Company" = "Acme"</example>
database_idstring- The database to add a view tab to. Accepts a Notion URL or a bare UUID. Mutually exclusive with `parent_page_id`; exactly one must be provided.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
parent_page_idstring- A page to create an inline linked database view on, like the UI /linked command. Accepts a Notion URL or a bare UUID. The new linked view block is appended at the end of the page and references `data_source_id`. Mutually exclusive with `database_id`; exactly one must be provided.
show_data_source_titleboolean- Whether the new linked view block shows its data source title above the view, like the Show data source title toggle in the Notion app. Defaults to true. Only valid with `parent_page_id`.
telemetryobject- No description.
notionmcp_notion-duplicate-pageDuplicate an existing Notion page within the current workspace.WriteNotion Duplicate Page
Duplicate an existing Notion page within the current workspace.
Inputs
page_idstringrequired- The page ID, with or without dashes, or a Notion page URL.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-move-pagesMove one or more Notion pages or databases to a new parent.WriteNotion Move Pages
Move one or more Notion pages or databases to a new parent.
- Idempotent
Inputs
new_parentstringrequired- The new parent under which the pages will be moved. This can be a page, the workspace, a database, or a specific data source under a database when there are multiple. Moving pages to the workspace level adds them as private pages and should rarely be used.
page_or_database_idsarrayrequired- An array of up to 100 page or database IDs to move. IDs are v4 UUIDs and can be supplied with or without dashes (e.g. extracted from a <page> or <database> URL given by the "search" or "fetch" tool). Data Sources under Databases can't be moved individually.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion-update-folderUpdate an existing Notion Folder: add uploaded files, remove files by their exact fetched URLs, or add a new nested subfolder.WriteNotion Update Folder
Update an existing Notion Folder: add uploaded files, remove files by their exact fetched URLs, or add a new nested subfolder. Use exactly one command shape at a time.
Inputs
commandstringrequired- The Folder update to apply.one of
add_filesremove_filesadd_subfolder folder_idstringrequired- The ID of the Folder to update.
file_upload_idsarray- Required for add_files. One or more file upload IDs returned by the file upload tools.
file_urlsarray- Required for remove_files. The exact file URLs shown in the Folder's latest fetch output.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
titlestring- Required for add_subfolder. The new Folder's title.
notionmcp_notion-update-viewUpdate a Notion database view's name, filters, sorts, or display configuration.WriteNotion Update View
Update a Notion database view's name, filters, sorts, or display configuration.
Inputs
view_idstringrequired- The view to update. Accepts a view:// URI, a Notion URL with ?v= parameter, or a bare UUID.
configurestring- View configuration DSL string. Supports FILTER, QUICK FILTER, SORT BY, GROUP BY, SUB GROUP BY, CARD LAYOUT, CARD SIZE, CALENDAR BY, TIMELINE BY, MAP BY, CHART, FORM, SHOW, HIDE, COVER, WRAP CELLS, WRAP PROPERTIES, FREEZE COLUMNS, ICON, WIDTH, and CLEAR directives. BY OPTION and BY GROUP apply only to status properties and rollups that return status values (Show original or Show unique). For select and multi_select properties, omit both modifiers, even if the property is named "Status" (for example, GROUP BY "Status").
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
namestring- New name for the view.
telemetryobject- No description.
notionmcp_notion_delete_commentDelete a comment you wrote.DestructiveNotion Delete Comment
Delete a comment you wrote. Get the comment ID from get_comments or create_comment. If it is the last comment in its discussion, the discussion is removed too. Use this only when the user asks to delete a comment; to fix a comment, use update_comment instead. You can only delete your own comments. Requires a Business or Enterprise plan.
Inputs
comment_idstringrequired- The comment ID, with or without dashes. Use the id of a <comment> from get_comments, or the id returned by create_comment.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
notionmcp_notion_delete_databasesMove Notion databases to Trash.DestructiveNotion Delete Databases
Move Notion databases to Trash. They can be restored with the restore_pages tool or from Trash in Notion. Each database goes to Trash with all of its rows. Pass a full-page or inline database that owns its data, not a linked view. To move a page or database row to Trash, use delete_pages. Use this tool only when the user explicitly asks to delete specific databases. Never use it on your own initiative to clean up, deduplicate, or reorganize content. Without user_confirmed: true, nothing is trashed and the error lists what would be moved to Trash; show that list to the user and retry only after they confirm.
Inputs
database_idsarrayrequired- IDs of the databases to move to Trash, 1 to 20. Each must be a full-page or inline database that owns its data, not a linked view. Duplicate IDs are processed once.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
user_confirmedboolean- Set to true only after the user explicitly asked to delete these exact databases, or confirmed after you showed them the list. If omitted or false, nothing is trashed and the error lists what would be moved to Trash so you can confirm with the user.
notionmcp_notion_delete_pagesMove Notion pages to Trash.DestructiveNotion Delete Pages
Move Notion pages to Trash. They can be restored with the restore_pages tool or from Trash in Notion. Database rows are pages. To move a database to Trash, use delete_databases. To remove content inside a page, use update_page instead. Use this tool only when the user explicitly asks to delete specific pages. Never use it on your own initiative to clean up, deduplicate, or reorganize content. Without user_confirmed: true, nothing is trashed and the error lists what would be moved to Trash; show that list to the user and retry only after they confirm.
Inputs
page_idsarrayrequired- IDs of the pages to move to Trash, 1 to 20. Database rows are pages. Duplicate IDs are processed once.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
telemetryobject- No description.
user_confirmedboolean- Set to true only after the user explicitly asked to delete these exact pages, or confirmed after you showed them the list. If omitted or false, nothing is trashed and the error lists what would be moved to Trash so you can confirm with the user.
notionmcp_notion-update-data-sourceUpdate a Notion data source's schema, title, or attributes using SQL DDL statements.DestructiveNotion Update Data Source
Update a Notion data source's schema, title, or attributes using SQL DDL statements.
Inputs
data_source_idstringrequired- The data source to update. Accepts a collection:// URI from <data-source> tags, a bare UUID, or a database ID (only if the database has a single data source).
descriptionstring- The new description of the data source.
in_trashboolean- Move data source to trash. Cannot be undone without Notion UI.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
is_inlineboolean- Whether the database should display inline (true) or as full page (false). Only applicable for single-source databases.
page_layoutobject- Replaces the data source's page layout. Refer to existing properties by name. See notion://docs/database-page-layouts. Example: <example>{"main":[{"type":"title","pinnedProperties":["Status","Owner"]},{"type":"editor"},{"type":"discussions"}],"sidebar":[{"type":"properties"}]}</example>.
statementsstring- Semicolon-separated SQL DDL statements to update the schema. Supports ADD COLUMN, DROP COLUMN, RENAME COLUMN, and ALTER COLUMN SET. Property type syntax: - Simple: TITLE, RICH_TEXT, DATE, PEOPLE, CHECKBOX, URL, EMAIL, PHONE_NUMBER, FILES - SELECT('opt':color, ...) / MULTI_SELECT('opt':color, ...) - STATUS('Backlog':gray:to_do, 'Building':blue:in_progress, 'Shipped':green:complete); groups are to_do, in_progress, complete - NUMBER [FORMAT 'dollar'] / FORMULA('expression') - RELATION('ds') for a one-way relation - RELATION('ds', DUAL) for a two-way relation - RELATION('ds', DUAL 'Children') with a synced property name - RELATION('ds', DUAL 'Children' 'children') with a synced name and synced_id (for self-relations) - ROLLUP('rel_prop', 'target_prop', 'function') - UNIQUE_ID [PREFIX 'X'] / CREATED_TIME / LAST_EDITED_TIME - Any column: COMMENT 'description text' Colors: default, gray, brown, orange, yellow, green, blue, purple, pink, red. Examples: - <example>ADD COLUMN "Priority" SELECT('High':red, 'Medium':yellow, 'Low':green); ADD COLUMN "Due Date" DATE</example> - <example>RENAME COLUMN "Status" TO "Project Status"</example> - <example>DROP COLUMN "Old Property"</example> - For a self-relation, add both relation properties in one call with matching DUAL names and IDs, such as <example>ADD COLUMN "Parent" RELATION('ds', DUAL 'Children' 'children')</example>.
telemetryobject- No description.
titlestring- The new title of the data source.
notionmcp_notion-update-pageUpdate a Notion page's properties, content, icon, cover, or verification status.DestructiveNotion Update Page
Update a Notion page's properties, content, icon, cover, or verification status.
Inputs
commandstringrequired- The update command to execute.one of
update_propertiesupdate_contentreplace_contentinsert_contentapply_templateupdate_verification page_idstringrequired- The page ID, with or without dashes, or a Notion page URL.
allow_asyncboolean- Default to true for page updates. Set to false only when the next step needs the updated page immediately, or when async execution rejects the request as too large. When this update operation is accepted for background execution, it returns an async_task result. Use get_async_task to wait for a succeeded status before taking a dependent action on the page. For apply_template, a succeeded status does not mean template content is ready; fetch and retry until it is ready before changing or relying on that content. If omitted or false, the tool waits for a synchronous result when possible, but may still return a pollable async_task response if queued execution exceeds the synchronous wait deadline.
allow_deleting_contentboolean- Optional for "replace_content" and "update_content" commands. Set to true to allow deletion of child pages and databases that are not referenced in the new content. If false or omitted, the operation will fail with an error listing the pages/databases that would be deleted. Show that list and ask the user for confirmation before retrying with true.
contentstring- Required for "insert_content" command. The markdown content to insert into the page. For people and dates, use user and date mentions rather than plain text; notion://docs/notion-flavored-markdown-spec gives the syntax.
content_updatesarray- Required for "update_content" command. An array of search-and-replace operations, each with old_str (content to find) and new_str (replacement content). Operations that match are applied, and each one that matches nothing is reported in "warnings". The call fails only when no operation that changes content matches.
coverstring- An external image URL for the page cover. Use "none" to remove the cover. Omit to leave unchanged. Can be set alongside any command. To change only the cover, use "update_properties" and omit "properties".
iconstring- An emoji character (e.g. "ð"), a custom emoji by name (e.g. ":rocket_ship:"), a Notion icon identifier as returned by fetch (e.g. "icons/pizza_blue"), or an external image URL. Use "none" to remove the icon. Omit to leave unchanged. Can be set alongside any command. To change only the icon, use "update_properties" and omit "properties". Keep the title free of a duplicate leading emoji because the icon renders separately.
instructions_versionstring- Notion setup instructions version, such as 0.0.2. Omit if unknown.
is_skillboolean- Set to true to mark this page as a skill, or false to remove the skill designation. Can be set alongside any command. To change only skill status, use "update_properties" and omit "properties". Before creating a skill, read the MCP resource `notion://docs/skills` through your MCP client's resource-reading interface. If your client does not support reading MCP resources, call the Notion "fetch" tool with this URI instead. Do NOT pass this URI to any other URL-fetching tool.
new_strstring- Required for "replace_content" command. The new content string to replace the entire page content with. Preserve child pages and databases with their exact fetched <page url="..."> or <database url="..."> tags. For people and dates, use user and date mentions rather than plain text; notion://docs/notion-flavored-markdown-spec gives the syntax.
positionstring- Optional for "insert_content" command. Use {"type":"start"} to prepend content or {"type":"end"} to append content. Omit to append.
propertiesobject- Used by the "update_properties" command, and required unless "icon", "cover", or "is_skill" is set. A JSON object that updates the page's properties. For pages in a database, fetch the page or its data source first and use the exact property names and SQLite schema definition shown in <database>. For page titles outside a database, use "title" in inline Markdown. For a Files property, an uploaded file can be provided as {"type":"file_upload","file_upload":{"id":"<file-upload-id>"}} inside the property's array. Use null to remove a property's value. **IMPORTANT**: Some property types require specific formats: - Date properties: Split into "date:{property}:start", "date:{property}:end" (optional), and "date:{property}:is_datetime" (0 or 1) - Place properties: Split into "place:{property}:name", "place:{property}:address", "place:{property}:latitude", "place:{property}:longitude", and "place:{property}:google_place_id" (optional) - Number properties: Use JavaScript numbers (not strings) - Checkbox properties: Use "__YES__" for checked, "__NO__" for unchecked - Relation properties: Use an array of related page URLs or page IDs, e.g. ["https://www.notion.so/26ab1f9f4c5f80b18d3bd10a6b1d2f4e", "26ab1f9f-4c5f-80b1-8d3b-d10a6b1d2f4e"] - Person properties: Use an array of user IDs, user or agent URLs, or group references copied from fetch output ("space_permission_group-<UUID>"). Bare group UUIDs are also supported. - Files properties: Use a JSON array of file IDs, Notion Folder URLs, and/or <folder> tags copied from fetch output. Folders are stored as native Folder references, not ordinary links. **Special property naming**: Properties named "id" or "url" (case insensitive) must be prefixed with "userDefined:" (e.g., "userDefined:URL", "userDefined:id")
telemetryobject- No description.
template_idstring- Required for "apply_template" command. The ID of a template to apply to this page; any page ID can be used as a template. Template content is appended to any existing page content asynchronously.
verification_expiry_daysinteger- Optional for "update_verification" command when verification_status is "verified". Number of days until verification expires (e.g. 7, 30, 90). Omit for indefinite verification.
verification_statusstring- Required for "update_verification" command. Set to "verified" to mark the page as verified, or "unverified" to remove verification. Requires a Business or Enterprise plan unless the page is in a wiki. When updating verification, the owner will be automatically set to the authenticated actor.one of
verifiedunverified
No tools match.