@debuggingmax/mcp-server-notion

@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.

Category
Visit Server

README

@debuggingmax/mcp-server-notion

<div align="center">

npm version npm downloads License: MIT GitHub Sponsors

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

  1. Go to notion.so/my-integrations
  2. Create a new integration
  3. Copy the "Internal Integration Token"
  4. 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:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. 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

Report Bug • Request Feature

</div>

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured