home / mcp / notion mcp integration mcp server
Provides a Python-based MCP server to manage a Notion todo list via Claude, enabling add, view, and complete tasks.
Configuration
View docs{
"mcpServers": {
"danhilse-notion_mcp": {
"command": "python",
"args": [
"-m",
"notion_mcp"
],
"env": {
"NOTION_API_KEY": "YOUR_API_KEY",
"NOTION_DATABASE_ID": "YOUR_DATABASE_ID"
}
}
}
}This MCP server lets you manage a Notion-based todo list through Claude by exposing a simple set of commands to add, view, and complete tasks. It runs as a Python module and integrates with your Notion database to keep your tasks synchronized and actionable from Claude.
You interact with the Notion MCP server through Claude by issuing natural language commands that map to todo actions. You can view all tasks, see today’s tasks, add a new task for today or for later, and mark tasks as completed. Start the server first, then configure Claude to connect to it if you want Claude to drive your workflow.
Prerequisites you need before you begin:
Follow these concrete steps to set up locally:
# 1. Clone the project
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
pip install -e .3. Create a Notion integration and obtain the API key from your Notion account. Then share your database with the integration so the MCP can access the data.
env
NOTION_API_KEY=your-api-key-here
NOTION_DATABASE_ID=your-database-id-here4. Configure Claude Desktop to connect to your MCP server as shown in the example configuration snippet below (these fields must be adjusted to your environment).
{
"mcpServers": {
"notion-todo": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "notion_mcp"],
"cwd": "/path/to/notion-mcp"
}
}
}Create a local environment file with your Notion credentials as shown above. You can customize the Notion database structure in the source if your setup differs. The server runs in the background and will accept MCP commands from Claude once started.
Run the server directly to keep it running in your shell or allow Claude Desktop to manage it automatically. When running directly, no output appears unless an error occurs — this is expected while the server waits for MCP commands.
Keep your API key secure and do not commit it to version control. Use a dedicated Notion integration with limited permissions if possible, and rotate keys as needed. Ensure the Notion database structure matches the expected fields to prevent misalignment between Claude commands and Notion records.
Add a new todo for today: create a task labeled accordingly, e.g., Add a todo for today: check emails.
View today’s tasks: ask Claude to show tasks scheduled for today.
Mark a task as completed: find the task in the Notion database and check its Checkbox property.
If you want to adapt this MCP to a different Notion database structure, modify the functions that create todos and format the responses to match your properties and constraints.
Retrieve and display all tasks from the Notion Todo database and present them to the user.
Filter and show tasks that are marked for today in the Notion database.
Create a new todo item with the When set to today and the provided task description.
Create a new todo item with the When set to later and the provided task description.
Mark the selected task as completed by toggling its Checkbox property in Notion.