Skip to main content
Glama

notion-mcp

Ask DeepWiki

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

Demo

Demo

Related MCP server: Notion MCP Server

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.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Badhansen/notion-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server