The Notion MCP Server provides an interface to interact with Notion's API via the Model Context Protocol (MCP). It allows AI clients to:
- Manage Users: Retrieve user information, list all users, and get bot user details
- Query Databases: Query, filter, create, update, and retrieve database content
- Search Content: Search for pages or databases by title
- Manage Blocks: Retrieve, append, update, or delete blocks in Notion
- Manage Pages: Retrieve, create, or update pages and their properties
- Handle Comments: Retrieve or create comments on pages or blocks
Allows interaction with the Notion API, enabling capabilities to search content, add comments, create pages, and retrieve page content. The integration connects to a Notion workspace through an integration token with configurable permissions.
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
An 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.
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
- AsecurityAlicenseAqualityNotion MCP Server is a MCP server implementation that enables AI assistants to interact with Notion's API.Last updated -13907131TypeScriptMIT License
- -securityAlicense-qualityAn MCP server that enables natural language interaction with the Notion API, allowing users to search, comment, create pages, and access content within their Notion workspace.Last updated -8,199TypeScriptMIT License
- -security-license-qualityA Model Context Protocol server that enables AI assistants to interact with Notion's API for reading, creating, and modifying Notion content through natural language interactions.Last updated -MIT License
Appeared in Searches
- A system for querying databases using natural language
- A server for converting study materials and optimizing online research
- Using Logseq data as context for chat applications
- A personal assistant tool for managing schedules, notes, projects, and emails
- Managing Social Media Content Creation Using Monday