home / mcp / notion mcp server

Notion MCP Server

Provides a Notion-integrated MCP server that enables page and database operations via MCP clients.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "v-3-notion-server": {
      "command": "node",
      "args": [
        "/absolute/path/to/notion-server/build/index.js"
      ],
      "env": {
        "NOTION_API_KEY": "your_notion_api_key_here"
      }
    }
  }
}

The Notion MCP Server lets you connect a compatible MCP client to your Notion workspace, enabling search, read, create, update, and collaboration features via standardized tools. It provides rich Markdown support and database interactions so you can automate and extend Notion directly from your MCP client.

How to use

You can interact with Notion through your MCP client by performing page and database operations. Use search to locate pages, read content with clean formatting, create pages with Markdown, and update existing pages or blocks. You can add and fetch comments, and perform block-level updates or deletions. For databases, you can create and manage databases, add or update items, and query with filters and sorts using supported property types like Title, Rich text, Number, Date, Checkbox, Select, and Multi-select.

How to install

Prerequisites you need before installing are Node.js v16 or higher and a Notion API key. You will also want a compatible MCP client (for example Claude Desktop) to connect to the server.

Step-by-step commands to set up the server locally:

# 1) Clone the repository
git clone https://github.com/v-3/notion-server.git
cd notion-server

# 2) Install dependencies
npm install

# 3) Set up your environment
# Create .env file
echo "NOTION_API_KEY=your_notion_api_key_here" > .env

# Or export directly
export NOTION_API_KEY=your_notion_api_key_here

# 4) Build the server
npm run build

Configuration and usage notes

Configure your MCP client to use the local Notion MCP server by pointing it to the build output. The server is started via Node and runs from the built index file.

# Claude Desktop setup example
{
  "mcpServers": {
    "notion": {
      "command": "node",
      "args": ["/absolute/path/to/notion-server/build/index.js"],
      "env": {
        "NOTION_API_KEY": "your_notion_api_key_here"
      }
    }
  }
}

Usage examples

Create a Page

const result = await notion.create_page({
  parentPageId: "page_id",
  title: "My Page",
  content: "# Welcome\nThis is a test page."
});

Query a Database

const result = await notion.query_database({
  databaseId: "db_id",
  filter: {
    property: "Status",
    select: {
      equals: "In Progress"
    }
  }
});

Available tools

search_pages

Search Notion pages by a query string and return matching results.

read_page

Read page content by page ID and return formatted content with markdown support.

create_page

Create a new page under a specified parent page with optional markdown content and properties.

update_page

Update the content or properties of an existing page by page ID.

add_comment

Add and retrieve comments on pages.

block_operations

Perform block-level updates and deletions within a page.

create_database

Create a new database under a specified parent and define its properties.

query_database

Query a database with filters and sorting options.