npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

notion-mcp-server

v1.0.1

Published

MCP for Notion

Downloads

857

Readme

Notion MCP Server

License TypeScript Model Context Protocol smithery badge 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

Setup Process

  1. Obtain a Notion API Key

  2. Enable Integration for Your Pages

    • Select an existing page or create a new one in Notion
    • Click the "..." menu in the top right corner
    • Go to "Connections"
    • Find and enable your integration from the list

    Notion Page Connection

  3. Choose Your Integration Method

    • Follow one of the integration options below based on your preferred MCP client
  4. Ask Your AI Assistant to Interact with Notion

    • "Create a new page with today's tasks"
    • "Update my meeting notes in Notion"
    • "Add bullet points to my meeting notes page"
    • "Create a new database for tracking projects"
    • "Add new entries to my task database"
    • "Add a comment to my project page"
    • "Show me all comments on this document"
    • "List all users in my workspace"
    • "Get information about a specific user"

Cursor Integration

Method 1: Using mcp.json

  1. Create or edit the .cursor/mcp.json file in your project directory:
{
  "mcpServers": {
    "notion-mcp-server": {
      "command": "env NOTION_TOKEN=YOUR_KEY NOTION_PAGE_ID=YOUR_PAGE_ID npx",
      "args": ["-y", "notion-mcp-server"]
    }
  }
}
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  2. Restart Cursor to apply the changes

Method 2: Manual Mode

  1. Open Cursor and go to Settings
  2. Navigate to the "MCP" or "Model Context Protocol" section
  3. Click "Add Server" or equivalent
  4. Enter the following command in the appropriate field:
env NOTION_TOKEN=YOUR_KEY NOTION_PAGE_ID=YOUR_PAGE_ID npx -y notion-mcp-server
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  2. Save the settings and restart Cursor if necessary

Claude Desktop Integration

  1. Create or edit the mcp.json file in your configuration directory:
{
  "mcpServers": {
    "notion-mcp-server": {
      "command": "npx",
      "args": ["-y", "notion-mcp-server"],
      "env": {
        "NOTION_TOKEN": "YOUR_KEY",
        "NOTION_PAGE_ID": "YOUR_PAGE_ID"
      }
    }
  }
}
  1. Replace YOUR_KEY and YOUR_PAGE_ID with your actual Notion API key and page ID
  2. 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 tools for interacting with Notion:

Page Operations

create_page

Create a new page in Notion with specified content

update_page_properties

Update the properties of an existing Notion page

archive_page

Archive (move to trash) a Notion page by ID

restore_page

Restore a previously archived Notion page by ID

search_pages

Search for pages and databases in Notion by title

Database Operations

create_database

Create a new database in Notion with specified properties

query_database

Query a database in Notion with filters, sorts, and pagination

update_database

Update an existing database's properties, title, or description

Block Operations

retrieve_block

Retrieve a block from Notion by ID

retrieve_block_children

Retrieve the children of a block from Notion

append_block_children

Append child blocks to a parent block in Notion

update_block

Update a block's content in Notion

delete_block

Delete (move to trash) a block in Notion

Batch Operations

batch_append_block_children

Append children to multiple blocks in a single operation

batch_update_blocks

Update multiple blocks in a single operation

batch_delete_blocks

Delete multiple blocks in a single operation

batch_mixed_operations

Perform a mix of append, update, and delete operations in a single request

Comment Operations

get_comments

Retrieve comments from a page or block with pagination support

add_page_comment

Add a new comment to a Notion page

add_discussion_comment

Add a comment to an existing discussion thread

User Operations

get_list_users

Retrieve a paginated list of all users in the workspace

get_user

Get detailed information about a specific user by ID

get_bot_user

Retrieve the current bot user associated with the API token

Available Resources

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

🛠 Development

  1. Clone the Repository

    git clone https://github.com/awkoy/notion-mcp-server.git
    cd notion-mcp-server
  2. Install Dependencies

    npm install
  3. Set Up Environment Variables

    • Create a .env file with:
      NOTION_TOKEN=your_notion_api_key
      NOTION_PAGE_ID=your_notion_page_id
  4. Build the Project

    npm run build
  5. Run the Inspector

    npm run 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

    • Authentication Errors: Ensure your Notion token has the correct permissions and integration is enabled for your pages/databases
    • Page Access Issues: Make sure your integration has been added to the pages you're attempting to access
    • Rate Limiting: Notion API has rate limits - use batch operations to optimize requests
  • Getting Help

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

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