
Notion API MCP Server 精选
使用 Notion API 实现高级待办事项列表管理和内容组织,支持创建数据库、动态筛选和协作任务跟踪等功能。
README
Notion API MCP
一个模型上下文协议 (MCP) 服务器,通过 Notion 的 API 提供高级的待办事项列表管理和内容组织功能。MCP 使 AI 模型能够与外部工具和服务交互,从而实现与 Notion 强大功能的无缝集成。
MCP 概述
基于 Python 的 MCP 服务器,使 AI 模型能够与 Notion 的 API 交互,提供:
- 待办事项管理:创建、更新和跟踪具有富文本、截止日期、优先级和嵌套子任务的任务
- 数据库操作:创建和管理具有自定义属性、过滤器和视图的 Notion 数据库
- 内容组织:使用 Markdown 支持、分层列表和块操作来构建和格式化内容
- 实时集成:通过清晰的异步实现与 Notion 的工作区、页面和数据库直接交互
快速开始
# 克隆和设置
git clone https://github.com/yourusername/notion-api-mcp.git
cd notion-api-mcp
uv venv && source .venv/bin/activate
# 安装和配置
uv pip install -e .
cp .env.integration.template .env
# 将您的 Notion 凭据添加到 .env:
# NOTION_API_KEY=ntn_your_integration_token_here
# NOTION_PARENT_PAGE_ID=your_page_id_here # 用于新数据库
# NOTION_DATABASE_ID=your_database_id_here # 用于现有数据库
# 运行服务器
python -m notion_api_mcp
开始使用
1. 创建 Notion 集成
- 转到 https://www.notion.so/my-integrations
- 点击 "New integration"(新建集成)
- 命名您的集成(例如,“My MCP Integration”)
- 选择您将使用集成的 workspace(工作区)
- 复制 "Internal Integration Token"(内部集成令牌) - 这将是您的
NOTION_API_KEY
- 应该以 "ntn_" 开头
2. 设置 Notion 访问权限
您需要一个父页面(用于创建新数据库)或一个现有数据库 ID:
选项 A:用于新数据库的父页面
- 在浏览器中打开 Notion
- 创建一个新页面或打开一个您想要创建数据库的现有页面
- 点击右上角的 ••• 菜单
- 选择 "Add connections"(添加连接)并选择您的集成
- 从 URL 复制页面 ID - 它是最后一个斜杠之后和问号之前的字符串
- 示例:在
https://notion.so/myworkspace/123456abcdef...
中,ID 是123456abcdef...
- 这将是您的
NOTION_PARENT_PAGE_ID
- 示例:在
选项 B:现有数据库
- 打开您现有的 Notion 数据库
- 确保它已连接到您的集成(••• 菜单 > Add connections(添加连接))
- 从 URL 复制数据库 ID
- 示例:在
https://notion.so/myworkspace/123456abcdef...?v=...
中,ID 是123456abcdef...
- 这将是您的
NOTION_DATABASE_ID
- 示例:在
3. 安装 MCP 服务器
- 创建虚拟环境:
cd notion-api-mcp
uv venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
- 安装依赖项:
uv pip install -e .
- 配置环境:
cp .env.integration.template .env
- 使用您的 Notion 凭据编辑 .env:
NOTION_API_KEY=ntn_your_integration_token_here
# 根据您的需要选择其中一个或两个:
NOTION_PARENT_PAGE_ID=your_page_id_here # 用于创建新数据库
NOTION_DATABASE_ID=your_database_id_here # 用于处理现有数据库
4. 配置 Claude Desktop
重要提示:虽然服务器支持 .env 文件和环境变量,但 Claude Desktop 特别需要在其配置文件中进行配置才能使用 MCP。
添加到 Claude Desktop 的配置 (~/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"notion-api": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "notion_api_mcp"],
"env": {
"NOTION_API_KEY": "ntn_your_integration_token_here",
// 选择其中一个或两个:
"NOTION_PARENT_PAGE_ID": "your_page_id_here",
"NOTION_DATABASE_ID": "your_database_id_here"
}
}
}
}
注意:即使您配置了 .env 文件,您也必须将这些环境变量添加到 Claude Desktop 配置中,以便 Claude 使用 MCP。.env 文件主要用于本地开发和测试。
文档
- 配置详情 - 详细的配置选项和环境变量
- 功能 - 完整的功能列表和功能
- 架构 - 可用工具和使用示例的概述
- API 参考 - 详细的 API 端点和实现细节
- 测试覆盖率矩阵 - 测试覆盖率和验证状态
- 依赖项 - 项目依赖项和版本信息
- 更新日志 - 开发进度和更新
开发
该服务器在整个过程中使用现代 Python 异步功能:
- 使用 Pydantic 模型进行类型安全配置
- 使用 httpx 进行异步 HTTP 以获得更好的性能
- 清晰的 MCP 集成,用于公开 Notion 功能
- 正确的资源清理和错误处理
调试
该服务器包括全面的日志记录:
- 用于开发的控制台输出
- 作为服务运行时进行文件日志记录
- 详细的错误消息
- 调试级别的请求/响应日志记录
设置 PYTHONPATH
以在直接运行时包含项目根目录:
PYTHONPATH=/path/to/project python -m notion_api_mcp
未来发展
计划的增强功能:
-
性能优化
- 添加请求缓存
- 优化数据库查询
- 实施连接池
-
高级功能
- 多工作区支持
- 批量操作
- 实时更新
- 高级搜索功能
-
开发者体验
- 交互式 API 文档
- 用于常见操作的 CLI 工具
- 其他代码示例
- 性能监控
-
测试增强
- 性能基准
- 负载测试
- 其他边缘情况
- 扩展的集成测试
推荐服务器
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。
Todoist MCP Server
将 Claude 与 Todoist 集成,实现自然语言任务管理,支持使用日常语言进行项目和版块组织、任务创建、更新、完成和删除。
Inkdrop MCP Server
通过模型上下文协议将 Inkdrop 笔记应用与 Claude AI 集成,允许 Claude 在您的 Inkdrop 数据库中搜索、阅读、创建和更新笔记。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。
Notion MCP Server
通过将 Notion API 作为 LLM 的工具公开,从而实现与 Notion 的交互。这使得可以通过自然语言无缝地进行读取、创建、更新和删除 Notion 页面等操作。
DeltaTask MCP Server
提供 API 接口,用于访问本地托管的任务管理系统,该系统具有创建、更新和组织任务的功能,包括支持紧急程度、工作量估算、子任务以及与 Obsidian Markdown 文件的双向同步。

browser-use MCP server
这个服务器提供了一个笔记存储系统,它使用自定义的 URI 方案,允许用户添加和总结笔记,并可以调整总结的详细程度。

MCP Server for Things3
启用与 Things3 的集成,允许通过 MCP 协议创建和管理任务和项目,包括与 Agenda 项目的同步。
Apple Notes MCP Server
通过自然语言与 Apple Notes 互动,支持笔记创建、搜索和检索,并与 iCloud 集成,实现无缝的笔记管理。
Obsidian MCP Server
通过模型上下文协议,实现LLM与Obsidian库之间的交互,支持安全的文件操作、内容管理和高级搜索功能。