Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AIFire in da houseCheck it out free

notion-mcp-server

MCP.Pizza Chef: makenotion

The Notion MCP Server is an official implementation of an MCP server that connects the Notion API with the Model Context Protocol. It enables LLMs to access and interact with Notion workspace data in a structured, secure manner, facilitating real-time context feeding and multi-step reasoning. This server supports integration setup via Notion's internal integration tokens and allows scoped access to Notion data, enhancing AI workflows with Notion content.

Use This MCP server To

Access Notion workspace data via MCP for AI workflows Feed structured Notion page and database context to LLMs Enable read-only Notion data access for secure AI interactions Integrate Notion content into multi-step reasoning agents Automate Notion data retrieval for task-specific LLM prompts

README

Notion MCP Server

Note

We’ve introduced Notion MCP (Beta), a remote MCP server with the following improvements:

  • Easy installation via standard OAuth. No need to fiddle with JSON or API token anymore.
  • Powerful tools tailored to AI agents. These tools are designed with optimized token consumption in mind.

Learn more and try it out here

notion-mcp-sm

This project implements an MCP server for the Notion API.

mcp-demo

Installation

1. Setting up Integration in Notion:

Go to https://www.notion.so/profile/integrations and create a new internal integration or select an existing one.

Creating a Notion Integration token

While we limit the scope of Notion API's exposed (for example, you will not be able to delete databases via MCP), there is a non-zero risk to workspace data by exposing it to LLMs. Security-conscious users may want to further configure the Integration's Capabilities.

For example, you can create a read-only integration token by giving only "Read content" access from the "Configuration" tab:

Notion Integration Token Capabilities showing Read content checked

2. Connecting content to integration:

Ensure relevant pages and databases are connected to your integration.

To do this, visit the Access tab in your internal integration settings. Edit access and select the pages you'd like to use. Integration Access tab

Edit integration access

Alternatively, you can grant page access individually. You'll need to visit the target page, and click on the 3 dots, and select "Connect to integration".

Adding Integration Token to Notion Connections

3. Adding MCP config to your client:

Using npm:

Add the following to your .cursor/mcp.json or claude_desktop_config.json (MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json)

{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}
Using Docker:

There are two options for running the MCP server with Docker:

Option 1: Using the official Docker Hub image:

Add the following to your .cursor/mcp.json or claude_desktop_config.json:

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "OPENAPI_MCP_HEADERS",
        "mcp/notion"
      ],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\":\"Bearer ntn_****\",\"Notion-Version\":\"2022-06-28\"}"
      }
    }
  }
}

This approach:

  • Uses the official Docker Hub image
  • Properly handles JSON escaping via environment variables
  • Provides a more reliable configuration method
Option 2: Building the Docker image locally:

You can also build and run the Docker image locally. First, build the Docker image:

docker-compose build

Then, add the following to your .cursor/mcp.json or claude_desktop_config.json:

{
  "mcpServers": {
    "notionApi": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "OPENAPI_MCP_HEADERS={\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\"}",
        "notion-mcp-server"
      ]
    }
  }
}

Don't forget to replace ntn_**** with your integration secret. Find it from your integration configuration tab:

Copying your Integration token from the Configuration tab in the developer portal

Installing via Smithery

smithery badge

To install Notion API Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @makenotion/notion-mcp-server --client claude

Examples

  1. Using the following instruction
Comment "Hello MCP" on page "Getting started"

AI will correctly plan two API calls, v1/search and v1/comments, to achieve the task

  1. Similarly, the following instruction will result in a new page named "Notion MCP" added to parent page "Development"
Add a page titled "Notion MCP" to page "Development"
  1. You may also reference content ID directly
Get the content of page 1a6b35e6e67f802fa7e1d27686f017f2

Development

Build

npm run build

Execute

npx -y --prefix /path/to/local/notion-mcp-server @notionhq/notion-mcp-server

Publish

npm publish --access public

notion-mcp-server FAQ

How do I set up the Notion MCP Server integration?
Create an internal integration token at https://www.notion.so/profile/integrations and configure its capabilities for MCP access.
Can I limit the Notion MCP Server to read-only access?
Yes, you can configure the integration token's capabilities to restrict permissions, enhancing security.
What kind of Notion data can the MCP server expose?
It exposes pages, databases, and other workspace content but restricts destructive actions like deleting databases.
Is the Notion MCP Server compatible with multiple LLM providers?
Yes, it works with OpenAI, Anthropic Claude, and Google Gemini models via MCP.
How does the Notion MCP Server ensure data security?
By scoping integration token permissions and limiting API capabilities exposed to the LLM.
What are the installation prerequisites for the Notion MCP Server?
You need a Notion workspace, an internal integration token, and network access to the MCP server.
Can I customize the data exposure of the Notion MCP Server?
Yes, you can configure which Notion API scopes and capabilities the integration token has to control data access.