badhansen_notion_mcp

badhansen_notion_mcp

by Badhansen

License

Skip to content

You signed in with another tab or window. Reload
to refresh your session. You signed out in another tab or window. Reload
to refresh your session. You switched accounts on another tab or window. Reload
to refresh your session. Dismiss alert

Badhansen / notion-mcp Public

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

License

MIT license

3 stars
1 fork
Branches
Tags
Activity

Star

Notifications
You must be signed in to change notification settings

Badhansen/notion-mcp

master

1 Branch
0 Tags


Go to file

Code

Folders and files

| Name | | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| Latest commit
-------------

Badhansen
Badhansen

Merge pull request
#1
from smithery-ai/smithery/config-akw5

Mar 15, 2025

3375dc0
 · Mar 15, 2025

History
-------

13 Commits

| | |
| docs/assets | | docs/assets | docs(readme): update image display section and add demo video | Feb 3, 2025 |
| src | | src | fix: fixed task completion API call | Feb 2, 2025 |
| .env.example | | .env.example | feat(server): implement basic MCP server | Feb 2, 2025 |
| .gitignore | | .gitignore | feat(server): implement basic MCP server | Feb 2, 2025 |
| .python-version | | .python-version | feat(server): implement basic MCP server | Feb 2, 2025 |
| Dockerfile | | Dockerfile | Add Dockerfile | Mar 13, 2025 |
| LICENSE | | LICENSE | Added LICENSE | Feb 2, 2025 |
| README.md | | README.md | Update README | Mar 13, 2025 |
| pyproject.toml | | pyproject.toml | feat(server): implement basic MCP server | Feb 2, 2025 |
| smithery.yaml | | smithery.yaml | Add Smithery configuration | Mar 13, 2025 |
| uv.lock | | uv.lock | feat(server): implement basic MCP server | Feb 2, 2025 |
| View all files | | |

Repository files navigation

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
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
    • 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.

About

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

Resources

Readme

License

MIT license

Activity

Stars

3 stars

Watchers

1 watching

Forks

1 fork

Report repository

Releases


No releases published

Packages 0


No packages published

Contributors 2


Languages

You can’t perform that action at this time.

Features & Capabilities

Categories
mcp_server model_context_protocol

Implementation Details

Stats

0 Views
3 GitHub Stars

Repository Info

Badhansen Organization

Similar MCP Servers

continuedev_continue by continuedev
25049
21423
9300