Notion MCP for AI agents
Agents read Notion MCP at once. Changes and sends are held for a person's approval by default.
About Notion MCP
Notion MCP gives agents authenticated read and write access to pages, databases, workspace search, tasks, documentation, and reporting workflows.
What an agent can do in Notion MCP
Every Notion MCP action is classed by the platform as a read, a change or a send. Reads run at once. Changes and sends are held for a person by default.
Runs at once (reads)
Looks things up in Notion MCP without asking first. 25 actions.
- Notion-ai-searchUse this tool for every content search when fetch with id self reports current_tool_access.ai_search.status as available. If that status is unavailable, use search instead. Search Notion and sources c
- Notion-check-mcp-next-stepsWhen 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 failur
- Notion-download-attachmentDownload the contents of a small UTF-8 text attachment created by the Notion MCP `create-attachment` tool. Pass the `file_upload_id` returned by `create-attachment`. The attachment must belong to the
- Notion-fetchRetrieves details about a Notion entity (page, database, data source, or saved database view) by URL or ID. Provide URL or ID in `id` parameter. Make multiple calls to fetch multiple entities. For pag
- Notion-get-async-taskRetrieves the current status of an async task that was started by another tool (for example, "create_pages" called with "allow_async": true). The status is one of "queued", "running", "retrying", "suc
- Notion-get-commentsGet comments and discussions from a Notion page. Returns discussions with full comment content in XML format. By default, returns page-level discussions only. On supported Business connections, pendin
- Notion-get-session-statusGet the latest turn's status for a Custom Agent session without waiting.
- Notion-get-teamsRetrieves a list of teams (teamspaces) in the current workspace. Shows which teams exist, user membership status, IDs, names, and roles. Teams are returned split by membership status and limited to a
- Notion-get-usersRetrieves a list of users in the current workspace. Shows workspace members and guests with their IDs, names, emails (if available), and types (person or bot). Supports cursor-based pagination to iter
- Notion-list-favorite-pagesList the current user's favorite pages and databases in sidebar order. Use this when the user refers to a favorite or pinned workspace item. Follow cursor pagination when the complete list is needed.
- Notion-list-private-pagesList 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. Follo
- Notion-list-recent-pagesList 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 wor
Show all 25
- Notion-list-session-eventsList short summaries of saved events in a Custom Agent session.
- Notion-list-shared-pagesList pages and databases in the current user's Shared sidebar section. Use this to browse content shared directly with the user; use search when looking for content by meaning or keyword. Follow curso
- Notion-query-data-sourcesQuery Notion data sources using faithful structured rows, SQL, or a view. This is the canonical replacement for the deprecated query_database_view tool. By default, uses SQL mode to execute SQLite que
- Notion-query-meeting-notesQuery the current user's meeting notes data source. Applies a filter over meeting note properties. Title keyword searching is done via filter on property "title" (e.g. string_contains). Title keyword
- Notion-query-multiple-data-sourcesQuery 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 da
- Notion-query-sessionsList 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.
- Notion-read-session-eventRead the full visible content of one saved Custom Agent session event.
- Notion-searchUse this tool for content searches only when fetch with id self reports that current_tool_access.ai_search.status is not available. When that status is available, use ai_search for every content searc
- Notion-search-agentsSearch agents by name or description, or browse the current user's favorite agents and the workspace's newest agents. Queries return one page. Without a query, follow nextCursor until it is omitted, e
- Notion-search-sessionsSearch 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
- Notion-search-skillsFind active Notion Skills the authenticated user can access. A Skill is a user-owned Notion page with task-scoped instructions that an assistant can write and maintain on the user's behalf. Use this w
- 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. Call with no arguments. Do not call this once per failed query, and do not call it
- Notion-wait-sessionWait for the latest turn in a Custom Agent session to stop running.
Held for approval by default (changes and sends)
Held for a person's approval by default. The approval is recorded and the action is sent once, never twice, with 10 seconds to undo. 17 actions.
- Notion-convert-page-to-skillMark an existing Notion page as a skill without changing its content. The page must be in the current workspace, and the authenticated user must have permission to edit it. Use this tool only when the
- Notion-create-attachmentCreate an attachment and upload it to Notion. Provide exactly one source: - content for small UTF-8 text artifacts such as HTML, Markdown, plain text, CSV, JSON, XML, CSS, YAML, TSV, calendar, GPX, or
- Notion-create-commentAdd a comment to a page or specific content. Starts a new discussion unless `discussion_id` is provided. Provide `page_id` to identify the page, then choose ONE targeting mode: - `page_id` alone: Star
- Notion-create-databaseCreates a new Notion database using SQL DDL syntax, or a canonical typed database for tasks, projects, or skills. Provide exactly one of: - schema: a CREATE TABLE statement. If no title property is pr
- Notion-create-file-uploadCreate a short-lived URL for uploading one local file directly to Notion. After calling this tool, send exactly one multipart/form-data POST request to `upload_url`. Put the file in the `file` form fi
- Notion-create-folderCreates an empty Notion Folder. Set parent.page_id for a top-level Folder owned by a page, or parent.folder_id to create a nested Folder inside another Folder. A page-owned Folder is not inserted into
- Notion-create-pages## Overview Creates one or more Notion pages, with the specified properties and content. ## Parent If the user explicitly names a private or shared destination, omit "creation_mode" and create the pag
- Notion-create-viewCreate a new view on a Notion database. Exactly one of "database_id" or "parent_page_id" must be provided: - "database_id": add a new view tab to an existing database. - "parent_page_id": create an in
- Notion-duplicate-pageDuplicate a Notion page. The page must be within the current workspace, and you must have permission to access it. The duplication completes asynchronously, so do not rely on the new page identified b
- Notion-move-pagesMove one or more Notion pages or databases to a new parent.
- Notion-send-message-to-sessionSend a follow-up message to a Custom Agent session you can access.
- Notion-spawn-sessionStart a session with a published Custom Agent. Use get_session_status or wait_session to check its progress.
Show all 17
- Notion-stop-sessionStop a running Custom Agent session you can access.
- Notion-update-data-sourceUpdate a Notion data source's schema, title, or attributes using SQL DDL statements. Returns Markdown showing updated structure and schema. Accepts a data source ID (collection ID from fetch response'
- Notion-update-folderUpdate an existing Notion Folder with an explicit Folder operation. - Use add_files with file upload IDs returned by the upload tools. - Fetch the Folder first, then use remove_files with the exact fi
- Notion-update-page## Overview Update a Notion page's properties or content. ## Properties Notion page properties are a JSON map of property names to SQLite values. For pages in a database: - ALWAYS use the "fetch" tool
- Notion-update-viewUpdate a view's name, filters, sorts, or display configuration. Use "fetch" to get view IDs from database responses. Only include fields you want to change. The "configure" param uses the same DSL as
Changes wait in Needs you
Changes and sends in Notion MCP are held for a person's approval by default. The approval is recorded, and the action is sent once, never twice, with 10 seconds to undo.
Notion MCP questions
Can an agent change data in Notion MCP on its own?
Not by default. Changes and sends in Notion MCP are held for a person's approval. The approval is recorded, and the action is sent once, never twice, with 10 seconds to undo.
What can an agent read in Notion MCP?
This connector lists 25 read actions. Reads run at once, without waiting for approval.
How does Notion MCP connect?
It connects with dcr oauth. Connectors are built and maintained by third-party developers; availability is confirmed during scoping.