MIT License
160
最近更新:3个月前

一个简单的MCP集成,允许Claude读取和管理个人Notion待办事项列表

Notion MCP 集成

一个简单的模型上下文协议(MCP)服务器,通过与 Notion API 集成来管理我的个人待办事项列表(通过 Claude 操作)。这是一个基础实现,专门针对我在 Notion 中设置的极简待办事项列表。

重要说明

这是一个个人项目,专为非常特定的使用场景设计:我的简单 Notion 待办事项列表仅包含三个属性:

  • 任务(标题)
  • 时间(单选,只有两个选项:"today" 或 "later")
  • 复选框(标记是否完成)

示例 Notion 数据库

虽然你可以将此作为你自己 Notion 集成的起点,但很可能需要修改代码以匹配你特定的数据库结构和需求。

功能特性

  • 添加新待办事项
  • 查看所有待办事项
  • 查看今日任务
  • 标记任务为已完成

先决条件

  • Python 3.10 或更高版本
  • Notion 账户
  • Notion 集成(API 密钥)
  • 符合上述确切结构的 Notion 数据库(或愿意为你的结构修改代码)

设置步骤

  1. 克隆仓库:
bash 复制代码
git clone https://github.com/yourusername/notion-mcp.git
cd notion-mcp
  1. 设置 Python 环境:
bash 复制代码
python -m venv .venv
source .venv/bin/activate  # Windows系统使用:.venv\Scripts\activate
uv pip install -e .
  1. 创建 Notion 集成:

  2. 将你的数据库分享给集成:

    • 在 Notion 中打开待办事项数据库
    • 点击"..."菜单 → "添加连接"
    • 选择你的集成
  3. 创建 .env 文件:

env 复制代码
NOTION_API_KEY=你的API密钥
NOTION_DATABASE_ID=你的数据库ID
  1. 配置 Claude Desktop:
json 复制代码
{
  "mcpServers": {
    "notion-todo": {
      "command": "/path/to/your/.venv/bin/python",
      "args": ["-m", "notion_mcp"],
      "cwd": "/path/to/notion-mcp"
    }
  }
}

运行服务器

可通过两种方式运行服务器:

  1. 直接从命令行运行:
bash 复制代码
# 在项目目录中激活虚拟环境后执行
python -m notion_mcp
  1. 通过 Claude Desktop 自动运行(推荐):
  • 如果正确配置了 claude_desktop_config.json,服务器将在 Claude 启动时自动运行
  • 无需手动管理服务器
  • 关闭 Claude 时服务器自动停止

注意:直接运行时,除非出现错误,否则服务器不会显示任何输出 - 这是正常现象,因为它正在等待 MCP 命令。

使用方法

通过 Claude 的基本命令:

  • "显示我所有的待办事项"
  • "我今天有哪些任务?"
  • "为今天添加待办事项:查看邮件"
  • "为稍后添加任务:评审项目"

局限性

  • 仅适用于特定的 Notion 数据库结构
  • 不支持复杂的数据库模式
  • 仅限于"today"或"later"的任务安排
  • 不支持额外属性或自定义字段
  • 基础错误处理
  • 无高级功能如重复任务、优先级或标签

自定义配置

如果你想在不同的数据库结构中使用此项目,需要修改 server.py 文件,特别是:

  • create_todo() 函数以匹配你的数据库属性
  • call_tool() 中的待办事项格式化部分以处理你的数据结构
  • 如果需要不同选项,修改 list_tools() 中的输入模式

项目结构

复制代码
notion_mcp/
├── pyproject.toml
├── README.md
├── .env                   # 不包含在仓库中
└── src/
    └── notion_mcp/
        ├── __init__.py
        ├── __main__.py
        └── server.py      # 主实现文件

许可证

MIT 许可证 - 使用风险自负

致谢

  • 为配合 Claude Desktop 构建
  • 使用 Notion 的 API