trackmcp
Back to directory
v-3

notion-server

View on GitHub

Notion

119 stars TypeScriptOthers Updated May 7, 2026

Documentation

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:

bash
git clone https://github.com/v-3/notion-server.git
cd notion-server

2. Install dependencies:

bash
npm install

3. Set up your environment:

bash
# 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

4. Build the server:

bash
npm run build

๐Ÿ”ง Configuration

Claude Desktop Setup

1. Update your Claude Desktop configuration (`claude_desktop_config.json`):

json
{
    "mcpServers": {
        "notion": {
            "command": "node",
            "args": ["/absolute/path/to/notion-server/build/index.js"],
            "env": {
                "NOTION_API_KEY": "your_notion_api_key_here"
            }
        }
    }
}

2. Restart Claude Desktop to apply changes

๐Ÿ› ๏ธ Available Tools

Page Operations

typescript
// 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

typescript
// 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:

    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

    typescript
    const result = await notion.create_page({
      parentPageId: "page_id",
      title: "My Page",
      content: "# Welcome\nThis is a test page."
    });

    Querying a Database

    typescript
    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:

    bash
    git clone https://github.com/sweir1/notion-server.git

    Frequently asked questions

    What is notion-server?

    notion-server is Notion

    How do I install notion-server?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is notion-server open source?

    Yes โ€” it is hosted on GitHub at https://github.com/v-3/notion-server and has 119 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP