Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

notion-mcp

MCP.Pizza Chef: Badhansen

notion-mcp is a lightweight MCP server that connects with Notion's API to enable real-time management of personal todo lists. It allows LLMs to query, update, and organize tasks within a Notion page, facilitating seamless task tracking and productivity workflows. Designed for Python 3.11+, it supports secure token-based access and integrates smoothly with Claude Desktop and other MCP hosts.

Use This MCP server To

Manage personal todo lists via Notion API integration Query and update tasks in Notion from LLM-powered clients Automate task organization within Notion pages Sync LLM-generated task lists with Notion Enable real-time task status updates through MCP Integrate Notion task data into AI workflows

README

notion-mcp

Ask DeepWiki smithery badge

A simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list.

Demo

Demo

Visual Guide

Notion MCP Query 1

Notion MCP Query 1

Notion MCP Query 2

Notion MCP Query 1

Notion MCP Query 3

Notion MCP Query 1

Prerequisites

  • Python 3.11 or higher
  • A Notion account with API access
  • A Notion integration token
  • A Notion page where you want to manage your todo list
  • Claude Desktop clint

Setup

Installing via Smithery

To install Notion MCP for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @Badhansen/notion-mcp --client claude
  1. Clone the repository:
git clone https://github.com/Badhansen/notion-mcp.git
cd notion-mcp
  1. Set up Python environment:
uv venv
source .venv/bin/activate
uv pip install -e .
  1. Create a Notion integration:
  2. Share your database/page with the integration:
    • Open your notion workspace with a database/table present or a page.
    • Click "..." menu → "Add connections"
    • Select your integration (Search by name)

Configuration

  1. Create .env file:
cp .env.example .env
  1. Configure Notion credentials in .env:
NOTION_TOKEN=<your-notion-api-token>
PAGE_ID=<your-notion-page-id>
NOTION_VERSION="2022-06-28"
NOTION_BASE_URL="https://api.notion.com/v1"
  1. To use it with Claude Desktop as intended you need to adjust your claude_desktop_config.json file. Go to Claude Desktop -> Settings -> Developer -> Edit Config. Now add the Notion server configuration.
{
    "mcpServers": {
        "notion-mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/Users/username/Projects/Python/notion-mcp/src" /* Path to your project */,
                "run",
                "server.py"
            ]
        }
    }
}

Development

Project structure:

notion-mcp/
├── docs/
├── src/
│ └── server.py
├── .env
├── .python-version
├── README.md
├── pyproject.toml
└── uv.lock

Support Functions

Show Tasks

To show all tasks from your Notion workspace, use the show_all_todos function:

{
    "name": "show_all_todos",
    "arguments": {}
}
Add Task

To add a new task to your Notion workspace, use the add_todo function:

{
    "name": "add_todo",
    "arguments": {
        "task": "Your task description"
    }
}
Update Task

To update an existing task in your Notion workspace, use the complete_todo function:

{
    "name": "complete_todo",
    "arguments": {
        "task_id": "your-task-id"
    }
}

Contributing

  1. Fork the repository
  2. Create feature branch
  3. Submit pull request

License

MIT License. See LICENSE file for details.

notion-mcp FAQ

How do I authenticate notion-mcp with my Notion account?
You authenticate by providing a Notion integration token with API access, which the server uses to securely connect to your Notion workspace.
What are the prerequisites for running notion-mcp?
You need Python 3.11 or higher, a Notion account with API access, a Notion integration token, and a Notion page for managing your todo list.
Can notion-mcp work with multiple Notion pages or just one?
notion-mcp is primarily designed to manage a single Notion page for todo lists, but it can be extended to handle multiple pages with customization.
How does notion-mcp integrate with LLM clients like Claude Desktop?
notion-mcp exposes Notion task data via MCP protocol, allowing LLM clients like Claude Desktop to query and manipulate todo lists in real time.
Is notion-mcp limited to todo lists or can it manage other Notion content?
Currently, notion-mcp focuses on todo list management but can be extended to other Notion content types with development.
How secure is the data handled by notion-mcp?
Data security depends on your Notion token management and the MCP host environment; notion-mcp uses token-based authentication to protect access.
Can I customize notion-mcp to fit my specific workflow?
Yes, since notion-mcp is open source and built in Python, you can modify it to suit your workflow needs.