home / mcp / notion mcp server

Notion MCP Server

Bridges AI assistants with Notion to view, search, create, and update pages, databases, and blocks.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "emmanuelsystems-mcpnotionslack": {
      "command": "node",
      "args": [
        "C:\\path\\to\\notion-mcp-server\\server.js"
      ],
      "env": {
        "NOTION_API_KEY": "your_notion_api_key_here"
      }
    }
  }
}

You can run a lightweight MCP server that connects Claude or other AI assistants to your Notion workspace. It lets the AI view, search, and manage your Notion databases, pages, and blocks, enabling powerful automation and content workflows.

How to use

You interact with the Notion MCP Server through your MCP client setup. After you configure the local MCP server, you start it from your client environment and point your client (such as Claude Desktop) at the local server so the AI can access your Notion workspace. Use practical prompts like asking the AI to list databases, create a page in a database, or update a page block. The server handles authentication with your Notion API key and enforces per-page or per-database access permissions.

How to install

Prerequisites: Node.js (version 14 or higher), a Notion account, and Claude Desktop if you plan to use Claude.

1. Obtain your Notion API key by creating an integration and copying the internal integration token starting with secret_.

2. Install the MCP server dependencies locally. Open a terminal and run the following commands sequentially.

npm install

Connecting Claude Desktop to the MCP server

Create or edit Claude Desktop’s configuration so it can launch the MCP server as a local process. The configuration wires the server script to the Notion API key you generated.

{
  "mcpServers": {
    "notion": {
      "command": "node",
      "args": [
        "C:\\path\\to\\notion-mcp-server\\server.js"
      ],
      "env": {
        "NOTION_API_KEY": "your_notion_api_key_here"
      }
    }
  }
}

Testing the connection

Open Claude and start a new conversation. Prompt Claude to interact with your Notion workspace, for example: “Show me a list of my Notion databases” or “Create a new page in my Tasks database with title ‘Test Task’.” The MCP server should respond by performing the requested Notion actions through your configured integration.

Security and access control

Notion requires explicit access sharing. Make sure to grant access to the integration on each page or database you want the AI to access. Keep your Notion API key secret and rotate it if you suspect it has been compromised.

Troubleshooting

Common issues include connection failures, access denial, or the server not starting. Verify that the Claude Desktop configuration points to the correct server path, that the Notion API key is valid, and that Node.js is installed correctly. If access is denied, recheck that you’ve shared the pages/databases with the integration and that the API key has the necessary permissions.

Testing and development notes

During setup, ensure you copy the exact content for the Claude Desktop config and restart Claude after saving your changes. When you modify Notion access, revalidate the integration’s permissions for each page or database you want to use.

Notes on environment and tests

The server uses a Notion API key for authentication and can be launched as a local process from Claude Desktop. Use npm to install dependencies and run the server script with Node. If you plan to run automated tests, simulate Notion responses and verify that database queries and page updates are executed as expected.

Available tools

list-databases

List all databases you have access to in your Notion workspace.

query-database

Retrieve entries from a specified database using query filters.

create-page

Create a new page within a chosen database or page.”

update-page

Update the content or properties of an existing page.

create-database

Create a new database within your Notion workspace.

update-database

Modify the structure or properties of an existing database.

get-page

Fetch the contents of a specific page.

get-block-children

View the content blocks within a page.

append-block-children

Add content to a page by appending blocks.

update-block

Edit content blocks to modify page content.

get-block

Retrieve a specific content block.

search

Find content across your Notion workspace.