Notion内容编程接口

基于Dedalus框架开发的Notion MCP服务,提供对Notion工作区的全面编程访问,支持AI代理搜索、读取、创建和更新Notion内容。

  • by NickyHeC
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NickyHeC/notion-mcp

使用说明

概念mcp

基于以下平台构建的Notion MCP服务器 戴达卢斯 框架。

通过模型上下文协议提供对Notion工作区的全面访问, 使AI代理能够以编程方式搜索、读取、创建和更新Notion内容。

特性

  • 搜索 --跨工作区中的所有页面和数据库进行全文搜索
  • 页面 --通过简化的属性处理获取、创建和更新页面
  • 内容 --读取并附加基于块的页面内容
  • 数据库 --创建数据库,使用过滤器/排序进行查询,检索模式
  • 标记语言 --使用Notion增强的markdown格式读取和写入页面内容
  • 评论 --在页面和讨论线程上列出并添加评论
  • 用户 --列出工作区成员(人员和机器人)
  • 文件上传 --启动媒体附件的文件上传
  • 自动 Notion-Version 集管注入(2026-03-11)
  • 速率限制为3个要求/秒——尊重 Retry-After 429个响应的标题

可用工具

工具 说明
notion_search 在工作区中的所有页面和数据库中搜索
notion_get_page 按ID检索具有简化属性的页面
notion_create_page 在页面下或数据库中创建新页面
notion_update_page 更新页面属性、存档状态、图标或封面
notion_get_page_content 获取页面的子块(内容)
notion_append_page_content 将块附加到页面
notion_get_database 检索数据库架构和元数据
notion_query_database 使用筛选器和排序查询数据库
notion_create_database 在页面下创建新数据库
notion_get_page_markdown 以增强的markdown格式获取页面内容
notion_update_page_markdown 使用markdown更新页面内容
notion_get_comments 在页面或块上列出评论
notion_add_comment 向页面或讨论线程添加评论
notion_list_users 列出所有工作区用户
notion_upload_file 为媒体块创建文件上传

设置

先决条件

安装

uv sync

配置

  1. 复制 .env.example 到 .env:
cp .env.example .env
  1. 添加您的Notion内部集成令牌:
NOTION_API_KEY=ntn_...
  1. 连接您的集成 转到要访问的页面/数据库 在观念(分享→ 连接→ 选择您的集成)。

跑步

uv run src/main.py

服务器在端口上启动 8080 并通过MCP协议公开工具。

建筑

src/
├── main.py                 # Entrypoint — load_dotenv + asyncio.run
├── server.py               # MCPServer setup, tool registration
├── notion/
│   ├── config.py           # Connection + SecretKeys for Notion API
│   ├── request.py          # REST dispatch, coercion helpers, property simplification
│   └── types.py            # Frozen dataclasses (PageInfo, BlockInfo, etc.)
└── tools/
    ├── __init__.py          # Aggregates all tool lists into notion_tools
    ├── search.py            # notion_search
    ├── pages.py             # notion_get_page, notion_create_page, notion_update_page
    ├── blocks.py            # notion_get_page_content, notion_append_page_content
    ├── databases.py         # notion_get_database, notion_query_database, notion_create_database
    ├── markdown.py          # notion_get_page_markdown, notion_update_page_markdown
    ├── comments.py          # notion_get_comments, notion_add_comment
    ├── users.py             # notion_list_users
    └── files.py             # notion_upload_file

API注意事项

  • 集成必须明确连接到页面/数据库才能访问它们
  • 每个分页响应最多100个结果
  • 文件上传限制为5 MiB(免费)/5 GiB(付费工作区)
  • 某些块类型是只读的(例如,AI会议笔记)
  • API版本由 Notion-Version 标题(2026-03-11)

许可证

麻省理工学院