Notion MCP 集成
一个简单的模型上下文协议(MCP)服务器,通过集成 Notion 的 API,在 Claude 中管理我的个人待办事项列表。这是一个针对我 Notion 中极简待办事项列表设置的基本实现。
重要提示
这是一个为特定用例设计的个人项目:我的 Notion 待办事项列表非常简单,只有三个属性:
- 任务(标题)
- 时间(选择,只有两个选项:"今天"或"稍后")
- 复选框(标记是否完成)
虽然你可以将此作为你自己的 Notion 集成的起点,但很可能需要修改代码以匹配你特定的数据库结构和需求。
功能
- 添加新的待办事项
- 查看所有待办事项
- 查看今天的任务
- 将任务标记为完成
前置条件
- Python 3.10 或更高版本
- 一个 Notion 账户
- 一个 Notion 集成(API 密钥)
- 一个与上述结构完全匹配的 Notion 数据库(或修改代码以适应你的结构的意愿)
设置
- 克隆仓库:
git clone https://github.com/yourusername/notion-mcp.git
cd notion-mcp
- 设置 Python 环境:
python -m venv .venv
source .venv/bin/activate # 在 Windows 上使用:.venv\Scripts\activate
uv pip install -e .
-
创建 Notion 集成:
- 前往 https://www.notion.so/my-integrations
- 创建新的集成
- 复制 API 密钥
-
与集成共享你的数据库:
- 在 Notion 中打开你的待办事项数据库
- 点击 "..." 菜单 → "添加连接"
- 选择你的集成
-
创建一个
.env文件:
NOTION_API_KEY=your-api-key-here
NOTION_DATABASE_ID=your-database-id-here
- 配置 Claude Desktop:
{
"mcpServers": {
"notion-todo": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "notion_mcp"],
"cwd": "/path/to/notion-mcp"
}
}
}
运行服务器
服务器可以通过两种方式运行:
- 直接从命令行:
# 在已激活虚拟环境的工程目录中
python -m notion_mcp
- 通过 Claude Desktop 自动运行(推荐):
- 如果在
claude_desktop_config.json中配置正确,服务器将在 Claude 启动时自动启动 - 无需手动管理服务器
- 当 Claude 关闭时服务器停止
注意:直接运行时,除非出现错误,否则服务器不会显示任何输出 - 这是正常的,因为它正在等待 MCP 命令。
使用方法
通过 Claude 的基本命令:
- "显示我的所有待办事项"
- "今天我的列表上有什么?"
- "添加今天的待办事项:检查邮件"
- "添加稍后的任务:审查项目"
限制
- 仅适用于特定的 Notion 数据库结构
- 不支持复杂的数据库模式
- 限制为 "今天" 或 "稍后" 的任务调度
- 不支持附加属性或自定义字段
- 基本错误处理
- 不支持高级功能,如周期性任务、优先级或标签
定制
如果你想用不同的数据库结构使用此项目,你需要修改 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