Overview
Access and manage Notion pages and databases.
Setup
Run with npx:
npx -y @modelcontextprotocol/server-notionConfiguration
NOTION_INTEGRATION_TOKEN environment variableDocumentation
Notion MCP Server
Overview
Access and manage Notion pages and databases directly from your AI agent through the Model Context Protocol.
Installation
Quick Setup
npx -y @modelcontextprotocol/server-notion
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-notion"],
"env": {
"NOTION_INTEGRATION_TOKEN": "your-token-here"
}
}
}
}
Setup
-
Create a Notion Integration
- Go to Notion Developers
- Create a new integration
- Copy the internal integration token
-
Connect to Your Workspace
- Share the pages/databases you want to access with your integration
- Click the three dots on the page > Add connections > Select your integration
-
Configure the MCP Server
- Set the
NOTION_INTEGRATION_TOKENenvironment variable - Restart your AI application
- Set the
Available Tools
| Tool | Description |
|---|---|
search | Search for pages and databases. |
get_page | Get the contents of a page. |
get_page_contents | Get full contents including child pages. |
create_page | Create a new page. |
update_page | Update an existing page. |
query_database | Query a Notion database. |
get_database | Get database schema and properties. |
create_database | Create a new database. |
append_block | Append content to a page. |
get_block_children | Get child blocks of a page. |
Usage Examples
Search for Pages
{
"name": "search",
"arguments": {
"query": "project notes"
}
}
Get Page Contents
{
"name": "get_page_contents",
"arguments": {
"page_id": "your-page-id-here"
}
}
Query a Database
{
"name": "query_database",
"arguments": {
"database_id": "your-database-id",
"filter": {
"property": "Status",
"select": {"equals": "In Progress"}
}
}
}
Create a Page
{
"name": "create_page",
"arguments": {
"parent_page_id": "parent-page-id",
"title": "Meeting Notes",
"content": "## Agenda\n\n1. Project updates\n2. Action items"
}
}
Security Notes
- Use minimal permissions - Only grant access to necessary pages.
- Rotate tokens regularly - Update your integration token periodically.
- Audit access - Regularly review which pages your integration can access.
- Use private integrations - For sensitive workspaces.
Integration Token Setup
- Go to Notion Developers
- Click New integration
- Give it a name (e.g., "AI Agent")
- Select the workspace
- Copy the Internal Integration Token
- Share pages with the integration
