Notion

by danhilse

201 stars
724 downloads
Not rated
GitHub Website

About

MCP server that enables AI assistants to manage a minimalist Notion todo list through a simple API interface.

Details

Author
danhilse
Repository
danhilse/notion_mcp
GitHub stars
201
Downloads
724
License
MIT License
Categories
Productivity, Community, Other, Design, Developer Tools, AI, Database, API, Frontend, Infrastructure, Knowledge Base

- Add new todo items
- View all todos
- View today's tasks
- Check off a task as complete

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Notion
    Command (node, npx, python, etc.) /path/to/your/.venv/bin/python
    Arguments
    • Argument 1 -m
    • Argument 2 notion_mcp

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

1. Clone the repository:

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

2. Set up Python environment:

python -m venv .venv
source .venv/bin/activate # On Windows use: .venv\Scripts\activate
uv pip install -e .

3. Create a Notion integration:
- Go to https://www.notion.so/my-integrations
- Create new integration
- Copy the API key

4. Share your database with the integration:
- Open your todo database in Notion
- Click "..." menu → "Add connections"
- Select your integration

5. Create a .env file:

NOTION_API_KEY=your-api-key-here
NOTION_DATABASE_ID=your-database-id-here

6. Configure Claude Desktop:

{
"mcpServers": {
"notion-todo": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "notion_mcp"],
"cwd": "/path/to/notion-mcp"
}
}
}

The server can be run in two ways:

1. Directly from the command line:


python -m notion_mcp

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

Add a todo for today

Add a new todo item to the list scheduled for today.

Add a task for later

Add a new task to the list scheduled for later.

Show all my todos

Retrieve and display all todo items in the list.

What's on my list for today?

Show the tasks that are scheduled for today.

Check off a task as complete

Mark a specific task in the todo list as completed.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "notion": {
            "cwd": "/path/to/notion-mcp",
            "env": {},
            "args": [
                "-m",
                "notion_mcp"
            ],
            "command": "/path/to/your/.venv/bin/python"
        }
    }
}

Linux

{
    "cwd": "/path/to/notion-mcp",
    "env": [],
    "args": [
        "-m",
        "notion_mcp"
    ],
    "command": "/path/to/your/.venv/bin/python"
}

Macos

{
    "cwd": "/path/to/notion-mcp",
    "env": [],
    "args": [
        "-m",
        "notion_mcp"
    ],
    "command": "/path/to/your/.venv/bin/python"
}

Windows

{
    "cwd": "/path/to/notion-mcp",
    "env": [],
    "args": [
        "-m",
        "notion_mcp"
    ],
    "command": "/path/to/your/.venv/Scripts/python.exe"
}

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 is a personal project designed for a very specific use case: my simple Notion todo list that has just three properties:

- Task (title)
- When (select with only two options: "today" or "later")
- Checkbox (marks if completed)

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.

- Add new todo items
- View all todos
- View today's tasks
- Check off a task as complete

- 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)

git clone https://github.com/yourusername/notion-mcp.git cd notion-mcp
python -m venv .venv source .venv/bin/activate # On Windows use: .venv\Scripts\activate uv pip install -e .

- Go tohttps://www.notion.so/my-integrations
- Create new integration
- Copy the API key

Share your database with the integration:

- Open your todo database in Notion
- Click "..." menu → "Add connections"
- Select your integration

NOTION_API_KEY=your-api-key-here NOTION_DATABASE_ID=your-database-id-here
{ "mcpServers": { "notion-todo": { "command": "/path/to/your/.venv/bin/python", "args": ["-m", "notion_mcp"], "cwd": "/path/to/notion-mcp" } } }
# From the project directory with virtual environment activated python -m notion_mcp

- Automatically through Claude Desktop (recommended):

- The server will start when Claude launches if configured correctly inclaude_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.

- "Show all my todos"
- "What's on my list for today?"
- "Add a todo for today: check emails"
- "Add a task for later: review project"

- Only works with a specific Notion database structure
- No support for complex database schemas
- Limited to "today" or "later" task scheduling
- No support for additional properties or custom fields
- Basic error handling
- No advanced features like recurring tasks, priorities, or tags

If you want to use this with a different database structure, you'll need to modify theserver.pyfile, particularly:

- Thecreate_todo()function to match your database properties
- The todo formatting incall_tool()to handle your data structure
- The input schema inlist_tools()if you want different options

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

- Built to work with Claude Desktop
- Uses Notion's API

AnkiConnect MCP server for interacting with Anki via AnkiConnect.

An MCP Server Integration with Apple Shortcuts

Add smart Backup ability to coding agents like Windsurf, Cursor, Cluade Coder, etc

This server enables LLMs to use calculator for precise numerical calculations.

A CalDAV MCP server to expose calendar operations as tools for AI assistants.

MCP server for easy access to education data through your Canvas LMS instance.

Tools to the query and execute of Dify workflows

Excel manipulation including data reading/writing, worksheet management, formatting, charts, and pivot table

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.