关于 notion-automation
notion-automation 是通过 Rube MCP 调用 Composio Notion 工具包的自动化技能,适用于管理 Notion 内容的用户,涵盖页面、数据库及工作区操作。
主要功能
- 01创建、更新和归档页面
- 02查询数据库并管理记录
- 03读取和编辑页面内容块
- 04创建数据库并修改结构
- 05管理用户和页面评论
适用场景
- 01在 Notion 工作区添加或修改页面
- 02筛选数据库记录并插入行
- 03追加或替换页面内容
- 04查看评论或列出工作区用户
MCP 相关
通过 Rube MCP 使用 Composio 的 Notion 工具包。工作流要求先查询可用工具,并建立有效的 Notion 连接。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill notion-automation安装后在 Claude Code 中输入/notion-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 Notion
通过 Rube MCP 使用 Composio 的 Notion 工具包自动执行 Notion 操作。
工具包文档:composio.dev/toolkits/notion
前置条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS建立有效的 Notion 连接,并使用工具包notion - 始终先调用
RUBE_SEARCH_TOOLS,以获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥,只需添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS能够响应,以验证 Rube MCP 是否可用 - 使用工具包
notion调用RUBE_MANAGE_CONNECTIONS - 如果连接状态不是 ACTIVE,请通过返回的身份验证链接完成 Notion OAuth
- 确认连接状态显示为 ACTIVE 后,再运行任何工作流
核心工作流
1. 创建和管理页面
适用场景:用户想要创建、更新或归档 Notion 页面
工具调用顺序:
NOTION_SEARCH_NOTION_PAGE- 查找父页面或现有页面 [前置条件]NOTION_CREATE_NOTION_PAGE- 在父页面下创建新页面 [可选]NOTION_RETRIEVE_PAGE- 获取页面元数据/属性 [可选]NOTION_UPDATE_PAGE- 更新页面属性、标题、图标、封面 [可选]NOTION_ARCHIVE_NOTION_PAGE- 软删除(归档)页面 [可选]
关键参数:
query:用于 SEARCH_NOTION_PAGE 的搜索文本parent_id:父页面或数据库 IDpage_id:用于检索/更新/归档的页面 IDproperties:符合父级架构的页面属性值
注意事项:
- RETRIEVE_PAGE 仅返回元数据/属性,不返回正文内容;如需页面正文,请使用 FETCH_BLOCK_CONTENTS
- ARCHIVE_NOTION_PAGE 执行的是软删除(设置 archived=true),并非永久删除
- 如果未完整分页处理 has_more/next_cursor,范围较广的搜索结果可能看起来不完整
2. 查询和管理数据库
适用场景:用户想要查询数据库行、插入条目或更新记录
工具调用顺序:
NOTION_SEARCH_NOTION_PAGE- 按名称查找数据库 [前置条件]NOTION_FETCH_DATABASE- 检查架构和属性 [前置条件]NOTION_QUERY_DATABASE/NOTION_QUERY_DATABASE_WITH_FILTER- 查询行 [必需]NOTION_INSERT_ROW_DATABASE- 添加新条目 [可选]NOTION_UPDATE_ROW_DATABASE- 更新现有条目 [可选]
关键参数:
database_id:数据库 ID(来自搜索结果或 URL)filter:符合 Notion 筛选语法的筛选对象sorts:排序对象数组start_cursor:上一条响应中的分页游标properties:插入/更新时符合数据库架构的属性值
注意事项:
- 404 object_not_found 通常表示 database_id 错误,或该数据库未与集成共享
- 结果采用分页方式;忽略 has_more/next_cursor 会导致读取结果被静默截断
- 架构不匹配或缺少必需属性会导致 400 validation_error
- 不能通过 INSERT_ROW_DATABASE 设置公式字段和只读字段
- 筛选器中的属性名称必须与架构完全一致(区分大小写)
3. 管理区块和页面内容
使用场景:用户想要读取、追加或修改页面中的内容区块
工具调用顺序:
NOTION_FETCH_BLOCK_CONTENTS- 读取页面的子区块 [必需]NOTION_ADD_MULTIPLE_PAGE_CONTENT- 向页面追加区块 [可选]NOTION_APPEND_TEXT_BLOCKS- 追加纯文本区块 [可选]NOTION_REPLACE_PAGE_CONTENT- 替换页面的全部内容 [可选]NOTION_DELETE_BLOCK- 移除指定区块 [可选]
关键参数:
block_id/page_id:目标页面或区块的 IDcontent_blocks:区块对象数组(不是child_blocks)text:用于 APPEND_TEXT_BLOCKS 的纯文本内容
注意事项:
- 使用
content_blocks参数,而不是child_blocks——后者会导致验证失败 - 对已归档页面调用 ADD_MULTIPLE_PAGE_CONTENT 会失败;应先通过 UPDATE_PAGE 取消归档
- 创建的区块位于 response.data.results 中;保存区块 ID,以便后续编辑
- DELETE_BLOCK 执行的是归档(archived=true),而非永久删除
4. 管理数据库架构
使用场景:用户想要创建数据库或修改其结构
工具调用顺序:
NOTION_FETCH_DATABASE- 检查当前架构 [前置步骤]NOTION_CREATE_DATABASE- 创建新数据库 [可选]NOTION_UPDATE_SCHEMA_DATABASE- 修改数据库属性 [可选]
关键参数:
parent_id:新数据库的父页面 IDtitle:数据库标题properties:包含类型和选项的属性定义database_id:用于更新架构的数据库 ID
注意事项:
- 无法通过 UPDATE_SCHEMA 更改属性类型;必须创建新属性并迁移数据
- 公式、汇总和关联属性有复杂的配置要求
5. 管理用户和评论
使用场景:用户想要列出工作区用户或管理页面评论
工具调用顺序:
NOTION_LIST_USERS- 列出所有工作区用户 [可选]NOTION_GET_ABOUT_ME- 获取当前已通过身份验证的用户 [可选]NOTION_CREATE_COMMENT- 为页面添加评论 [可选]NOTION_FETCH_COMMENTS- 列出页面评论 [可选]
关键参数:
page_id:评论对应的页面 ID(也称为discussion_id)rich_text:以富文本数组形式表示的评论内容
注意事项:
- 评论关联到页面,而不是单个区块
- people 类型属性筛选器需要使用 LIST_USERS 返回的用户 ID
常见模式
ID 解析
页面/数据库名称 -> ID:
1. Call NOTION_SEARCH_NOTION_PAGE with query=name
2. Paginate with has_more/next_cursor until found
3. Extract id from matching result
数据库架构检查:
1. Call NOTION_FETCH_DATABASE with database_id
2. Extract properties object for field names and types
3. Use exact property names in queries and inserts
分页
- 设置
page_size以指定每页结果数(最多 100) - 检查响应中的
has_more布尔值 - 在下一次请求中传入
start_cursor或next_cursor - 持续请求,直到
has_more为 false
Notion 筛选语法
单个筛选条件:
{"property": "Status", "select": {"equals": "Done"}}
组合筛选条件:
{"and": [
{"property": "Status", "select": {"equals": "In Progress"}},
{"property": "Assignee", "people": {"contains": "user-id"}}
]}
已知注意事项
集成共享:
- 页面和数据库必须与 Notion 集成共享,才能被访问
- 如果项目未与集成共享,标题查询可能返回 0 条结果
属性类型:
- 属性名称区分大小写,且必须与架构完全一致
- Formula、rollup 和 created_time 字段为只读
- Select/multi-select 的值必须与现有选项匹配,除非正在创建新选项
响应解析:
- 响应数据可能嵌套在
data_preview或data.results下 - 应采用防御式解析,并为不同嵌套层级提供回退方案
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Search pages/databases | NOTION_SEARCH_NOTION_PAGE | query |
| Create page | NOTION_CREATE_NOTION_PAGE | parent_id, properties |
| Get page metadata | NOTION_RETRIEVE_PAGE | page_id |
| Update page | NOTION_UPDATE_PAGE | page_id, properties |
| Archive page | NOTION_ARCHIVE_NOTION_PAGE | page_id |
| Duplicate page | NOTION_DUPLICATE_PAGE | page_id |
| Get page blocks | NOTION_FETCH_BLOCK_CONTENTS | block_id |
| Append blocks | NOTION_ADD_MULTIPLE_PAGE_CONTENT | page_id, content_blocks |
| Append text | NOTION_APPEND_TEXT_BLOCKS | page_id, text |
| Replace content | NOTION_REPLACE_PAGE_CONTENT | page_id, content_blocks |
| Delete block | NOTION_DELETE_BLOCK | block_id |
| Query database | NOTION_QUERY_DATABASE | database_id, filter, sorts |
| Query with filter | NOTION_QUERY_DATABASE_WITH_FILTER | database_id, filter |
| Insert row | NOTION_INSERT_ROW_DATABASE | database_id, properties |
| Update row | NOTION_UPDATE_ROW_DATABASE | page_id, properties |
| Get database schema | NOTION_FETCH_DATABASE | database_id |
| Create database | NOTION_CREATE_DATABASE | parent_id, title, properties |
| Update schema | NOTION_UPDATE_SCHEMA_DATABASE | database_id, properties |
| List users | NOTION_LIST_USERS | (none) |
| Create comment | NOTION_CREATE_COMMENT | page_id, rich_text |
| List comments | NOTION_FETCH_COMMENTS | page_id |
Powered by Composio
评论
支持 Markdown