@debuggingmax/mcp-server-notion
Comprehensive MCP server for the Notion API. Provides 22 tools for full CRUD operations on pages, databases, blocks, users, and comments.
README
@debuggingmax/mcp-server-notion
<div align="center">
The most comprehensive MCP server for Notion 🚀
Pages • Databases • Blocks • Users • Comments • Search
Installation • Tools • Configuration • Examples • Pro Features
</div>
✨ Features
- 22 Tools covering the entire Notion API
- Full CRUD for Pages, Databases, and Blocks
- Advanced Filtering with Notion's powerful query syntax
- Rich Text Support for all content types
- Pagination for large datasets
- Comments & Discussions support
- User Management including bot info
- Type-Safe with full TypeScript support
📦 Quick Install
# Using npx (no installation required)
npx @debuggingmax/mcp-server-notion
# Global installation
npm install -g @debuggingmax/mcp-server-notion
# As a dependency
npm install @debuggingmax/mcp-server-notion
⚙️ Configuration
1. Get Your Notion API Key
- Go to notion.so/my-integrations
- Create a new integration
- Copy the "Internal Integration Token"
- Share your pages/databases with the integration
2. Configure Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["-y", "@debuggingmax/mcp-server-notion"],
"env": {
"NOTION_API_KEY": "secret_your_api_key_here"
}
}
}
}
3. Alternative: Environment Variable
export NOTION_API_KEY="secret_your_api_key_here"
npx @debuggingmax/mcp-server-notion
🛠 Available Tools
📄 Pages (6 tools)
| Tool | Description |
|---|---|
notion_search_pages |
Search pages by title |
notion_get_page |
Get page by ID with all properties |
notion_create_page |
Create page in database or as child page |
notion_update_page |
Update properties, icon, cover |
notion_archive_page |
Soft-delete (archive) a page |
notion_restore_page |
Restore archived page |
🗄 Databases (4 tools)
| Tool | Description |
|---|---|
notion_query_database |
Query with filters, sorts, pagination |
notion_get_database |
Get schema and properties |
notion_create_database |
Create with custom schema |
notion_update_database |
Update title, description, properties |
📦 Blocks (5 tools)
| Tool | Description |
|---|---|
notion_get_block_children |
Get all child blocks |
notion_append_blocks |
Add new content blocks |
notion_get_block |
Get specific block |
notion_update_block |
Modify block content |
notion_delete_block |
Remove block from page |
👥 Users (3 tools)
| Tool | Description |
|---|---|
notion_list_users |
List all workspace users |
notion_get_user |
Get user by ID |
notion_get_current_user |
Get bot/integration info |
💬 Comments (2 tools)
| Tool | Description |
|---|---|
notion_list_comments |
Get comments on page/block |
notion_create_comment |
Add comment to page/discussion |
🔍 Search (1 tool)
| Tool | Description |
|---|---|
notion_search |
Unified search across everything |
📖 Examples
Search for Pages
// Find pages containing "Project"
notion_search_pages({ query: "Project", page_size: 10 })
Create a Task in Database
notion_create_page({
parent_type: "database",
parent_id: "your-database-id",
properties: {
"Name": {
"title": [{ "text": { "content": "New Task" } }]
},
"Status": {
"select": { "name": "To Do" }
},
"Priority": {
"select": { "name": "High" }
}
}
})
Query Database with Filters
notion_query_database({
database_id: "your-database-id",
filter: {
"and": [
{
"property": "Status",
"select": { "equals": "In Progress" }
},
{
"property": "Priority",
"select": { "equals": "High" }
}
]
},
sorts: [
{ "property": "Due Date", "direction": "ascending" }
]
})
Add Content to a Page
notion_append_blocks({
block_id: "page-id",
children: [
{
"type": "heading_2",
"heading_2": {
"rich_text": [{ "text": { "content": "New Section" } }]
}
},
{
"type": "paragraph",
"paragraph": {
"rich_text": [{ "text": { "content": "This is the content." } }]
}
},
{
"type": "to_do",
"to_do": {
"rich_text": [{ "text": { "content": "Task item" } }],
"checked": false
}
}
]
})
Create a Comment
notion_create_comment({
parent_type: "page",
parent_id: "page-id",
rich_text: [
{ "text": { "content": "Great progress! 🎉" } }
]
})
🚀 Pro & Enterprise
Coming Soon! Pro features for power users:
- 📊 Analytics Dashboard - Usage stats, popular pages, activity insights
- ⚡ Bulk Operations - Update hundreds of pages at once
- 📋 Templates - Pre-built page and database templates
- 🔄 Sync Tools - Two-way sync with external systems
- 🔔 Webhooks - Real-time notifications on changes
- 🏢 Enterprise SSO - SAML/OIDC integration
Interested? Contact us or sponsor the project!
🤝 Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
💖 Support
If this project helps you, consider:
- ⭐ Starring the repository
- 💝 Sponsoring the development
- 🐛 Reporting bugs and issues
- 💡 Suggesting new features
📄 License
MIT © DebuggingMax
<div align="center">
Built with ❤️ for the Claude & Notion community
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.