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 option
Add this skill
npx mdskills install danhilse/notion-mcpWell-documented MCP server for basic Notion todo management with clear setup and honest scope limitations
1# Notion MCP Integration23A 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.45<p align="center">6 <img src="assets/demo.gif" width="600"/>7</p>89## Important Note1011This is a personal project designed for a very specific use case: my simple Notion todo list that has just three properties:12- Task (title)13- When (select with only two options: "today" or "later")14- Checkbox (marks if completed)1516[Example Notion Database](https://danhilse.notion.site/14e5549555a08078afb5ed5d374bb656?v=14e5549555a081f9b5a4000cdf952cb9&pvs=4)1718While 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.1920## Features2122- Add new todo items23- View all todos24- View today's tasks25- Check off a task as complete2627## Prerequisites2829- Python 3.10 or higher30- A Notion account31- A Notion integration (API key)32- A Notion database that matches the exact structure described above (or willingness to modify the code for your structure)3334## Setup35361. Clone the repository:37```bash38git clone https://github.com/yourusername/notion-mcp.git39cd notion-mcp40```41422. Set up Python environment:43```bash44python -m venv .venv45source .venv/bin/activate # On Windows use: .venv\Scripts\activate46uv pip install -e .47```48493. Create a Notion integration:50 - Go to https://www.notion.so/my-integrations51 - Create new integration52 - Copy the API key53544. Share your database with the integration:55 - Open your todo database in Notion56 - Click "..." menu → "Add connections"57 - Select your integration58595. Create a `.env` file:60```env61NOTION_API_KEY=your-api-key-here62NOTION_DATABASE_ID=your-database-id-here63```64656. Configure Claude Desktop:66```json67{68 "mcpServers": {69 "notion-todo": {70 "command": "/path/to/your/.venv/bin/python",71 "args": ["-m", "notion_mcp"],72 "cwd": "/path/to/notion-mcp"73 }74 }75}76```7778## Running the Server7980The server can be run in two ways:81821. Directly from the command line:83```bash84# From the project directory with virtual environment activated85python -m notion_mcp86```87882. Automatically through Claude Desktop (recommended):89- The server will start when Claude launches if configured correctly in `claude_desktop_config.json`90- No manual server management needed91- Server stops when Claude is closed9293Note: 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.9495## Usage9697Basic commands through Claude:98- "Show all my todos"99- "What's on my list for today?"100- "Add a todo for today: check emails"101- "Add a task for later: review project"102103## Limitations104105- Only works with a specific Notion database structure106- No support for complex database schemas107- Limited to "today" or "later" task scheduling108- No support for additional properties or custom fields109- Basic error handling110- No advanced features like recurring tasks, priorities, or tags111112## Customization113114If you want to use this with a different database structure, you'll need to modify the `server.py` file, particularly:115- The `create_todo()` function to match your database properties116- The todo formatting in `call_tool()` to handle your data structure117- The input schema in `list_tools()` if you want different options118119## Project Structure120```121notion_mcp/122├── pyproject.toml123├── README.md124├── .env # Not included in repo125└── src/126 └── notion_mcp/127 ├── __init__.py128 ├── __main__.py129 └── server.py # Main implementation130```131132## License133134MIT License - Use at your own risk135136## Acknowledgments137138- Built to work with Claude Desktop139- Uses Notion's API140
Full transparency — inspect the skill content before installing.