100+ integrations are ready to connect to your AI.Connect your first MCP

Notion MCP server for your AI

Query databases with filters, create and update pages with real property values, append or edit block content, and leave comments — in the workspace areas you've shared with the integration.

PopMCPNotion

Give me every row in the Roadmap database still marked Blocked

Supported Notion tools

Every page, database, block, comment, user and file-upload operation the server exposes, plus the workspace changes it can watch for.

notion_append_block_children

Append (or insert) new child blocks under a block or page.

notion_delete_block

Move a block to the trash (soft delete).

notion_query_data_source

Query the rows (pages) of a specific data source, with optional filter + sorts + pagination.

notion_retrieve_block

Retrieve a single block by id.

notion_retrieve_block_children

List the FIRST-LEVEL child blocks of a block or page.

notion_retrieve_data_source

Retrieve a data source's full column schema under `properties` (under 2025-09-03 the schema lives on the data source, not the database).

notion_retrieve_database_data_sources

Retrieve a database under the 2025-09-03 API so the response carries its `data_sources` array.

notion_update_block

Update a block's text/content or toggle archived.

notion_create_comment

Add a comment.

notion_create_database

Create a database under a parent page.

notion_create_page

Create a page.

notion_list_comments

List OPEN (unresolved) comments on a page or block.

notion_query_database

Query the rows (pages) of a database in ONE step, with optional filter + sorts + pagination.

notion_retrieve_database

Retrieve a database's definition, including its full column schema under `properties`.

notion_retrieve_page

Retrieve a page's PROPERTIES.

notion_retrieve_page_property

Retrieve a single page property value in full.

notion_update_database

Update a database's title, description, icon/cover, is_inline, archived state, or column schema (`properties`).

notion_update_page

Update a page's property values, icon, or cover — or trash/restore it with `archived`.

notion_list_users

List all users (members and bots) in the workspace.

notion_retrieve_bot_user

Retrieve the bot user for THIS token ('who am I').

notion_retrieve_user

Retrieve a single user by id.

notion_search

Search by TITLE across every page and database shared with this integration.

notion_create_data_source

Create a new data source under an EXISTING database container.

notion_update_data_source

Update a data source's title, column schema (`properties`), or trash state.

notion_complete_file_upload

Finalize a multi_part file upload after all parts have been sent.

notion_create_file_upload

Start a file upload and get a file_upload id to attach later.

notion_list_file_uploads

List file uploads created by this integration, optionally filtered by status.

notion_retrieve_comment

Retrieve a single comment by its id.

notion_retrieve_file_upload

Retrieve a file upload's status.

notion_update_comment

Edit the text of an existing comment.

Connect Notion to your AI

Credentials off one Notion screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

At notion.so/my-integrations, create an integration for your workspace and paste its Internal Integration Secret — the only field. The connection covers that one workspace, and nothing in it until you share pages.

Internal Integration Secret••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • Give me every row in the Roadmap database still marked Blocked

    • search
    • retrieve_database
    • query_database
  • Move every Q2 row in the Content Calendar from Draft to In Review

    • search
    • query_database
    • update_page
  • Create a meeting notes page under Engineering with today's agenda as bullets

    • search
    • create_page
    • append_block_children
  • Who left the open comments on the launch brief and what did they ask

    • search
    • list_comments
    • retrieve_user

Use Notion from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Notion MCP server questions

What teams ask before putting Notion behind an AI client.

I pasted the secret but the agent can't find any of my pages. What's missing?

A Notion integration starts with access to nothing at all. Open each top-level page or database you want it to use, click the ••• menu at the top right, choose Connections, and add the integration — access then cascades to every child page underneath. Until you do that, search and query_database come back empty even though the credential is perfectly valid.

Where do I find the Internal Integration Secret?

In Notion, go to Settings → Connections → Develop or manage integrations, or open notion.so/my-integrations directly. Create a new integration, pick the workspace it belongs to, and copy the Internal Integration Secret. That one value is all the connect form asks for — there is no OAuth popup to click through and no token to refresh later.

What can the agent actually see in my workspace?

The secret is issued against a single workspace, and inside it the agent sees only the pages and databases you added the integration to, plus everything nested below them. Search matches on title across that shared set rather than the body text of a page, so the reliable pattern is to find a page by name and then read its blocks. Workspace members and bots come from their own user tools, which is how the agent resolves the person behind a comment or an owner property.

Why do my database columns come back on a data source instead of the database?

Under Notion's 2025-09-03 API a database is a container holding one or more data sources, and the column schema lives on the data source rather than the database. retrieve_database_data_sources returns the database with its data_sources array, and retrieve_data_source gives you the full properties schema for one of them. If you would rather not walk both levels, query_database still runs a filtered, sorted row query in a single step; query_data_source targets one specific source.

Can the agent delete something permanently?

No — the destructive operations here are trash operations. delete_block moves a block to the trash as a soft delete, update_page trashes or restores a page through its archived flag, and update_data_source can set a trash state, so items go to the trash rather than disappearing. The edits worth holding for write approval are schema changes through update_database and update_data_source, because changing a column definition affects every row at once.

Which Notion changes can it watch for?

Change detection covers pages created, updated, trashed or archived, and page content changing when blocks are added, edited or removed. On the database side it watches databases being created, rows added or updated, a row's status or select property moving to a different value, and rows added to a data source inside a database. It also fires on new comments and on a new person appearing in the workspace. Page created only fires where the integration has access, so the sharing step decides your trigger coverage as well.

Do I have to run or host the Notion MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 22 of the 30 tools load by default?

Loading 30 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 22-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 30 here. A trigger is something PopMCP watches for you: 11 Notion events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Notion.

Connect Notion to your AI in minutes

Launch a hosted MCP endpoint for Notion, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP