Notion MCP Server
Notion MCP servers enable AI models to interact with Notion workspaces, providing capabilities for database operations, page management, content creation, and collaborative workspace automation.
Overview
The MCP Notion Server enables AI models to interact with Notion workspaces, providing seamless integration with one of the most popular knowledge management and collaboration platforms. Notion is widely used for documentation, project management, wikis, and team collaboration.
Official Server:
Developed and maintained by Anthropic
Key Features
Page Management
Create, read, update, and search Notion pages across workspaces
Database Operations
Query, filter, and manipulate Notion databases with rich properties
Content Search
Search across all workspace content with powerful filtering
Collaborative Workflows
Automate documentation, task management, and team collaboration
Available Tools
Quick Reference
| Tool | Purpose | Category |
|---|---|---|
notion_search | Search workspace content | Search |
notion_create_page | Create new pages | Write |
notion_get_page | Retrieve page content | Read |
notion_update_page | Update existing pages | Write |
notion_query_database | Query database entries | Read |
notion_create_database_entry | Add database records | Write |
Detailed Usage
notion_search▶
Search across all pages and databases in your Notion workspace.
use_mcp_tool({
server_name: "notion",
tool_name: "notion_search",
arguments: {
query: "project documentation",
filter: {
property: "object",
value: "page"
}
}
});
Returns matching pages with metadata and content preview.
notion_create_page▶
Create a new page in Notion with rich content blocks.
use_mcp_tool({
server_name: "notion",
tool_name: "notion_create_page",
arguments: {
parent: {
page_id: "parent-page-id"
},
properties: {
title: {
title: [
{
text: { content: "New Documentation Page" }
}
]
}
},
children: [
{
object: "block",
type: "paragraph",
paragraph: {
rich_text: [
{
text: { content: "This is the page content." }
}
]
}
}
]
}
});
Creates a new page with structured content blocks.
notion_get_page▶
Retrieve the content and properties of a specific page.
use_mcp_tool({
server_name: "notion",
tool_name: "notion_get_page",
arguments: {
page_id: "abc123-def456-ghi789"
}
});
Returns full page content including all blocks and properties.
notion_update_page▶
Update properties or content of an existing page.
use_mcp_tool({
server_name: "notion",
tool_name: "notion_update_page",
arguments: {
page_id: "abc123-def456-ghi789",
properties: {
Status: {
status: { name: "In Progress" }
}
}
}
});
Updates page properties while preserving existing content.
notion_query_database▶
Query a Notion database with filters and sorting options.
// Query with filter
use_mcp_tool({
server_name: "notion",
tool_name: "notion_query_database",
arguments: {
database_id: "database-id-123",
filter: {
property: "Status",
status: { equals: "Active" }
},
sorts: [
{
property: "Created",
direction: "descending"
}
]
}
});
Returns filtered and sorted database entries.
notion_create_database_entry▶
Create a new entry in a Notion database.
use_mcp_tool({
server_name: "notion",
tool_name: "notion_create_database_entry",
arguments: {
database_id: "database-id-123",
properties: {
Name: {
title: [
{ text: { content: "New Task" } }
]
},
Status: {
status: { name: "To Do" }
},
Priority: {
select: { name: "High" }
}
}
}
});
Adds a new record to the specified database.
Installation
{
"mcpServers": {
"notion": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-notion"
],
"env": {
"NOTION_API_KEY": "your-notion-integration-token"
}
}
}
}
API Key Required:
You need to create a Notion integration and obtain an API key from the Notion Integrations page.
Setup Guide
1. Create Notion Integration
- Go to Notion Integrations
- Click "+ New integration"
- Give your integration a name (e.g., "MCP Integration")
- Select the workspace you want to connect
- Configure capabilities:
- ✅ Read content
- ✅ Update content
- ✅ Insert content
- Copy the Internal Integration Token
2. Share Pages with Integration
For the integration to access your pages:
- Open a Notion page you want to access
- Click "..." menu → "Connections" → "Connect to"
- Select your integration from the list
- Repeat for all pages/databases you want to access
Workspace Access:
You can share entire workspace sections by connecting the integration at the top-level page.
3. Configure MCP Server
Add the integration token to your MCP configuration as shown in the Installation section above.
Common Use Cases
1. Automated Documentation
Create and update documentation pages programmatically:
// Create technical documentation
use_mcp_tool({
server_name: "notion",
tool_name: "notion_create_page",
arguments: {
parent: { database_id: "docs-db-id" },
properties: {
title: {
title: [{ text: { content: "API Reference - Users Endpoint" } }]
},
Category: {
select: { name: "API Documentation" }
}
},
children: [
{
object: "block",
type: "heading_2",
heading_2: {
rich_text: [{ text: { content: "Endpoints" } }]
}
},
{
object: "block",
type: "code",
code: {
language: "javascript",
rich_text: [{ text: { content: "GET /api/users" } }]
}
}
]
}
});
2. Task Management
Query and manage tasks in a project database:
// Get all high-priority tasks
use_mcp_tool({
server_name: "notion",
tool_name: "notion_query_database",
arguments: {
database_id: "tasks-db-id",
filter: {
and: [
{
property: "Priority",
select: { equals: "High" }
},
{
property: "Status",
status: { does_not_equal: "Done" }
}
]
}
}
});
3. Knowledge Base Search
Search across all documentation:
// Search for specific topics
use_mcp_tool({
server_name: "notion",
tool_name: "notion_search",
arguments: {
query: "authentication setup",
filter: {
property: "object",
value: "page"
}
}
});
4. Meeting Notes Automation
Create structured meeting notes:
// Create meeting notes page
use_mcp_tool({
server_name: "notion",
tool_name: "notion_create_page",
arguments: {
parent: { database_id: "meetings-db-id" },
properties: {
title: {
title: [{ text: { content: `Team Sync - ${new Date().toLocaleDateString()}` } }]
},
Date: {
date: { start: new Date().toISOString() }
},
Attendees: {
multi_select: [
{ name: "Alice" },
{ name: "Bob" }
]
}
},
children: [
{
object: "block",
type: "heading_3",
heading_3: {
rich_text: [{ text: { content: "Agenda" } }]
}
},
{
object: "block",
type: "bulleted_list_item",
bulleted_list_item: {
rich_text: [{ text: { content: "Project updates" } }]
}
}
]
}
});
Supported Block Types
The Notion MCP server supports rich content blocks including:
- Text blocks: paragraph, heading_1, heading_2, heading_3
- Lists: bulleted_list_item, numbered_list_item, to_do
- Media: image, video, file, pdf, bookmark
- Code: code (with syntax highlighting)
- Advanced: table, column_list, toggle, quote, callout
- Embeds: embed, link_preview
Property Types
Notion databases support various property types:
- Text: title, rich_text
- Numbers: number
- Selections: select, multi_select, status
- Dates: date
- People: people
- Files: files
- Checkbox: checkbox
- URL: url, email, phone_number
- Relations: relation, rollup
- Formula: formula
- Created/Updated: created_time, created_by, last_edited_time, last_edited_by
Sources
Related Articles
RabbitMQ MCP Server
RabbitMQ MCP server enables AI models to interact with RabbitMQ message brokers, providing capabilities for queue management, message operations, system monitoring, and broker administration through the RabbitMQ HTTP Management API.
Google Drive MCP Server
Google Drive MCP servers enable AI models to interact with Google Drive, providing capabilities for file search, content retrieval, and seamless integration with cloud storage.
Model Context Protocol (MCP): Open Standard for AI Integration
The Model Context Protocol (MCP) is an open standard enabling AI systems to connect with diverse data sources, tools, and services, eliminating custom integrations for seamless interaction.