
Notion MCP Server
Enables Language Models to interact with Notion workspaces through standardized tools for searching, reading, creating, and updating pages and databases.
v-3
README
Notion MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with Notion. This server enables Language Models to interact with your Notion workspace through standardized tools for searching, reading, creating, and updating pages and databases.
🌟 Key Features
Page Operations
- 🔍 Search through your Notion workspace
- 📝 Create new pages with rich markdown content
- 📖 Read page content with clean formatting
- 🔄 Update existing pages
- 💬 Add and retrieve comments
- 🧱 Block-level operations (update, delete)
Enhanced Markdown Support
- Multiple heading levels (H1-H3)
- Code blocks with language support
- Interactive todo items with checkbox states
- Blockquotes with multi-line support
- Horizontal dividers
- Images with captions
- Nested bullet points
Database Operations
- Create and manage databases
- Add and update database items
- Query with filters and sorting
- Support for various property types:
- Title, Rich text, Number
- Select, Multi-select
- Date, Checkbox
- And more!
🚀 Getting Started
Prerequisites
- Node.js (v16 or higher)
- Notion API key
- MCP-compatible client (e.g., Claude Desktop)
Installation
- Clone the repository:
git clone https://github.com/v-3/notion-server.git
cd notion-server
- Install dependencies:
npm install
- Set up your environment:
# Create .env file
echo "NOTION_API_KEY=your_notion_api_key_here" > .env
# Or export directly
export NOTION_API_KEY=your_notion_api_key_here
- Build the server:
npm run build
🔧 Configuration
Claude Desktop Setup
- Update your Claude Desktop configuration (
claude_desktop_config.json
):
{
"mcpServers": {
"notion": {
"command": "node",
"args": ["/absolute/path/to/notion-server/build/index.js"],
"env": {
"NOTION_API_KEY": "your_notion_api_key_here"
}
}
}
}
- Restart Claude Desktop to apply changes
🛠️ Available Tools
Page Operations
// Search pages
{
query: string // Search query
}
// Read page
{
pageId: string // ID of the page to read
}
// Create page
{
title?: string, // Page title
content?: string, // Page content in markdown
parentPageId: string // Parent page ID
properties?: object // For database items
}
// Update page
{
pageId: string, // Page ID to update
content: string, // New content
type?: string // Content type
}
Database Operations
// Create database
{
parentPageId: string,
title: string,
properties: object
}
// Query database
{
databaseId: string,
filter?: object,
sort?: object
}
🔐 Setting Up Notion Access
Creating an Integration
- Visit Notion Integrations
- Click "New integration"
- Configure permissions:
- Content: Read, Update, Insert
- Comments: Read, Create
- User Information: Read
Connecting Pages
- Open your Notion page
- Click "..." menu → "Connections"
- Add your integration
- Repeat for other pages as needed
📝 Usage Examples
Creating a Page
const result = await notion.create_page({
parentPageId: "page_id",
title: "My Page",
content: "# Welcome\nThis is a test page."
});
Querying a Database
const result = await notion.query_database({
databaseId: "db_id",
filter: {
property: "Status",
select: {
equals: "In Progress"
}
}
});
🤝 Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a Pull Request
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
This project has been significantly improved by sweir1/notion-server, who has made following updates:
- Enhanced markdown support with more block types
- Comprehensive database operations
- Improved error handling and debugging
- Better property handling for database items
- Cleaner page output formatting
To use sweir1's version, you can clone their repository:
git clone https://github.com/sweir1/notion-server.git
Recommended Servers
Apple MCP Server
Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.
Todoist MCP
An MCP server that enables LLMs to interact with Todoist tasks, projects, and other features through the Todoist API.

Notion API MCP Server
Enables advanced todo list management and content organization using Notion's API, supporting features like creating databases, dynamic filtering, and collaborative task tracking.
Todoist MCP Server
Integrates Claude with Todoist for natural language task management, supporting project and section organization, task creation, updating, completion, and deletion using everyday language.
Todoist MCP Server
An MCP server that integrates Claude with Todoist, enabling natural language task management including creating, updating, completing, and deleting tasks.
Curri MCP Server
Enables interaction with Curri's API by managing text notes, offering tools for note creation, and generating summaries using structured prompts.
Inkdrop MCP Server
Integrates Inkdrop note-taking app with Claude AI through Model Context Protocol, allowing Claude to search, read, create, and update notes in your Inkdrop database.
Notion MCP Server
Enables 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.
Notion MCP Server
A Model Context Protocol server that connects Claude and other AI assistants to your Notion workspace, allowing AIs to interact with databases, pages, and blocks.
Datetime MCP Server
This server enables users to store, manage, and summarize notes using a custom URI scheme, with functionality to add new notes and generate summaries with varying levels of detail.