Notion MCP
Integrates with Notion's API to manage personal todo lists, providing functions to show all tasks, add new tasks, and update existing tasks in a Notion workspace.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Notion MCPadd a task to call the dentist tomorrow at 2 PM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
notion-mcp
A simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list.
Demo

Related MCP server: Notion MCP Server
Visual Guide
Notion MCP Query 1

Notion MCP Query 2

Notion MCP Query 3

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 claudeClone the repository:
git clone https://github.com/Badhansen/notion-mcp.git
cd notion-mcpSet up Python environment:
uv venv
source .venv/bin/activate
uv pip install -e .Create a Notion integration:
Go to https://www.notion.so/my-integrations
Create new integration
Copy the API key
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
Create
.envfile:
cp .env.example .envConfigure 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"To use it with Claude Desktop as intended you need to adjust your
claude_desktop_config.jsonfile. Go toClaude Desktop -> Settings -> Developer -> Edit Config. Now add theNotionserver 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.lockSupport 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
Fork the repository
Create feature branch
Submit pull request
License
MIT License. See LICENSE file for details.
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