trackmcp
Back to directory
Badhansen

notion-mcp

View on GitHub

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

26 stars PythonAutomation & Productivity Updated Sep 25, 2025

Documentation

notion-mcp

Ask DeepWiki
Trust Score
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:

bash
npx -y @smithery/cli install @Badhansen/notion-mcp --client claude

1. Clone the repository:

sh
git clone https://github.com/Badhansen/notion-mcp.git
cd notion-mcp

2. Set up Python environment:

sh
uv venv
source .venv/bin/activate
uv pip install -e .

3. Create a Notion integration:

    4. Share your database/page with the integration:

      Configuration

      1. Create `.env` file:

      sh
      cp .env.example .env

      2. Configure Notion credentials in `.env`:

      markdown
      NOTION_TOKEN=
      PAGE_ID=
      NOTION_VERSION="2022-06-28"
      NOTION_BASE_URL="https://api.notion.com/v1"

      3. 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.

      json
      {
          "mcpServers": {
              "notion-mcp": {
                  "command": "uv",
                  "args": [
                      "--directory",
                      "/Users/username/Projects/Python/notion-mcp/src" /* Path to your project */,
                      "run",
                      "server.py"
                  ]
              }
          }
      }

      Development

      Project structure:

      markdown
      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:

      json
      {
          "name": "show_all_todos",
          "arguments": {}
      }

      Add Task

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

      json
      {
          "name": "add_todo",
          "arguments": {
              "task": "Your task description"
          }
      }

      Update Task

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

      json
      {
          "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.

      Frequently asked questions

      What is notion-mcp?

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

      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/Badhansen/notion-mcp and has 26 stars.

      Related MCP tools

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

      Measure it with TrackMCP