P

Notion_MCP_advanced

...
Created 12/15/2024byRuijian-Zha

Language:

Python

Stars:

9

Forks:

3

Notion MCP Integration

A simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list through Claude. This is a basic implementation tailored specifically for my minimalist todo list setup in Notion.

This project is based on danhilse/notion_mcp, which is available under the MIT license.

Important Note

This is a personal project designed for a very specific use case: my simple Notion todo list that has just four properties:

  • Task (title)
  • Checkbox (marks if completed)
  • Description (additional details)
  • Link (URL or reference)

Example Notion Database

While you can use this as a starting point for your own Notion integration, you'll likely need to modify the code to match your specific database structure and requirements.

Features

  • Add new todo items with descriptions and links
  • View all todos
  • Check off tasks as complete
  • Link external resources to tasks

Prerequisites

  • Python 3.10 or higher
  • A Notion account
  • A Notion integration (API key)
  • A Notion database that matches the exact structure described above (or willingness to modify the code for your structure)

Setup

  1. Clone the repository:
git clone https://github.com/yourusername/notion-mcp.git
cd notion-mcp
  1. Set up Python environment:
python -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\Scripts\activate
uv pip install -e .
  1. Create a Notion integration:

  2. Share your database with the integration:

    • Open your todo database in Notion
    • Click "..." menu → "Add connections"
    • Select your integration
  3. Create a .env file:


            
        
            
                NOTION_API_KEY=your-api-key-here
NOTION_DATABASE_ID=your-database-id-here
  1. Configure Claude Desktop:
{
  "mcpServers": {
    "notion-todo": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-m", "notion_mcp"],
      "cwd": "/path/to/notion-mcp"
    }
  }
}

Running the Server

The server can be run in two ways:

  1. Directly from the command line:
# From the project directory with virtual environment activated
python -m notion_mcp
  1. Automatically through Claude Desktop (recommended):
  • The server will start when Claude launches if configured correctly in claude_desktop_config.json
  • No manual server management needed
  • Server stops when Claude is closed

Note: When running directly, the server won't show any output unless there's an error - this is normal as it's waiting for MCP commands.

Usage

Basic commands through Claude:

  • "Show all my todos"
  • "Add a todo: check emails"
  • "Add a todo: review project docs, with link: https://example.com/docs"
  • "Mark todo [ID] as complete"

Limitations

  • Only works with a specific Notion database structure
  • No support for complex database schemas
  • Basic error handling
  • No support for additional properties or custom fields
  • No advanced features like recurring tasks, priorities, or tags

Project Structure

notion_mcp/
├── pyproject.toml
├── README.md
├── .env                   # Not included in repo
└── src/
    └── notion_mcp/
        ├── __init__.py
        ├── __main__.py
        └── server.py      # Main implementation

License

MIT License - Use at your own risk

Acknowledgments

  • Built to work with Claude Desktop
  • Uses Notion's API
Last updated: 2/22/2025

Publisher info

Ruijian-Zha's avatar

Ruijian Zha

MSCS Student at Columbia University

12
followers
10
following
30
repos

More MCP servers built with Python

MCP Server for Bing Webmaster Tools

An MCP (Model Context Protocol) server that provides access to Bing Webmaster Tools functionality

By isiahw1
usgs-water-mcp

This MCP server provides access to real-time water data from the USGS Water Services API. It allows you to fetch instantaneous water measurements including stream flow, gage height, temperature, and other water quality parameters from thousands of monitoring stations across the United States.

By pgiffy
screeny

Privacy-focused macOS MCP server for secure, user-approved window screenshots

By rohanrav