notion.com
notion.com logo

Notion

Enables AI systems to create, update, and manage Notion pages and blocks through a Node.js bridge to the Notion API, sup...

Created byApr 22, 2025

Notion MCP Server

License TypeScript Model Context Protocol ![smithery badge](https://smithery.ai/badge/@awkoy/notion-mcp-server) NPM Downloads Stars
Notion MCP Server is a Model Context Protocol (MCP) server implementation that enables AI assistants to interact with Notion's API. This production-ready server provides a complete set of tools and endpoints for reading, creating, and modifying Notion content through natural language interactions.
Active Development: Database support is now available! Comments and user management tools have been added. If you find this project useful, please consider giving it a star - it helps me know that this work is valuable to the community and motivates further development.

Table of Contents

  • Getting Started & Integration
  • Features
  • Documentation
  • Development
  • Technical Details
  • Troubleshooting
  • Contributing
  • License

Getting Started & Integration

Setup Process

  1. Obtain a Notion API Key
  1. Enable Integration for Your PagesNotion Page Connection
  1. Choose Your Integration Method
  1. Ask Your AI Assistant to Interact with Notion

Cursor Integration

Method 1: Using mcp.json

  1. Create or edit the .cursor/mcp.json file in your project directory:
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  1. Restart Cursor to apply the changes

Method 2: Manual Mode

  1. Open Cursor and go to Settings
  1. Navigate to the "MCP" or "Model Context Protocol" section
  1. Click "Add Server" or equivalent
  1. Enter the following command in the appropriate field:
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  1. Save the settings and restart Cursor if necessary

Claude Desktop Integration

  1. Create or edit the mcp.json file in your configuration directory:
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  1. Restart Claude Desktop to apply the changes

Features

  • ** Notion Integration** - Interact with Notion databases, pages, and blocks
  • ** Universal MCP Compatibility** - Works with all MCP clients including Cursor, Claude Desktop, Cline, and Zed
  • ** Data Retrieval** - Fetch information from Notion pages, blocks, and databases
  • ** Content Creation** - Create and update Notion pages and blocks
  • ** Block Management** - Append, update, and delete blocks within Notion pages
  • ** Database Operations** - Create, query, and update databases
  • ** Batch Operations** - Perform multiple operations in a single request
  • ** Archive & Restore** - Archive and restore Notion pages
  • ** Search Functionality** - Search Notion pages and databases by title
  • ** Comments Management** - Get, create, and reply to comments on pages and discussions
  • ** User Management** - Retrieve workspace users and user information

Documentation

Available Tools

The server provides the following consolidated tools for interacting with Notion:

`notion_pages`

A comprehensive tool for page operations including:
  • Creating new pages with specified content
  • Updating page properties
  • Archiving pages (moving to trash)
  • Restoring previously archived pages
  • Searching for pages by title
Example operations:

`notion_blocks`

A complete toolkit for block operations including:
  • Retrieving block content
  • Fetching child blocks
  • Appending new blocks to a parent
  • Updating existing blocks
  • Deleting blocks
  • Performing batch operations (append, update, delete, mixed)
Example operations:

`notion_database`

A powerful tool for database interactions including:
  • Creating new databases with custom properties
  • Querying databases with filters and sorting
  • Updating database structure and properties
Example operations:

`notion_comments`

A tool for managing comments on Notion content:
  • Retrieving comments from pages and blocks
  • Adding new comments to pages
  • Replying to existing discussions
Example operations:

`notion_users`

A tool for accessing user information:
  • Listing all workspace users
  • Getting details about specific users
  • Retrieving information about the current bot user
Example operations:

Available Resources

The server currently does not expose any resources, focusing instead on tool-based operations.

Development

  1. Clone the Repository
  1. Install Dependencies
  1. Set Up Environment Variables
  1. Build the Project
  1. Run the Inspector

Technical Details

  • Built using TypeScript and the MCP SDK (version 1.7.0+)
  • Uses the official Notion API client (@notionhq/client v2.3.0+)
  • Follows the Model Context Protocol specification
  • Implements tools for CRUD operations on Notion pages, blocks, and databases
  • Supports efficient batch operations for performance optimization
  • Validates input/output with Zod schemas

Troubleshooting

  • Common Issues
  • Getting Help

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
  1. Fork the repository
  1. Create your feature branch (git checkout -b feature/amazing-feature)
  1. Commit your changes (git commit -m 'Add some amazing feature')
  1. Push to the branch (git push origin feature/amazing-feature)
  1. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Notion MCP Server

License TypeScript Model Context Protocol ![smithery badge](https://smithery.ai/badge/@awkoy/notion-mcp-server) NPM Downloads Stars
Notion MCP Server is a Model Context Protocol (MCP) server implementation that enables AI assistants to interact with Notion's API. This production-ready server provides a complete set of tools and endpoints for reading, creating, and modifying Notion content through natural language interactions.
Active Development: Database support is now available! Comments and user management tools have been added. If you find this project useful, please consider giving it a star - it helps me know that this work is valuable to the community and motivates further development.

Table of Contents

  • Getting Started & Integration
  • Features
  • Documentation
  • Development
  • Technical Details
  • Troubleshooting
  • Contributing
  • License

Getting Started & Integration

Setup Process

  1. Obtain a Notion API Key
  1. Enable Integration for Your PagesNotion Page Connection
  1. Choose Your Integration Method
  1. Ask Your AI Assistant to Interact with Notion

Cursor Integration

Method 1: Using mcp.json

  1. Create or edit the .cursor/mcp.json file in your project directory:
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  1. Restart Cursor to apply the changes

Method 2: Manual Mode

  1. Open Cursor and go to Settings
  1. Navigate to the "MCP" or "Model Context Protocol" section
  1. Click "Add Server" or equivalent
  1. Enter the following command in the appropriate field:
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  1. Save the settings and restart Cursor if necessary

Claude Desktop Integration

  1. Create or edit the mcp.json file in your configuration directory:
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  1. Restart Claude Desktop to apply the changes

Features

  • ** Notion Integration** - Interact with Notion databases, pages, and blocks
  • ** Universal MCP Compatibility** - Works with all MCP clients including Cursor, Claude Desktop, Cline, and Zed
  • ** Data Retrieval** - Fetch information from Notion pages, blocks, and databases
  • ** Content Creation** - Create and update Notion pages and blocks
  • ** Block Management** - Append, update, and delete blocks within Notion pages
  • ** Database Operations** - Create, query, and update databases
  • ** Batch Operations** - Perform multiple operations in a single request
  • ** Archive & Restore** - Archive and restore Notion pages
  • ** Search Functionality** - Search Notion pages and databases by title
  • ** Comments Management** - Get, create, and reply to comments on pages and discussions
  • ** User Management** - Retrieve workspace users and user information

Documentation

Available Tools

The server provides the following consolidated tools for interacting with Notion:

`notion_pages`

A comprehensive tool for page operations including:
  • Creating new pages with specified content
  • Updating page properties
  • Archiving pages (moving to trash)
  • Restoring previously archived pages
  • Searching for pages by title
Example operations:

`notion_blocks`

A complete toolkit for block operations including:
  • Retrieving block content
  • Fetching child blocks
  • Appending new blocks to a parent
  • Updating existing blocks
  • Deleting blocks
  • Performing batch operations (append, update, delete, mixed)
Example operations:

`notion_database`

A powerful tool for database interactions including:
  • Creating new databases with custom properties
  • Querying databases with filters and sorting
  • Updating database structure and properties
Example operations:

`notion_comments`

A tool for managing comments on Notion content:
  • Retrieving comments from pages and blocks
  • Adding new comments to pages
  • Replying to existing discussions
Example operations:

`notion_users`

A tool for accessing user information:
  • Listing all workspace users
  • Getting details about specific users
  • Retrieving information about the current bot user
Example operations:

Available Resources

The server currently does not expose any resources, focusing instead on tool-based operations.

Development

  1. Clone the Repository
  1. Install Dependencies
  1. Set Up Environment Variables
  1. Build the Project
  1. Run the Inspector

Technical Details

  • Built using TypeScript and the MCP SDK (version 1.7.0+)
  • Uses the official Notion API client (@notionhq/client v2.3.0+)
  • Follows the Model Context Protocol specification
  • Implements tools for CRUD operations on Notion pages, blocks, and databases
  • Supports efficient batch operations for performance optimization
  • Validates input/output with Zod schemas

Troubleshooting

  • Common Issues
  • Getting Help

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
  1. Fork the repository
  1. Create your feature branch (git checkout -b feature/amazing-feature)
  1. Commit your changes (git commit -m 'Add some amazing feature')
  1. Push to the branch (git push origin feature/amazing-feature)
  1. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.