Notion 服务 MCP 接入
通过 MCP 协议提供 Notion API 服务调用,使 LLM 能够与 Notion 工作区进行交互。此外,它采用 Markdown 转换来减少与 LLMs 通信时的上下文大小,优化令牌使用,使交互更加高效。
环境变量
- 需要将 NOTION_API_TOKEN 配置为您在 Notion 上创建的 API integration token
- 可选配置 NOTION_MARKDOWN_CONVERSION,设置为“true”以启用实验性的 Markdown 转换。这可以显著减少查看内容时的令牌消耗,但在尝试编辑页面内容时可能会导致问题
🗺️ 功能清单
工具标识 | 功能描述 | 核心参数 |
---|---|---|
notion_append_block_children | 追加子区块到目标父区块 | block_id , children |
notion_retrieve_block | 获取指定区块的详细信息 | block_id |
notion_retrieve_block_children | 获取父区块的子区块列表 | block_id , start_cursor , page_size |
notion_delete_block | 删除指定区块 | block_id |
notion_retrieve_page | 获取指定页面的详细信息 | page_id |
notion_update_page_properties | 更新页面属性 | page_id , properties |
notion_create_database | 创建数据库 | parent , properties , title |
notion_query_database | 查询数据库中的记录 | database_id , filter , sorts , start_cursor , page_size |
notion_retrieve_database | 获取指定数据库的详细信息 | database_id |
notion_update_database | 更新数据库信息 | database_id , title , description , properties |
notion_create_database_item | 在数据库中创建新条目 | database_id , properties |
notion_search | 搜索页面或数据库 | query , filter , sort , start_cursor , page_size |
notion_list_all_users | 列出工作区中的所有用户(企业版功能) | start_cursor , page_size |
notion_retrieve_user | 获取指定用户的详细信息(企业版功能) | user_id |
notion_retrieve_bot_user | 获取机器人用户的信息 | 无 |
notion_create_comment | 创建评论 | rich_text , parent , discussion_id |
notion_retrieve_comments | 获取与区块或页面相关的评论列表 | block_id , start_cursor , page_size |
仓库地址
https://github.com/suekou/mcp-notion-server/tree/main
🔌 使用方式
参数说明
1. notion_append_block_children
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
block_id | 目标父区块ID | string | 需要追加子区块的父区块标识符 |
children | 子区块对象列表 | array | 要追加的区块对象数组(遵循Notion Block Object规范) |
返回: 有关附加块的信息
2. notion_retrieve_block
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
block_id | 目标区块ID | string | 需要获取信息的区块标识符 |
返回: 有关该区块的详细信息
3. notion_retrieve_block_children
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
block_id | 父区块ID | string | 需要获取子列表的父区块标识符 |
start_cursor | 分页起始位置 | string | 可选,分页查询起始游标(来自前一次响应) |
page_size | 返回数量限制 | number | 可选,单次请求最大返回数量(默认100,最大值100) |
返回: 子块列表
4. notion_delete_block
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
block_id | 待删除区块ID | string | 需要删除的区块标识符 |
返回: 删除确认
5. notion_retrieve_page
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
page_id | 目标页面ID | string | 需要获取详细信息的页面标识符 |
返回: 关于页面的详细信息
6. notion_update_page_properties
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
page_id | 目标页面ID | string | 需要更新的页面标识符 |
properties | 更新属性对象 | object | 包含需要更新的属性键值对(遵循Notion Properties规范) |
返回: 有关更新页面的信息
7. notion_create_database
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
parent | 父对象信息 | object | 数据库的父级对象(需包含page_id或workspace信息) |
properties | 属性结构定义 | object | 数据库的字段类型定义 |
title | 数据库标题 | array | 可选,标题富文本数组 |
返回: 有关创建的数据库的信息
8. notion_query_database
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
database_id | 目标数据库ID | string | 需要查询的数据库标识符 |
filter | 过滤条件 | object | 可选,查询过滤条件 |
sorts | 排序规则 | array | 可选,结果排序规则数组 |
start_cursor | 分页起始位置 | string | 可选,分页查询起始游标 |
page_size | 返回数量限制 | number | 可选,单次请求最大返回数量(默认100,最大值100) |
返回: 查询结果列表
9. notion_retrieve_database
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
database_id | 目标数据库ID | string | 需要获取信息的数据库标识符 |
返回: 关于数据库的详细信息
10. notion_update_database
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
database_id | 目标数据库ID | string | 需要更新的数据库标识符 |
title | 新标题 | array | 可选,标题数组 |
description | 新描述 | array | 可选,描述数组 |
properties | 更新属性架构 | object | 可选,新的属性字段定义 |
返回: 有关更新数据库的信息
11. notion_create_database_item
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
database_id | 目标数据库ID | string | 需要添加条目的数据库标识符 |
properties | 条目属性值 | object | 必须匹配数据库结构的属性 |
返回: 有关新创建数据库项的信息
12. notion_search
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
query | 搜索关键词 | string | 可选,在标题中搜索的关键词 |
filter | 结果类型过滤 | object | 可选,限制结果为pages/databases(默认返回全部) |
sort | 排序规则 | object | 可选,结果排序规则 |
start_cursor | 分页起始位置 | string | 可选,分页查询起始游标 |
page_size | 返回数量限制 | number | 可选,单次请求最大返回数量(默认100,最大值100) |
返回: 匹配页面或数据库的列表
13. notion_list_all_users
此功能需要升级到 Notion 企业计划,并使用组织 API 密钥以避免权限错误
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
start_cursor | 分页起始位置 | string | 可选,分页查询起始游标 |
page_size | 返回数量限制 | number | 可选,单次请求最大返回数量(最大值100) |
返回: 工作区中所有用户的分页列表
14. notion_retrieve_user
此功能需要升级到 Notion 企业计划,并使用组织 API 密钥以避免权限错误
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
user_id | 目标用户ID | string | 需要获取信息的用户标识符 |
返回: 关于指定用户的详细信息
15. notion_retrieve_bot_user
返回: 关于机器人用户的信息,包括授权集成的人的详细信息
16. notion_create_comment
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
rich_text | 评论内容 | array | 富文本内容数组(包含text对象) |
parent | 关联页面 | object | 可选,必须包含page_id(与discussion_id二选一) |
discussion_id | 讨论ID | string | 可选,现有讨论标识符 |
返回: 有关创建的评论的信息
17. notion_retrieve_comments
参数名称 | 描述 | 参数类型 | 参数描述 |
---|---|---|---|
block_id | 目标区块/页面ID | string | 需要获取评论的区块或页面标识符 |
start_cursor | 分页起始位置 | string | 可选,分页查询起始游标 |
page_size | 返回数量限制 | number | 可选,单次请求最大返回数量(最大值100) |
返回: 与指定块或页面相关的评论的分页列表