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
Linear MCP Server
Linear MCP server enables AI models to interact with Linear's project management system, providing capabilities for issue tracking, project management, team collaboration, and workflow automation.
Terminal MCP Server
Terminal MCP servers enable AI models to interact with command-line interfaces and shells, providing capabilities for executing commands, managing processes, file operations, and handling terminal I/O in a secure environment.
Ollama Deep Researcher: AI Model for Web Search & LLM Synthesis
Ollama Deep Researcher MCP servers enable AI models to perform advanced topic research using web search and LLM synthesis, powered by a local MCP server.