Notion MCP Server

by v-3

Integrations

  • Enables interaction with Notion workspaces, providing tools for searching, reading, creating and updating pages, managing comments, performing block-level operations, and working with databases including creating, querying, and updating database items with various property types.

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

  1. Clone the repository:
git clone https://github.com/v-3/notion-server.git cd notion-server
  1. Install dependencies:
npm install
  1. 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
  1. Build the server:
npm run build

🔧 Configuration

Claude Desktop Setup

  1. 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" } } } }
  1. 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

  1. Visit Notion Integrations
  2. Click "New integration"
  3. Configure permissions:
    • Content: Read, Update, Insert
    • Comments: Read, Create
    • User Information: Read

Connecting Pages

  1. Open your Notion page
  2. Click "..." menu → "Connections"
  3. Add your integration
  4. 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:

  1. Fork the repository
  2. Create a feature branch
  3. 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
-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Enables Language Models to interact with Notion workspaces through standardized tools for searching, reading, creating, and updating pages and databases.

  1. 🌟 Key Features
    1. Page Operations
    2. Enhanced Markdown Support
    3. Database Operations
  2. 🚀 Getting Started
    1. Prerequisites
    2. Installation
  3. 🔧 Configuration
    1. Claude Desktop Setup
  4. 🛠️ Available Tools
    1. Page Operations
    2. Database Operations
  5. 🔐 Setting Up Notion Access
    1. Creating an Integration
    2. Connecting Pages
  6. 📝 Usage Examples
    1. Creating a Page
    2. Querying a Database
  7. 🤝 Contributing
    1. 📜 License
      1. 🙏 Acknowledgments

        Related MCP Servers

        • -
          security
          F
          license
          -
          quality
          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.
          Last updated -
          41
          17
          TypeScript
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that provides a standardized interface for interacting with Notion's API, enabling users to list databases, create pages, and search across their Notion workspace.
          Last updated -
          95
          Python
          MIT License
          • Apple
        • A
          security
          F
          license
          A
          quality
          A bridge between Claude AI and Notion that enables users to interact with Notion databases and pages through natural language, supporting operations like creating, reading, updating, and deleting content.
          Last updated -
          10
          10
          JavaScript
          • Apple
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that enables Large Language Models to interact with ClickUp workspace tasks and data, allowing creation and retrieval of tasks through natural language.
          Last updated -
          59
          TypeScript
          MIT License
          • Apple

        View all related MCP servers

        ID: lynmv5klr9