Provides tools for interacting with Notion's API, enabling AI agents to manage pages, databases, and comments within Notion workspaces programmatically.
Notion MCP Server
Note
We’ve introduced Notion MCP, 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
This project implements an MCP server for the Notion API.
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.
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:
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.
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".
3. Adding MCP config to your client:
Using npm:
Cursor & Claude:
Add the following to your .cursor/mcp.json
or claude_desktop_config.json
(MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
)
Option 1: Using NOTION_TOKEN (recommended)
Option 2: Using OPENAPI_MCP_HEADERS (for advanced use cases)
Zed
Add the following to your settings.json
Using Docker:
There are two options for running the MCP server with Docker:
Add the following to your .cursor/mcp.json
or claude_desktop_config.json
:
Using NOTION_TOKEN (recommended):
Using OPENAPI_MCP_HEADERS (for advanced use cases):
This approach:
- Uses the official Docker Hub image
- Properly handles JSON escaping via environment variables
- Provides a more reliable configuration method
You can also build and run the Docker image locally. First, build the Docker image:
Then, add the following to your .cursor/mcp.json
or claude_desktop_config.json
:
Using NOTION_TOKEN (recommended):
Using OPENAPI_MCP_HEADERS (for advanced use cases):
Don't forget to replace ntn_****
with your integration secret. Find it from your integration configuration tab:
Installing via Smithery
To install Notion API Server for Claude Desktop automatically via Smithery:
Transport Options
The Notion MCP Server supports two transport modes:
STDIO Transport (Default)
The default transport mode uses standard input/output for communication. This is the standard MCP transport used by most clients like Claude Desktop.
Streamable HTTP Transport
For web-based applications or clients that prefer HTTP communication, you can use the Streamable HTTP transport:
When using Streamable HTTP transport, the server will be available at http://0.0.0.0:<port>/mcp
.
Authentication
The Streamable HTTP transport requires bearer token authentication for security. You have three options:
Option 1: Auto-generated token (recommended for development)
The server will generate a secure random token and display it in the console:
Option 2: Custom token via command line (recommended for production)
Option 3: Custom token via environment variable (recommended for production)
The command line argument --auth-token
takes precedence over the AUTH_TOKEN
environment variable if both are provided.
Making HTTP Requests
All requests to the Streamable HTTP transport must include the bearer token in the Authorization header:
Note: Make sure to set either the NOTION_TOKEN
environment variable (recommended) or the OPENAPI_MCP_HEADERS
environment variable with your Notion integration token when using either transport mode.
Examples
- Using the following instruction
AI will correctly plan two API calls, v1/search
and v1/comments
, to achieve the task
- Similarly, the following instruction will result in a new page named "Notion MCP" added to parent page "Development"
- You may also reference content ID directly
Development
Build
Execute
Publish
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Enables AI agents to interact with Notion workspaces through the Notion API. Supports reading, writing, commenting, and managing Notion pages and databases with optimized token consumption for AI agents.
Related Resources
Related MCP Servers
- AsecurityFlicenseAqualityA high-performance MCP server that integrates Notion into AI workflows, enabling interaction with Notion pages, databases, and comments through a standardized protocol.Last updated -862324TypeScript
- -securityFlicense-qualityEnables interaction with Notion through the Notion API by exposing it as tools for LLMs, allowing operations like reading, creating, updating, and deleting Notion pages seamlessly via natural language.Last updated -722TypeScript
- -securityAlicense-qualityEnables Language Models to interact with Notion workspaces through standardized tools for searching, reading, creating, and updating pages and databases.Last updated -108TypeScriptMIT License
Notion MCP Serverofficial
AsecurityAlicenseAqualityAn MCP server that enables AI assistants to interact with the Notion API, allowing them to search, read, comment on, and create content in Notion workspaces through natural language commands.Last updated -198,1692,924TypeScriptMIT License