
Notion Local MCP Server: Setup for Claude, Cursor and Other Apps
Lets your assistant search, read and edit the Notion pages you share with an integration token, running on your own computer.
This is the open-source Notion server from Notion that runs on your computer. You create an internal integration in Notion, copy its token and share only the pages you want the assistant to see. Notion also runs a hosted server with a sign-in flow, which is the easier choice for most people. Pick this local one if you want a token you control and a short list of pages it can reach.
Good for
- People who want to limit the assistant to a few Notion pages
- Developers who run the server themselves, including over HTTP
- Teams that want a read-only Notion token for an assistant
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install notion-mcp-server
Claude Code
- 1
Copy this prompt.
Add the notion-mcp-server server to Claude Code. Run this command: claude mcp add notionApi -e NOTION_TOKEN=ntn_**** -- npx -y @notionhq/notion-mcp-server Ask me for NOTION_TOKEN and only put the values in that config, nowhere else. Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Read-only mode: Give the Notion integration only the "Read content" capability.
Create an internal integration at notion.so/profile/integrations, copy the token, then open each page you want to use and connect it to the integration. The README also supports Docker and a local HTTP mode.
From the project README. Source.
Tools
Finds pages and databases by title
Searches your shared Notion content by title.
Try: “Search Notion for "Q3 planning".”
Network ·
post-searchReads a page's properties
Gets a page and its properties by ID.
Try: “Get the page for the roadmap.”
Network ·
retrieve-a-pageReads a whole page as Markdown
Returns the full page content as Markdown, which uses fewer tokens than block data. Can include meeting-note transcripts.
Try: “Read my meeting notes page as Markdown.”
Network ·
retrieve-page-markdownEdits a page using Markdown
Replaces the whole page or makes find-and-replace edits using Markdown.
Try: “Replace the intro of this page with a shorter summary.”
Write ·
update-page-markdownCreates a new page
Creates a page under a parent page or data source.
Try: “Create a page called "Weekly notes" under Team wiki.”
Write ·
post-pageUpdates page properties
Changes properties of an existing page, such as title, status or archived.
Try: “Set the status of this page to Done.”
Write ·
patch-pageMoves a page to a new parent
Moves a page under a different parent page or data source.
Try: “Move this page into the Archive section.”
Write ·
move-pageReads one page property
Gets a single property value from a page.
Try: “What is the due date on this page?”
Network ·
retrieve-a-page-propertyLists the blocks inside a page
Returns the child blocks of a page or block.
Try: “List the blocks on this page.”
Network ·
get-block-childrenAdds blocks to a page
Appends new blocks to the end of a page or block.
Try: “Add a to-do list to the bottom of this page.”
Write ·
patch-block-childrenReads one block
Gets a single block by ID.
Try: “Show me this block.”
Network ·
retrieve-a-blockEdits one block
Changes the content of a single block.
Try: “Fix the typo in this paragraph block.”
Write ·
update-a-blockDeletes a block
Removes a block from a page.
Try: “Delete the last paragraph on this page.”
Delete ·
delete-a-blockSearches a database with filters
Queries a data source (database) with filters and sorts.
Try: “Show tasks due this week sorted by priority.”
Network ·
query-data-sourceReads a database's structure
Gets the properties and schema of a data source.
Try: “What columns does my tasks database have?”
Network ·
retrieve-a-data-sourceReads database details
Gets database details, including its data source IDs.
Try: “Get the details of my projects database.”
Network ·
retrieve-a-databaseCreates a new database table
Creates a data source under a parent page.
Try: “Create a bug tracker database on this page.”
Write ·
create-a-data-sourceChanges a database's properties
Updates the properties of a data source.
Try: “Add a "Priority" column to my tasks database.”
Write ·
update-a-data-sourceLists a database's page templates
Lists the templates available in a data source.
Try: “What templates does the tasks database have?”
Network ·
list-data-source-templatesReads comments on a page
Gets comments from a page or block.
Try: “Show the comments on this page.”
Network ·
retrieve-a-commentAdds a comment
Posts a comment on a page or in a discussion.
Try: “Comment "Looks good" on this page.”
Write ·
create-a-commentLists people in the workspace
Lists users in your workspace.
Try: “Who is in my Notion workspace?”
Network ·
get-usersLooks up one person
Gets a user by ID.
Try: “Look up this user.”
Network ·
get-userShows which integration you are using
Returns the bot user for the token.
Try: “Which integration am I connected as?”
Network ·
get-self
Read from the source code
Permissions
high risk · 3 things to watch
High risk
It can edit and delete pages and blocks, but only in pages you share with the integration. Share only the pages you need, and give the integration just "Read content" if you only want it to read.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
It can delete blocks and rewrite whole pages
Content tools can remove blocks or replace a page body. Create the integration with only "Read content" if you do not want edits.
The token works for every page you share
Anything shared with the integration is readable by the assistant. Share pages one at a time instead of a whole workspace.
It cannot delete databases
The README says the exposed API is limited so databases cannot be deleted through it.
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Give the Notion integration only the "Read content" capability when you create it; writes then fail at Notion. |
|---|---|
| Talks to | Notion API |
| Scopes |
|
Questions
How is this different from the hosted Notion server?
This one runs on your computer and uses an integration token you create. The hosted Notion server is run by Notion, signs you in with your Notion account and has 69 tools.
Is it official?
Yes. It comes from Notion's own GitHub organization.
Do I need an API key?
Yes. Create an internal integration in Notion, copy its token and share the pages you want it to reach. The pages you do not share stay out of reach.
Can I make it read-only?
Yes. When you create the integration, give it only the "Read content" capability. The README suggests this for cautious setups.
Which apps does it work with?
The README gives setup for Cursor, Claude Desktop, Zed and GitHub Copilot CLI. Any app that can start a local server should work.
Can it delete my pages?
It can delete blocks and archive pages, but the README says it cannot delete databases. Share only what you can afford to change.
Information
updated Nov 2, 2026
- Publisher
- Notion (official)
- Package
@notionhq/notion-mcp-server- Registry
- npm
- Transport
- stdio
- Auth
- token in env
- Version
- 2.6.1
- License
- MIT
- Last commit
- Oct 29, 2026
- Open issues
- 163
- Listed in
- Docker MCP Catalog
Other Notion MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 1Hide
- Notion MCP server README · github.com