- Brand
- Notion
- Category
- Productivity
- Primary Subcategory
- Collaborative Docs & Workspaces
Integration details
Description
Search and reference your Notion pages
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Collaborative Docs & Workspaces
- Secondary Subcategories
- None listed
- Brand
- Notion
- Access
- Account required
- First tracked
- 2026-09-14
- Tool count
- 93
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your Plugin is discoverable
ChatGPT now suggests Plugins on its own when they match a user's request.Notion is being suggested, and your Discoverability Score is being created. It will show here as soon as it’s ready.
What discovery looks like

Get alerts for Notion
Get updates when Notion’s Discoverability Score or category rank changes.
Competing in ChatGPT Collaborative Docs & Workspaces
View Category93 tools agents can invoke
Apply a reviewed XL database table schema using the current and plan fingerprints returned by planning.
notion-xldb-apply-table
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.
notion-calendar-cancel-events
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.
notion-check-mcp-next-steps
Records when you have completed a guided set up flow of the Notion MCP. Only call this tool when explicitly asked.
notion-complete-mcp-setup
Mark 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 user wants the page's current contents designated as a skill. 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.
notion-convert-page-to-skill
Creates 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 provided, "Name" is auto-added. - database_type: one of tasks, projects, or skills. The database is created with the canonical required properties and typed metadata used by Notion. For schema, use CREATE TABLE with double-quoted column names and single-quoted type options. If no title property is provided, "Name" is auto-added. 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. Returns Markdown with schema, SQLite definition, and data source ID in <data-source> tag for use with update_data_source and query_data_sources tools.
notion-create-database
Creates 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 the page's content. A nested Folder is appended to its parent Folder's content. The Folder inherits access from its parent. This tool creates only the empty Folder. It is non-idempotent and creates a new Folder on every successful call.
notion-create-folder
Create a column in an XL database table.
notion-xldb-add-column
Create a join from an XL database view.
notion-xldb-add-view-join
Create a property from an XL database view.
notion-xldb-add-view-column
Create 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 SVG files. - source_url for a direct, publicly reachable HTTPS file URL. - source_file_id for a file this exact integration already uploaded. When create_file_upload is available, use it for local files so the upload has the same owner. For content and source_url, filename must use a supported extension and content_type must agree with it. Omit content_type to infer it. source_file_id takes neither because the stored upload carries both. For larger files, redirects, or authenticated downloads, upload through the Notion File Upload API with this integration's token and pass source_file_id. The response includes a markdown_source value. To place the uploaded file on a page, pass that source to create-pages or update-page. To attach it to a comment, include suggested_markdown on a separate line in create-comment markdown. Unattached uploads remain temporary and are deleted once they expire: content and source_url open a fresh one-hour window, while source_file_id keeps the window that opened when the file was first uploaded, so place that source promptly and upload the file again if it has already expired. "HTML", "HTML block", "HTML artifact", and "HTML embed" all mean an HTML file placed with <embed source="file-upload://..." /> so Notion renders the sandboxed preview. Never place HTML in a code block or file block. Use <file source="file-upload://..." /> for other files.
notion-create-attachment
Create a new view on a Notion database. Use fetch first to get database_id, parent_page_id, and the collection:// data_source_id. The caller needs edit access to the database or parent page and access to the data source. Provide exactly one placement: database_id adds a view tab to that database; parent_page_id appends an inline linked database view to that page. Always provide data_source_id. Supported types: table, board, list, calendar, timeline, gallery, form, chart, map, and dashboard. The optional configure field uses the view DSL for filters, sorts, grouping, and display. Read notion://docs/view-dsl-spec through the MCP resource interface, or pass that URI to the Notion fetch tool. Do not guess the syntax.
notion-create-view
Create 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 field and include every header returned in `upload_headers`. Files are limited to 20 MiB for this single-part upload flow, and workspace file-size limits still apply. The upload response includes `markdown_source` and `suggested_markdown`, which can be passed directly to create-pages or update-page, or included on a separate line in create-comment markdown to attach the file. The URL is short-lived, can upload only the FileUpload created by this call, and runs as this same integration. <examples> 1. Prepare an image upload: {"filename":"diagram.png"} 2. Prepare a PDF upload with an explicit MIME type: {"filename":"report.pdf","content_type":"application/pdf"} </examples>
notion-create-file-upload
Add a comment to a page or specific content. Provide `page_id` to identify the page, then choose ONE targeting mode: - `page_id` alone: Add a top-level comment to the page - `page_id` + `selection_with_ellipsis`: Highlight selected text within one block, or comment on the block where the match starts if no inline highlight can be resolved. No matching content returns an error. - `reply_to_comment_id`: Reply to a comment using its `id` from get-comments (page_id is still required) - `discussion_id`: Reply to an existing discussion (page_id is still required) Provide exactly one content format: - `markdown`: Preferred. Inline Notion-flavored Markdown for comment 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 headings, lists, tables, blockquotes, and fenced code blocks is stored as plain comment text rather than rendered as blocks. - `rich_text`: Array of rich text objects.
notion-create-comment
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.
notion-calendar-create-events
Creates one or more Notion pages with the specified properties and content. ## Core rules **IMPORTANT**: Before writing page content, 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. Do NOT guess or hallucinate Markdown syntax. Do not put the page title at the top of content; set it in properties. By default, use native Notion mentions for references you add to existing Notion pages, databases, data sources, people, and dates. Use Markdown links only for external URLs or when the user requests a plain link. For a person, use a user mention with their user URL, found with search using query_type "user"; do not write "@Name" as plain text. For a specific date or time, such as a due date or meeting time, use a date mention. The Markdown specification gives the mention syntax. Use a named destination as parent. Otherwise use "creation_mode": "draft" for a durable private page. Do not combine draft mode with parent, or move or share it without direction. For a database destination, ALWAYS fetch first. Use its collection:// URL as data_source_id, exact property names, and title property. Never put a database ID in page_id. Outside a database, the only allowed property is the required "title". For reusable instructions, set "is_skill": true. 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. Do not mark ordinary pages or drafts as skills. Report any "warnings" in the result to the user.
notion-create-pages
Delete a column from an XL database table.
notion-xldb-remove-column
Delete a join from an XL database view.
notion-xldb-remove-view-join
Delete a property from an XL database view.
notion-xldb-remove-view-column
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.
notion-delete-comment
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.
notion-delete-databases
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.
notion-delete-pages
Stop syncing an XL database view into Notion. Keep its pages and make them editable.
notion-xldb-detach-view-data-source
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. 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.
notion-download-skill
Download 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 requesting integration, have completed uploading, and use a supported text format such as HTML, Markdown, plain text, CSV, JSON, XML, CSS, YAML, TSV, calendar, GPX, or SVG. The response contains the complete text in `content` so you can save it locally, edit it, and call `create-attachment` again to upload a new version. Downloads are limited to 200 KiB. This tool does not fetch arbitrary URLs or return binary files. For larger or binary attachments, use the signed file URL returned when reading the containing Notion page. <examples> 1. Download a text attachment: {"file_upload_id":"12345678-90ab-cdef-1234-567890abcdef"} </examples> 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.
notion-download-attachment
Duplicate 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 by the returned ID or URL to be populated immediately. Let the user know that the duplication is in progress and that they can check back later using the 'fetch' tool or by clicking the returned URL and viewing it in the Notion app.
notion-duplicate-page
Retrieves details about a Notion entity (page, database, data source, or saved database view) by URL or ID. Provide a URL or ID in `id`. Make multiple calls for multiple entities. For pages, use path, verification, edit time, and truncation metadata to assess the source. Treat recency as context, not proof. Report material uncertainty when sources conflict. Pages use Notion-flavored Markdown. For the complete specification, 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. Pass a `notion://docs/*` URI as `id` to read that MCP documentation resource. Databases return data sources in `<data-source url="collection://...">` tags. Fetch the collection:// URL for its schema and use it with update_data_source or query_data_sources. Multi-source databases return more than one data source. Saved views return filters, sorts, and display settings. To query their rows, use query_data_sources with `mode: "view"`. A null cover or icon means none; an omitted one means unavailable, not absent. Keep a page's Markdown icon attribute for edit round trips. File URLs expire; re-fetch to refresh them. Uploaded media blocks use stable `notion-file-block://` sources; keep them when editing or copying Markdown. Get download URLs with get_file_download_urls, or set `include_file_urls` to true for a `references` map. Before relying on page content, check `truncated`, `unknown_block_count`, and `unknown_block_ids` for omitted subtrees. Set `include_discussions` to true for discussion counts, markers, previews, and `discussion://` URLs that correlate with get_comments. Use get_tool_access to check tool availability, parameter restrictions, and upgrade links for this connection.
fetch
List calendars grouped by connected account. Use this to identify a target or conflict calendar before another Calendar operation.
notion-calendar-list-calendars
Get the latest turn's status for a Custom Agent session without waiting. 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.
notion-get-session-status
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>
notion-get-file-download-urls
Read whether an XL database column is optimized and inspect its index build status.
notion-xldb-get-column-optimization
Read the provisioning status of this workspace's XL database storage.
notion-xldb-get-workspace-status
Read an XL database table's indexes, view filters and sorts, and column usage to plan optimizations.
notion-xldb-get-table-optimization-context
Read an XL database table's columns, select options, and unique constraints.
notion-xldb-get-table-schema
Read an XL database view's filters, sorts, and projected columns.
notion-xldb-get-view
Read an XL database view's joins and their selected columns.
notion-xldb-get-view-joins
Retrieves 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", "succeeded", or "failed". When the task has succeeded, the operation's result is included; when it has failed, an error is included instead. Poll this tool with the "task_id" from the original tool's "async_task" response. Wait briefly between polls — the original response includes a suggested backoff. <examples> 1. Check a task's status: {"task_id": "task_abc123"} </examples>
notion-get-async-task
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.
notion-get-self
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.
notion-get-enabled-skills
Get 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, pending suggested edits use `kind="suggested_edit"` and their `discussion://` URL can be passed to `get_suggested_edit`. Resolved suggestions stay retired. Check `suggested_edits_status` to distinguish an empty result from unavailable suggestion discovery. Comments you wrote have `by-you="true"`. Tip: Use the `fetch` tool with `include_discussions: true` first to see where discussions are anchored in the page content, then use this tool to retrieve full discussion threads. The `discussion://` URLs in the fetch output match the discussion IDs returned here. Parameters: - `include_all_blocks`: Include discussions on child blocks (default: false) - `include_resolved`: Include resolved discussions (default: false) - `discussion_id`: Fetch a specific discussion by ID or URL <example>{"page_id": "page-uuid"}</example> <example>{"page_id": "page-uuid", "include_all_blocks": true}</example> <example>{"page_id": "page-uuid", "discussion_id": "discussion://pageId/blockId/discussionId"}</example>
notion-get-comments
Get current tool availability, parameter restrictions, and available upgrade links for this Notion connection. Call with {} to get the full access map before using a conditionally available tool, unless current access is already in context. Reuse this map across tools. When current_tool_access.ai_search.status is "available", use ai_search for every content search; otherwise use search. Tool availability and restricted_parameters are independent: omit restricted options even when the tool is available. Optionally pass tool_names, for example ["search", "ai_search"], to narrow the result. Unknown names and tools not exposed to this connection are omitted. When ai_search is available, legacy search is also omitted from this map; user lookup uses ai_search with query_type="user". This tool does not grant access or change the workspace.
notion-get-tool-access
Retrieves 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 iterate through all users in the workspace. <examples> 1. List all users (first page): {} 2. Search for users by name or email: {"query": "john"} 3. Get next page of results: {"start_cursor": "abc123"} 4. Set custom page size: {"page_size": 20} 5. Fetch a specific user by ID: {"user_id": "00000000-0000-4000-8000-000000000000"} 6. Fetch the current user: {"user_id": "self"} </examples>
notion-get-users
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>
notion-get-groups
Retrieves 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 maximum of 10 results. <examples> 1. List all teams (up to the limit of each type): {} 2. Search for teams by name: {"query": "engineering"} 3. Find a specific team: {"query": "Product Design"} </examples>
notion-get-teams
Insert or update XL database rows by their unique keys, in batches of up to 1,000 rows. Keep each request under 500 KB.
notion-xldb-apply-rows
List short summaries of saved events in a Custom Agent session. 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.
notion-list-session-events
List a page of the space's XL database tables.
notion-xldb-list-tables
List an XL database table's views.
notion-xldb-list-views
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.
notion-calendar-list-calendar-resources
Find contacts by name or email across the user's connected Calendar accounts. Use this to resolve attendee identities before another Calendar operation.
notion-calendar-list-contacts
Notion ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Notion's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Notion alternatives on ChatGPT?
As of 2026-11-02, Notion competes with Abilitya Assistant, Accelflow Space, ArtifactBridge, AttachPage, Caipi, Clinked, Coda, Descry and 17 more in ChatGPT Collaborative Docs & Workspaces, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.