Notion MCP Integration:Notion Todo MCP服务器

项目简介

本项目 'danhilse_notion_mcp' 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于将你的 Notion 数据库变成一个由 Claude 等 LLM 驱动的智能 Todo 列表。它允许你通过自然语言指令,例如“添加一个待办事项”、“查看今天的任务”、“完成一个任务”等,直接与你的 Notion Todo 列表进行交互。

请注意:此项目最初是为作者个人定制的,假设你的 Notion 数据库结构与示例数据库完全一致。如果你的数据库结构不同,你可能需要修改代码以适应你的需求。示例数据库链接:Example Notion Database

主要功能点

  • 添加新的 Todo 事项: 通过自然语言指令快速添加任务到你的 Notion Todo 列表。
  • 查看所有 Todo 事项: 获取并展示 Notion 数据库中所有 Todo 事项。
  • 查看今天的任务: 筛选并展示标记为“今天”的任务。
  • 标记任务为完成: 将指定的 Todo 事项在 Notion 数据库中标记为已完成。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/MCP-Mirror/danhilse_notion_mcp.git
    cd danhilse_notion_mcp
  2. 设置 Python 虚拟环境:

    python -m venv .venv
    source .venv/bin/activate   # Linux/macOS
    .venv\Scripts\activate  # Windows
  3. 安装项目依赖:

    uv pip install -e .
  4. 创建 Notion Integration (API 密钥):

    • 访问 Notion Integrations 并创建一个新的 integration。
    • 复制生成的 API 密钥 (Internal Integration Token)。
  5. 共享你的数据库给 Integration:

    • 打开你的 Notion Todo 数据库。
    • 点击数据库页面右上角的 '...' 菜单,选择 "Add connections"。
    • 在弹出的窗口中,搜索并选择你刚刚创建的 integration。
  6. 创建 '.env' 文件:

    • 在项目根目录下创建 '.env' 文件,并填入你的 Notion API 密钥和数据库 ID。
      NOTION_API_KEY=你的 Notion API 密钥
      NOTION_DATABASE_ID=你的 Notion 数据库 ID
      请替换 '你的 Notion API 密钥' 和 '你的 Notion 数据库 ID' 为你实际的值。
      • 如何获取 Notion Database ID: 打开你的 Notion 数据库页面,URL 类似于 'https://www.notion.so/your-workspace-name/xxxxxxxxxxxxxxxxxxxxxxxxxxxx?v=xxxxxxxxxxxxxxxxxxxxxxxxxxxx',其中 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' 部分就是你的 Database ID。

服务器配置 (Claude Desktop)

要将此 MCP 服务器与 Claude Desktop 集成,你需要在 Claude Desktop 的配置文件中添加以下配置。通常配置文件路径为 '~/.claude-desktop/config.json' (macOS/Linux) 或 '%USERPROFILE%.claude-desktop\config.json' (Windows)。

在 'config.json' 文件中,找到 'mcpServers' 部分(如果不存在则创建),并添加如下配置:

{
  "mcpServers": {
    "notion-todo": {  // 服务器名称,可以自定义,例如 "notion-todo-server"
      "command": "/path/to/your/danhilse_notion_mcp/.venv/bin/python", // Python 解释器路径,请替换为你的虚拟环境中的 Python 路径
      "args": ["-m", "notion_mcp"], // 启动服务器的参数,固定为 ["-m", "notion_mcp"]
      "cwd": "/path/to/your/danhilse_notion_mcp" // 项目根目录,请替换为你的 danhilse_notion_mcp 仓库的绝对路径
    }
  }
}

请务必根据你的实际安装路径修改 'command' 和 'cwd' 的值。 例如,如果你的 'danhilse_notion_mcp' 仓库克隆在 '/Users/yourusername/Documents/notion-mcp',则配置应如下所示 (macOS/Linux):

{
  "mcpServers": {
    "notion-todo": {
      "command": "/Users/yourusername/Documents/notion-mcp/.venv/bin/python",
      "args": ["-m", "notion_mcp"],
      "cwd": "/Users/yourusername/Documents/notion-mcp"
    }
  }
}

基本使用方法

配置完成后,启动 Claude Desktop。当 Claude 运行时,'notion-todo' MCP 服务器将自动启动。你可以通过以下自然语言指令与 Claude 交互,管理你的 Notion Todo 列表:

  • 查看所有 Todos: "Show all my todos", "What are all my todos?", "List all tasks"。
  • 查看今天的 Todos: "What's on my list for today?", "Show today's tasks", "What todos do I have today?"。
  • 添加 Todo (今天): "Add a todo for today: 买菜", "Remind me to pay bills today", "Todo today: 预约理发"。
  • 添加 Todo (稍后): "Add a task for later: 学习 Python", "Schedule review project for later", "Todo later: 整理书房"。
  • 完成 Todo: "Mark task ID [任务ID] as complete", "Complete todo task [任务ID]"。 注意:你需要先通过 "Show all my todos" 或 "Show today's todos" 获取任务的 ID,然后才能使用 ID 完成任务。 例如,如果 "Show all my todos" 返回的任务列表中,某个任务的 ID 是 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 你可以使用 "Mark task ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx as complete" 来完成该任务。

请注意:

  • 此版本功能较为基础,仅支持与特定结构的 Notion Todo 数据库交互。
  • 如果你的 Notion 数据库结构与示例不符,你需要根据 'README.md' 中的 "Customization" 部分的指引修改 'src/notion_mcp/server.py' 文件。

信息

分类

生产力应用