Notion MCP

Notion MCP

A Model Context Protocol server that integrates with Notion's API to manage personal todo lists, allowing users to view, add, and update tasks directly from Claude.

Badhansen

Note Taking
Visit Server

README

notion-mcp

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:
    • Go to https://www.notion.so/my-integrations
    • Create new integration
    • Copy the API key
  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.

Recommended Servers

Apple MCP Server

Apple MCP Server

Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.

Featured
Local
TypeScript
Todoist MCP

Todoist MCP

An MCP server that enables LLMs to interact with Todoist tasks, projects, and other features through the Todoist API.

Featured
TypeScript
Notion API MCP Server

Notion API MCP Server

Enables advanced todo list management and content organization using Notion's API, supporting features like creating databases, dynamic filtering, and collaborative task tracking.

Featured
Python
Todoist MCP Server

Todoist MCP Server

Integrates Claude with Todoist for natural language task management, supporting project and section organization, task creation, updating, completion, and deletion using everyday language.

Featured
JavaScript
Todoist MCP Server

Todoist MCP Server

An MCP server that integrates Claude with Todoist, enabling natural language task management including creating, updating, completing, and deleting tasks.

Featured
JavaScript
Curri MCP Server

Curri MCP Server

Enables interaction with Curri's API by managing text notes, offering tools for note creation, and generating summaries using structured prompts.

Official
Local
JavaScript
Inkdrop MCP Server

Inkdrop MCP Server

Integrates Inkdrop note-taking app with Claude AI through Model Context Protocol, allowing Claude to search, read, create, and update notes in your Inkdrop database.

Official
Local
JavaScript
Notion MCP Server

Notion MCP Server

Enables interaction with Notion through the Notion API by exposing it as tools for LLMs, allowing operations like reading, creating, updating, and deleting Notion pages seamlessly via natural language.

Official
TypeScript
Notion MCP Server

Notion MCP Server

A Model Context Protocol server that connects Claude and other AI assistants to your Notion workspace, allowing AIs to interact with databases, pages, and blocks.

Local
JavaScript
Datetime MCP Server

Datetime MCP Server

This server enables users to store, manage, and summarize notes using a custom URI scheme, with functionality to add new notes and generate summaries with varying levels of detail.

Local
Python