Notion MCP MCP Server

$git clone https://github.com/dedalus-labs/notion-mcp.git cd notion-mcp uv sync
README.md

Comprehensive tools to interact with the Notion API via OAuth2 authentication

notion-mcp

A Notion MCP server using OAuth2 bearer token auth via the Dedalus framework.

Features

This MCP server provides tools to interact with the Notion API:

User Tools

  • notion_get_user - Retrieve a specific user by ID
  • notion_list_users - List all users in the workspace
  • notion_get_self - Get the authenticated bot user's information

Search Tools

  • notion_search - Search pages and databases by title

Block Tools

  • notion_get_block - Retrieve a block by ID
  • notion_get_block_children - Get child blocks of a parent
  • notion_append_block_children - Append new blocks to a parent
  • notion_update_block - Update a block's content
  • notion_delete_block - Delete (archive) a block

Page Tools

  • notion_get_page - Get a page's metadata and properties
  • notion_get_page_property - Get a specific property from a page
  • notion_create_page - Create a new page
  • notion_update_page - Update a page's properties

Comment Tools

  • notion_get_comments - Retrieve comments from a page or block
  • notion_create_comment - Create a comment on a page

Database Tools

  • notion_query_database - Query a database with filters and sorts
  • notion_get_database - Get database metadata and schema
  • notion_update_database - Update database properties
  • notion_create_database - Create a new database

Installation

# Clone the repository
git clone https://github.com/dedalus-labs/notion-mcp.git
cd notion-mcp

# Install dependencies with uv
uv sync

Configuration

Copy .env.example to .env and configure:

cp .env.example .env

OAuth Configuration

The Notion API requires OAuth2 authentication. The access token is provided at runtime via Dedalus credential exchange.

Required OAuth scopes depend on your use case:

  • Read content: Basic integration capabilities
  • Insert content: Create pages and blocks
  • Update content: Modify existing content
  • Read user information (without email): List users

Usage

Running Locally

cd notion-mcp
uv sync
uv run python src/main.py

The server will start on port 8080.

With Dedalus Platform

In your chat, reference the server with @notion-mcp followed by your instructions:

@notion-mcp Search for all pages containing "meeting notes"
@notion-mcp Create a new page titled "Project Plan" in my workspace

Development

Running Tests

uv run pytest

Linting

uv run ruff check src/
uv run ruff format src/

License

MIT License - see LICENSE for details.

Tools (19)

notion_get_userRetrieve a specific user by ID
notion_list_usersList all users in the workspace
notion_get_selfGet the authenticated bot user's information
notion_searchSearch pages and databases by title
notion_get_blockRetrieve a block by ID
notion_get_block_childrenGet child blocks of a parent
notion_append_block_childrenAppend new blocks to a parent
notion_update_blockUpdate a block's content
notion_delete_blockDelete (archive) a block
notion_get_pageGet a page's metadata and properties
notion_get_page_propertyGet a specific property from a page
notion_create_pageCreate a new page
notion_update_pageUpdate a page's properties
notion_get_commentsRetrieve comments from a page or block
notion_create_commentCreate a comment on a page
notion_query_databaseQuery a database with filters and sorts
notion_get_databaseGet database metadata and schema
notion_update_databaseUpdate database properties
notion_create_databaseCreate a new database

Environment Variables

NOTION_ACCESS_TOKENrequiredOAuth2 bearer token provided via Dedalus credential exchange

Configuration

claude_desktop_config.json
{"mcpServers":{"notion-mcp":{"command":"uv","args":["run","python","src/main.py"],"env":{"NOTION_ACCESS_TOKEN":"<your-token>"}}}}

Try it

Search for all pages containing 'meeting notes'
Create a new page titled 'Project Plan' in my workspace
List all users in my Notion workspace
Query my database for all items with a 'High' priority filter
Add a comment to the block with ID 123 saying 'Please review this section'

Frequently Asked Questions

What are the key features of Notion MCP?

Full CRUD operations for Notion pages, databases, and blocks. OAuth2 bearer token authentication via Dedalus framework. Advanced database querying with filters and sorting. Comment management for collaborative workflows. User and workspace metadata retrieval.

What can I use Notion MCP for?

Automating the creation of project status pages from chat. Searching across a large Notion workspace for specific documentation. Syncing external data into Notion databases via AI instructions. Managing workspace users and permissions through a unified interface. Appending meeting notes or updates to existing Notion blocks.

How do I install Notion MCP?

Install Notion MCP by running: git clone https://github.com/dedalus-labs/notion-mcp.git cd notion-mcp uv sync

What MCP clients work with Notion MCP?

Notion MCP works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Use Notion MCP with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free