trackmcp
Back to directory
Shameerpc5029

notion-mcp

View on GitHub

Notion

0 stars PythonOthers Updated Jun 25, 2025

Documentation

🚀 Notion MCP Server

A powerful Model Context Protocol (MCP) server that connects AI assistants like Claude to your Notion workspace. Seamlessly search, create, and manage your Notion content through natural language conversations!

✨ What This Does

Transform your AI assistant into a Notion powerhouse! With this MCP server, you can:

  • 🔍 Search through all your Notion pages and databases
  • 📝 Create new pages, databases, and content
  • ✏️ Update existing pages and properties
  • 📊 Query databases with complex filters
  • 🔗 Manage your entire Notion workspace through conversation

🎯 Quick Start

1. Prerequisites

  • Python 3.8 or higher
  • A Notion workspace
  • Nango account (for OAuth authentication)
  • Claude Desktop app (for AI integration)

2. Installation

bash
# Clone or download the files
git clone 
cd notion-mcp-server

# Install dependencies
uv sync

3. Notion Setup

1. Create a Notion Integration:

    2. Share Pages with Integration:

      4. Nango Setup (OAuth)

      1. Create Nango Account: https://nango.dev

      2. Add Notion Integration in your Nango dashboard

      3. Configure OAuth with your Notion integration credentials

      4. Get your Nango credentials (Base URL, Secret Key, Connection ID)

      5. Environment Configuration

      Create a `.env` file with your credentials:

      env
      # Nango OAuth Configuration
      NANGO_BASE_URL=https://api.nango.dev
      NANGO_SECRET_KEY=your_nango_secret_key_here
      NANGO_CONNECTION_ID=your_connection_id_here
      NANGO_INTEGRATION_ID=notion
      
      # Optional: Direct Notion Token (if not using Nango)
      # NOTION_TOKEN=your_direct_notion_token_here

      6. Claude Desktop Configuration

      Add this to your Claude Desktop configuration file:

      On macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`

      On Windows: `%APPDATA%\Claude\claude_desktop_config.json`

      json
      {
        "mcpServers": {
          "notion": {
            "command": "uvx",
            "args": ["git+https://github.com/Shameerpc5029/notion-mcp.git"],
            "env": {
              "NANGO_BASE_URL": "https://api.nango.dev",
              "NANGO_SECRET_KEY": "your_nango_secret_key",
              "NANGO_CONNECTION_ID": "your_connection_id", 
              "NANGO_INTEGRATION_ID": "notion"
            }
          }
        }
      }

      7. Test the Connection

      bash
      # Test the server directly
      python notion-mcp-server.py
      
      # Or restart Claude Desktop and try asking:
      # "Search my Notion for meeting notes"
      # "Create a new task in my project database"

      🛠️ Available Tools

      ToolDescriptionExample Use
      `notion_search`Search across all content"Find pages about project planning"
      `notion_get_database`Get database info"Show me my tasks database structure"
      `notion_query_database`Query with filters"Show incomplete tasks due this week"
      `notion_create_database`Create new databases"Create a CRM database with contacts"
      `notion_get_page`Get page details"Show me the content of my meeting notes"
      `notion_create_page`Create new pages"Add a new task to my project database"
      `notion_update_page`Update existing pages"Mark this task as completed"
      `notion_get_block_children`Get page content"Read the content of this page"
      `notion_append_blocks`Add content to pages"Add meeting notes to this page"
      `notion_get_current_user`Get integration info"Check my Notion connection status"

      💬 Example Conversations with Claude

      Once configured, you can have natural conversations like:

      Task Management

      code
      You: "Show me all my incomplete tasks"
      Claude: [Queries your tasks database and shows open items]
      
      You: "Create a new task called 'Review MCP integration' due next Friday"
      Claude: [Creates the task with proper due date]
      
      You: "Mark the first task as completed"
      Claude: [Updates the task status to Done]

      Content Creation

      code
      You: "Create a meeting notes page for today's standup"
      Claude: [Creates a new page with meeting template]
      
      You: "Add action items from our discussion to that page"
      Claude: [Appends bullet points with the action items]

      Research & Organization

      code
      You: "Search for all pages mentioning 'API documentation'"
      Claude: [Finds and lists relevant pages]
      
      You: "Create a new database to track our API endpoints"
      Claude: [Creates a structured database with relevant properties]

      🔧 Troubleshooting

      Common Issues

      "Authentication Error"

      • Check your `.env` file has correct Nango credentials
      • Verify your Nango integration is active
      • Ensure your Notion integration has proper capabilities

      "Page not found" errors

      • Make sure you've shared the page/database with your integration
      • Check the page/database ID is correct
      • Verify the integration has read access

      Claude can't find the server

      • Check the absolute path in `claude_desktop_config.json` is correct
      • Ensure Python is in your system PATH
      • Try running the server manually first to test

      "No access token found"

      • Verify Nango connection is working
      • Check your `NANGO_CONNECTION_ID` matches your actual connection
      • Try refreshing your Nango integration

      Debug Mode

      Run with verbose logging:

      bash
      python notion-mcp-server.py --debug

      Manual Testing

      Test individual functions:

      python
      from notion_mcp_server import NotionClient
      
      client = NotionClient()
      user = client.get_current_user()
      print(f"Connected as: {user.get('name')}")

      🔒 Security Notes

      • Never commit your `.env` file to version control
      • Keep your Nango secret key secure
      • Only share Notion pages that the integration needs access to
      • Regularly review your integration's access in Notion settings

      📁 File Structure

      code
      notion-mcp/
      ├── main.py    # Main MCP server
      ├── pyproject.toml        # Python dependencies  
      ├── .env.example
      ├── .env                   # Your credentials (don't commit!)
      ├── README.md              # This file

      🆘 Getting Help

      1. Check the logs - Look for error messages in Claude Desktop or terminal

      2. Verify permissions - Ensure your integration can access the pages

      3. Test manually - Run the server directly to isolate issues

      4. Check Notion status - Sometimes Notion API has outages

      🎉 What's Next?

      Once you're up and running:

      • Try creating complex database queries
      • Set up automated content creation workflows
      • Use Claude to help organize and restructure your Notion workspace
      • Explore advanced filtering and sorting options

      📄 License

      This project is open source. Feel free to modify and adapt for your needs!


      Happy Notion-ing with Claude! 🎊

      *Made with ❤️ for the AI-powered productivity enthusiasts*

      Frequently asked questions

      What is notion-mcp?

      notion-mcp is Notion

      How do I install notion-mcp?

      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-mcp open source?

      Yes — it is hosted on GitHub at https://github.com/Shameerpc5029/notion-mcp.

      Related MCP tools

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

      Measure it with TrackMCP