home / mcp / notion mcp server

Notion MCP Server

A Model Context Protocol (MCP) server implementation for Notion integration, providing a standardized interface for interacting with Notion's API.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "ccabanillas-notion-mcp": {
      "command": "/Users/username/Projects/notion-mcp/.venv/bin/python",
      "args": [
        "-m",
        "notion_mcp"
      ],
      "env": {
        "NOTION_API_KEY": "YOUR_NOTION_API_KEY"
      }
    }
  }
}

You run a dedicated MCP server that exposes Notion actions through a standardized protocol. This lets you query databases, create and update pages, and search your Notion workspace from compatible clients with predictable, async-enabled interactions.

How to use

Start the server locally and connect it to a compatible MCP client. The server is designed to run as a Python process and is invoked with a simple module entry point. Use it to perform common Notion actions such as listing databases, fetching database details, reading blocks, and creating or updating pages. For Claude Desktop or other MCP clients, configure the client to launch the local Python process that runs the server, and point the client at the appropriate runtime command.

How to install

Prerequisites: you need Python and a toolchain for creating a Python virtual environment. It’s recommended to use uv or a similar tool to manage the environment.

# Install a Python virtual environment manager if you don’t have one
# Example using uv to manage a venv
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install -e .

Set up your Notion integration token in a .env file at the project root. This token is required for authenticating with the Notion API.

NOTION_API_KEY=your_notion_integration_token

Configure and run with Claude Desktop

To run the server locally and integrate with Claude Desktop, start the server in your environment and configure Claude Desktop to launch the local Python process that serves the MCP interface.

{
  "servers": {
    "notion-mcp": {
      "command": "/Users/username/Projects/notion-mcp/.venv/bin/python",
      "args": ["-m", "notion_mcp"],
      "cwd": "/Users/username/Projects/notion-mcp"
    }
  }
}

Test run

Test that the server starts without errors by running the module as a script. You should see the server initialize and be ready to accept MCP requests.

python -m notion_mcp