Notion MCP Server

Connect AI assistants to Notion workspaces for page management, database operations, content search, and workspace automation through the official Notion MCP Server.

May 4, 2026
GitHub starsnpm versionnpm downloads

Overview

The Notion MCP Server is the official Model Context Protocol server from Notion, enabling AI assistants to read, create, update, and search pages and databases across Notion workspaces. With 22 tools covering data source queries, page management, content search, and comments, it provides comprehensive access to Notion's API through natural language.

Official Server:

Developed and maintained by Notion with 4,300+ stars on GitHub

Key Features

📄

Page Management

Create, retrieve, update, and move pages with rich content blocks and properties.

🗄️

Data Source Operations

Query, retrieve, update, and create data sources (databases) with filters, sorts, and templates.

🔍

Content Search

Search across pages and data sources with rich filtering by object type.

💬

Comments & Blocks

Add comments to pages, retrieve block children, and append content blocks.

Available Tools

Quick Reference

ToolPurposeCategory
searchSearch pages and data sources by querySearch
retrieve-a-pageGet page content and propertiesRead
create-a-pageCreate a new page with content blocksWrite
update-a-pageUpdate page propertiesWrite
move-pageMove a page to a different parentWrite
retrieve-block-childrenGet block content from a pageRead
append-blocksAppend content blocks to a pageWrite
retrieve-a-databaseGet database metadataRead
query-data-sourceQuery a data source with filtersRead
retrieve-a-data-sourceGet data source schema and propertiesRead
update-a-data-sourceUpdate data source propertiesWrite
create-a-data-sourceCreate a new data sourceWrite
list-data-source-templatesList available templatesRead
create-commentAdd a comment to a pageWrite

Detailed Usage

search

Search across all pages and data sources in your workspace.

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "search",
  arguments: {
    query: "project documentation",
    filter: {
      value: "page",
      property: "object"
    }
  }
});
create-a-page

Create a new page under a parent page or database.

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "create-a-page",
  arguments: {
    parent: { page_id: "parent-page-id" },
    properties: {
      title: {
        title: [{ text: { content: "New Documentation Page" } }]
      }
    },
    children: [
      {
        object: "block",
        type: "paragraph",
        paragraph: {
          rich_text: [{ text: { content: "Page content here." } }]
        }
      }
    ]
  }
});
query-data-source

Query a data source (database) with filters and sorting.

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "query-data-source",
  arguments: {
    data_source_id: "data-source-id",
    filter: {
      property: "Status",
      status: { equals: "Active" }
    },
    sorts: [
      { property: "Created", direction: "descending" }
    ]
  }
});
create-comment

Add a comment to a page.

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "create-comment",
  arguments: {
    parent: { page_id: "page-id" },
    rich_text: [{ text: { content: "Great work on this!" } }]
  }
});

Installation

{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": [
        "-y",
        "@notionhq/notion-mcp-server"
      ],
      "env": {
        "NOTION_TOKEN": "ntn_****"
      }
    }
  }
}

Setup Guide

1. Create Notion Integration

  1. Go to Notion Integrations
  2. Click "+ New integration"
  3. Give your integration a name (e.g., "MCP Integration")
  4. Select the workspace you want to connect
  5. Configure capabilities (read content, update content, insert content)
  6. Copy the Internal Integration Token (starts with ntn_)

2. Share Pages with Integration

  1. Open a Notion page you want to access
  2. Click "..." menu → "Connections""Connect to"
  3. Select your integration from the list
  4. Repeat for all pages and databases you want to access

Workspace Access:

You can share entire workspace sections by connecting the integration at the top-level page. For read-only access, only enable "Read content" in integration capabilities.

3. Configure MCP Client

Add the configuration from the Installation section above to your MCP client settings (Claude Desktop, Cursor, VS Code Copilot, Zed, etc.).

Common Use Cases

1. Automated Documentation

Create and update documentation pages with rich content blocks:

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "create-a-page",
  arguments: {
    parent: { page_id: "parent-id" },
    properties: {
      title: { title: [{ text: { content: "API Reference" } }] }
    }
  }
});

2. Task Management

Query and manage tasks in a project data source:

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "query-data-source",
  arguments: {
    data_source_id: "ds-id",
    filter: {
      and: [
        { property: "Priority", select: { equals: "High" } },
        { property: "Status", status: { does_not_equal: "Done" } }
      ]
    }
  }
});

Search across all documentation:

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "search",
  arguments: {
    query: "authentication setup",
    filter: { value: "page", property: "object" }
  }
});

4. Meeting Notes Automation

Create structured meeting notes with comments:

use_mcp_tool({
  server_name: "notionApi",
  tool_name: "create-a-page",
  arguments: {
    parent: { page_id: "meetings-page-id" },
    properties: {
      title: { title: [{ text: { content: "Team Sync" } }] }
    }
  }
});

Supported Block Types

The Notion MCP server supports rich content blocks including paragraph, headings, lists, code blocks with syntax highlighting, images, videos, to-do items, toggle lists, callouts, quotes, tables, and column layouts.

Sources