home / mcp / notion mcp server

Notion MCP Server

Notion MCP Server enables LLMs to access Notion workspaces with optional Markdown conversion to save tokens.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "suekou-mcp-notion-server": {
      "command": "npx",
      "args": [
        "-y",
        "@suekou/mcp-notion-server"
      ],
      "env": {
        "NOTION_API_TOKEN": "your-integration-token",
        "NOTION_MARKDOWN_CONVERSION": "true"
      }
    }
  }
}

This MCP Server enables your Notion workspace to be queried and manipulated by a large language model, while also providing optional Markdown conversion to reduce context size and improve token efficiency during conversations.

How to use

You will run the MCP Server alongside your Claude Desktop or other MCP client to access Notion data inside your workflows. The server exposes a set of tools that let you retrieve, update, search, and manage Notion pages, databases, blocks, comments, and more. You can choose between running the server locally (stdio) or connecting to a remote MCP instance (http) if your setup provides a URL. Use the markdown conversion option to make responses easier to read when you are viewing content, with the trade-off that editing content may lose some structural fidelity.

Configuration overview

Configure your MCP client to start the Notion MCP Server. You have two explicit ways shown to run the server locally via a command line tool or as a node-based process. In both cases you must provide your Notion integration token as an environment variable.

Start the server via npx (recommended)

Use this start configuration to run the Notion MCP Server with npx. This runs directly from the npm registry without building a local bundle.

Code block: npx based configuration

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@suekou/mcp-notion-server"],
      "env": {
        "NOTION_API_TOKEN": "your-integration-token"
      }
    }
  }
}

Start the server via Node (built file)

If you prefer to run a built local file, use node to execute the prepared bundle and pass the path to the entry file.

Code block: Node based configuration

{
  "mcpServers": {
    "notion": {
      "command": "node",
      "args": ["your-built-file-path"],
      "env": {
        "NOTION_API_TOKEN": "your-integration-token"
      }
    }
  }
}

Available tools

notion_append_block_children

Append child blocks to a parent block by providing the block_id and the list of new blocks to add.

notion_retrieve_block

Retrieve detailed information about a specific block using its block_id.

notion_retrieve_block_children

Get the children of a block, with optional pagination controls start_cursor and page_size.

notion_delete_block

Delete a specific block identified by block_id and return a deletion confirmation.

notion_retrieve_page

Retrieve detailed information about a page using its page_id.

notion_update_page_properties

Update properties of a page by supplying the page_id and the new properties object.

notion_create_database

Create a new database with a given parent and properties, with an optional title.

notion_query_database

Query a database by its database_id with optional filters, sorts, and pagination.

notion_retrieve_database

Retrieve detailed information about a database by its database_id.

notion_update_database

Update database information, including title, description, and properties.

notion_create_database_item

Create a new item in a Notion database by providing the database_id and item properties.

notion_search

Search pages or databases by title with optional filters, sorts, and pagination.

notion_list_all_users

List all users in the Notion workspace (note: enterprise plan required for full access).

notion_retrieve_user

Retrieve a specific user by user_id in Notion.

notion_retrieve_bot_user

Retrieve information about the bot user associated with the current token.

notion_create_comment

Create a comment in Notion with rich_text content and optional parent or discussion context.

notion_retrieve_comments

Retrieve unresolved comments from a Notion page or block with optional pagination.