Notion MCP server
Search, read and update pages and databases in your Notion workspace, through Notion's hosted MCP server.
How it connects
New to MCP? What is an MCP server?
- Runs on
- Notion's own MCP endpoint
- Connects with
- Your Notion account, connected once for your org
- Category
- Productivity
What it does
Notion runs this server at https://mcp.notion.com/mcp. An agent connected to it can search your workspace, read pages and databases, query database rows with SQL, and create or edit pages, databases, views and comments. It acts as the person who signed in, so it reaches whatever that person can reach in the chosen workspace. Only workspace members can connect. Guests cannot.
Tools
The hosted server listed 49 tools to a connected client on Oct 16, 2026. Notion's supported tools page describes a few more, such as notion-delete-pages and comment editing, which did not appear in that list. Which tools you get depends on your plan, so run notion-get-tool-access to see your own.
Search and read
| Tool | What it does | Reads or changes |
|---|---|---|
notion-search | Searches the workspace and connected sources, and looks up users. AI search where the plan includes it, keyword search otherwise. Some filters need Business or Enterprise. | Reads |
notion-fetch | Gets a page, database, data source or view by URL or ID. | Reads |
notion-query-data-sources | Queries one data source with read-only SQL, returns rows with formatting kept, or runs a saved view. SQL is unlimited on Business and Enterprise with Notion AI and metered on other plans. | Reads |
notion-query-multiple-data-sources | One read-only SQL query across 2 to 100 data sources. Needs Business or Enterprise with Notion AI. | Reads |
notion-query-meeting-notes | Queries the user's meeting notes. Needs Business or higher with Notion AI. | Reads |
notion-list-favorite-pages | Lists the user's favorite pages. | Reads |
notion-list-private-pages | Lists pages in the user's private sidebar section. | Reads |
notion-list-recent-pages | Lists pages the user viewed recently. | Reads |
notion-list-shared-pages | Lists pages in the user's shared sidebar section. | Reads |
notion-memory-search | Searches memories that the user's agents saved in earlier sessions. | Reads |
Pages, databases and views
| Tool | What it does | Reads or changes |
|---|---|---|
notion-create-pages | Creates pages with properties and content, optionally from a template. | Changes |
notion-update-page | Updates a page's properties, content, icon or cover. Replacing the content can delete child pages. | Changes |
notion-move-pages | Moves pages or databases to a new parent. | Changes |
notion-duplicate-page | Copies a page. Runs as an async task. | Changes |
notion-restore-pages | Restores up to 20 pages or databases from Trash. | Changes |
notion-create-database | Creates a database with its first data source and view. | Changes |
notion-update-data-source | Changes a data source's schema with SQL DDL (add, drop, rename or retype properties), its title or its page layout. Can move it to Trash, which the server says cannot be undone without the Notion app. | Changes |
notion-create-view | Adds a database view with filters, sorts and grouping. | Changes |
notion-update-view | Changes a view's name, filters, sorts or display. | Changes |
notion-get-async-task | Checks on an async task such as a duplicate. | Reads |
Comments, people and teams
| Tool | What it does | Reads or changes |
|---|---|---|
notion-create-comment | Adds a comment to a page or block, or replies in a discussion. | Changes |
notion-get-comments | Lists comments and discussions on a page. | Reads |
notion-get-users | Lists or looks up workspace members and guests. | Reads |
notion-get-self | Returns the connected user and workspace. | Reads |
notion-get-teams | Lists teamspaces. | Reads |
Files and folders
| Tool | What it does | Reads or changes |
|---|---|---|
notion-create-file-upload | Creates a short-lived URL for uploading a local file, up to 20 MiB. | Changes |
notion-create-attachment | Creates an attachment from text, a public HTTPS URL or a finished upload. | Changes |
notion-download-attachment | Downloads the text of an attachment this connection created, up to 200 KiB. | Reads |
notion-get-file-download-urls | Returns signed download URLs for files cited in page content. | Reads |
notion-create-folder | Creates an empty folder under a page. | Changes |
notion-update-folder | Adds or removes files in a folder, or creates a subfolder. | Changes |
Skills
| Tool | What it does | Reads or changes |
|---|---|---|
notion-get-enabled-skills | Lists the Skills the user has turned on. | Reads |
notion-update-enabled-skills | Turns Skills on or off for the user. | Changes |
notion-convert-page-to-skill | Marks a page as a Skill without changing its content. | Changes |
notion-download-skill | Downloads a Skill as an archive or Markdown. | Reads |
notion-upload-skill | Imports an Agent Skills directory into a Skills database page. | Changes |
Custom Agent sessions
These need Notion AI and access to Custom Agents.
| Tool | What it does | Reads or changes |
|---|---|---|
notion-search-agents | Finds Custom Agents by name or description. | Reads |
notion-spawn-session | Starts a session with a published Custom Agent and sends it a first message. | Changes |
notion-send-message-to-session | Sends a message to a running session. | Changes |
notion-get-session-status | Gets a session's state. | Reads |
notion-wait-session | Waits for a session to make progress or finish. | Reads |
notion-stop-session | Stops a session. | Changes |
notion-query-sessions | Finds agent sessions. | Reads |
notion-search-sessions | Searches agent sessions. | Reads |
notion-list-session-events | Lists a session's events. | Reads |
notion-read-session-event | Reads one session event. | Reads |
Plan and access
| Tool | What it does | Reads or changes |
|---|---|---|
notion-get-tool-access | Reports which tools and parameters your plan allows on this connection. | Reads |
notion-check-mcp-next-steps | Returns a Business plan suggestion when a fetch result asks the client to call it. | Reads |
notion-show-advanced-analysis-next-steps | Returns an upgrade card when a multi-source query needs the full version of Notion MCP. | Reads |
Set it up
Directly
In Claude Code, add the server and sign in:
claude mcp add --transport http notion https://mcp.notion.com/mcpThen run /mcp in a session and finish the OAuth flow in your browser. For Cursor, put this in .cursor/mcp.json in the project, or in ~/.cursor/mcp.json for every project:
{
"mcpServers": {
"notion": {
"url": "https://mcp.notion.com/mcp"
}
}
}Enable Notion in Cursor's MCP settings and complete the sign-in. If your client cannot do Streamable HTTP, Notion also serves https://mcp.notion.com/sse. Business and Enterprise workspaces can skip the browser sign-in: a workspace owner creates a token with New MCP token in Notion's developer portal, and the client sends it as a bearer token. Notion's connection guide has the details, and the general client steps are in How to add MCP servers to Claude Code and How to set up MCP servers in Cursor.
Through Statio
Install Notion from the catalog and press Connect. You approve access on Notion's own page and land back on the server. The connection belongs to your organization, so one person connects it and everyone granted the server uses it. Nothing is granted by default, so grant the tools you want under Permissions.
The Statio desktop app then writes the client config for you. By hand, Cursor points at the local proxy, using the server name shown in your dashboard:
{
"mcpServers": {
"notion": {
"url": "http://127.0.0.1:7777/notion/mcp"
}
}
}For Claude Code, run mcphub config claude-code. Start a new session afterwards so the client reloads its tools. If the tools don't show up, see How to debug an MCP server that won't connect.
What to hold back
Notion is where teams keep specs, runbooks and meeting notes, which makes it the first thing people hand an agent for context. Most of those agents only need notion-search, notion-fetch and notion-query-data-sources. The write tools here edit shared documents as you, and several of them are hard to undo.
notion-update-pagecan replace a page's whole body. On a page with subpages, a replace can delete them. A writing agent asked to "tidy up the onboarding doc" can take the nested pages with it.notion-update-data-sourceruns schema DDL.DROP COLUMNremoves a property from every row at once, and anALTER COLUMNon a select property drops any option the agent didn't list. Itsin_trashflag moves the whole data source to Trash. Keep it from anything that only fills in rows.notion-move-pageschanges a page's parent. Pages usually take their sharing from where they sit, so a move can put a private page in a teamspace, or hide a shared one.notion-create-commentposts under your name. A summariser that comments on every page it reads becomes noise in other people's notifications.notion-upload-skill,notion-convert-page-to-skillandnotion-update-enabled-skillswrite instructions that agents load later. An agent that read a hostile page could turn that text into a standing instruction. Treat these as admin tools.notion-spawn-sessionandnotion-send-message-to-sessionhand work to a Notion Custom Agent. What that agent then does in Notion runs on its own setup, outside the tools you granted here.
Reading carries its own risk. Anyone who can edit a page can plant text that an agent will read as instructions, so an agent that reads Notion and can also write somewhere else is the case to watch. The lethal trifecta: how AI agents leak data covers that pattern. Per-tool grants are how you keep the write side off, and MCP permissions explains how they work.
Questions
What Statio adds
- You choose which of its tools each agent may call. A tool you hold back is removed from that agent's tool list, and a call to it is refused.
- Agents get a Statio token, never the Notion one.
- Every call is recorded with the agent that made it, when, how long it took and whether it succeeded.
Lock down your first tool in minutes.
Three MCP servers, one of them hosted, and 10,000 calls a month, free and without a card. If you outgrow it the next plan is $19.
Two steps: create your account, then install the desktop app on each machine that runs an AI client.
- Keys encrypted at rest, never handed to an agent
- Cancel anytime, nothing is deleted
- How Statio handles credentials