What it does
The Notion MCP Server is the official integration maintained by Notion, giving Claude direct read/write access to your Notion workspace via the Notion API. Claude can search, read, and write across pages, databases, and block trees — making your knowledge base an active working partner rather than a static document store.
High-value workflows include: research synthesis (fetch all pages tagged "research" and generate a summary), database automation (add rows to a project tracker from a conversation), documentation writing (draft new pages from bullet points you describe), and knowledge extraction (answer questions by searching your workspace for relevant content).
- Search the entire workspace by keyword or filter
- Retrieve full page content including nested blocks
- Create new pages inside any accessible parent page or database
- Update page properties (title, status, date, select fields)
- Append content blocks (paragraphs, headings, bullets, code, callouts) to a page
- Query database rows with filter and sort expressions
- Create new database rows with property values
- Add and retrieve comments on pages and blocks
How to connect
Create an integration at notion.so/profile/integrations. Then share each page or database you want Claude to access by clicking Share → Add connections and selecting your integration. Copy the Internal Integration Secret as your API key.
export NOTION_API_KEY="secret_your_integration_key" claude mcp add notion -- npx -y @notionhq/notion-mcp-server
Available tools
notion_search— search pages and databases by keyword across the workspacenotion_get_page— retrieve a page's properties and metadatanotion_get_block_children— read the block content of a page or blocknotion_create_page— create a new page under a parent page or databasenotion_update_page— update page property values (title, status, tags, dates)notion_append_block_children— append new content blocks to a pagenotion_query_database— filter and sort database rows using Notion filter objectsnotion_create_page_in_database— add a new row to a database with full propertiesnotion_get_comments— retrieve comments on a page or blocknotion_create_comment— post a comment to a page
Example usage
Ask Claude to populate a project tracker database from meeting notes:
# User prompt
Read the meeting notes page "Sprint 24 Kickoff",
extract all action items mentioned, and add each
as a new row in our "Tasks" database with
owner and due date filled in.
notion_search({ query: "Sprint 24 Kickoff" }) → returns page id: page_abc123 notion_get_block_children({ block_id: "page_abc123" }) → Claude extracts 5 action items notion_create_page_in_database({ database_id: "db_tasks", properties: { Name: "Fix auth timeout", Owner: "Alice", Due: "2026-06-07" } }) → [repeated for each action item]
Page sharing: The Notion API only sees pages and databases your integration has been explicitly shared with. Go to each root page and share it with your integration — child pages inherit access automatically. The integration cannot see your full workspace unless you share the top-level pages.