概念完整mcp
功能齐全的Notion MCP服务器,具有深度页面读取、手术块编辑、快照/还原、文件上传(Notion托管的图像和PDF)、表行操作、从垃圾箱中还原页面、跨父级的破坏性页面复制以及包括表在内的所有块类型。
v0.3.0的新增功能
- 从回收站还原页面。
restore_page 通过发送来显式取消存档页面 archived=False。这是与 delete_block 在一个页面上,围绕故意安全防护工作 update_page 这阻碍了 archived=False。还原父级时,级联子档案会自动还原。 - 父母之间的破坏性页面复制。
copy_page_to_parent 是Notion的公共API不支持父级更改的解决方法。在目标父级上使用相同的标题、图标和内容重新创建页面,然后存档原始页面。处理段落、标题、列表、表格、分隔符、代码块和图像/文件块。如果源已嵌套,则拒绝运行 child_page 后代(手动复制)。 move_page 已弃用,现在加薪。 概念 PATCH /pages/{id} 端点默默地忽略父字段的更改——调用返回HTTP 200,但什么也不做。这 move_page 工具现在返回一个明确的错误,将调用者指向 copy_page_to_parent 或者在Notion侧栏中手动拖放。
v0.2.0的新增功能
- 通知文件上传。 将图像和文件直接上传到Notion自己的工作区存储,而不是依赖imgur等外部主机。适用于PNG、JPEG、SVG、GIF、PDF和任何其他Notion支持的附件类型。
- 图像块助手。
upload_image_as_block 上传一个文件并将其插入到一个调用中的某个位置。 replace_image_block 交换现有图像的内容,同时保留其在父图像中的位置。 download_image_block 将任何图像块的文件拉到磁盘。 - 表行操作。
insert_table_row 通过自动宽度验证向现有表添加行。 update_table_cell 替换单个单元格的文本。不再为小编辑重建整个表格。
安装
pip install notion-full-mcp
# or
uv pip install notion-full-mcp
快速开始
export NOTION_API_TOKEN="your-token-here"
notion-mcp
Claude代码集成
添加 ~/.claude.json 在...之下 mcpServers:
{
"notion-full": {
"type": "stdio",
"command": "uvx",
"args": ["notion-full-mcp"],
"env": {
"NOTION_API_TOKEN": "your-token-here"
}
}
}
或者为了当地发展:
{
"notion-full": {
"type": "stdio",
"command": "uv",
"args": ["run", "--directory", "/path/to/notion-full-mcp", "notion-mcp"],
"env": {
"NOTION_API_TOKEN": "your-token-here"
}
}
}
工具(33)
搜索和页面
| 工具 | 说明 |
|---|
search_pages | 按标题搜索页面 |
search | 搜索页面和/或数据库 |
get_page_info | 获取页面元数据(标题、父级、日期、URL) |
create_page | 在父页面或数据库下创建新页面 |
update_page | 更新页面的标题、图标或存档状态 |
move_page | 已弃用 --Notion的公共API不支持移动页面。返回一个明确的错误,指向 copy_page_to_parent |
restore_page | 从回收站还原页面(及其级联存档的子页面) |
copy_page_to_parent | 在新父级下重新创建页面(针对缺失的移动功能的破坏性解决方法;默认情况下存档原始页面) |
阅读
| 工具 | 说明 |
|---|
read_page_deep | 读取包含所有嵌套子项的页面(递归) |
list_block_children | 列出块或页面的直接子项 |
get_block | 按ID获取单个块 |
编辑
| 工具 | 说明 |
|---|
update_block_text | 替换块中的所有文本 |
find_replace_in_block | 查找/替换保留格式的文本 |
update_block_rich_text | 使用完整的富文本规范进行更新 |
插入
| 工具 | 说明 |
|---|
insert_text_after | 在特定块后插入文本块(支持所有块类型:段落、标题_1/2/3、bulleted_list_item、numbered_list_items、引号等) |
insert_blocks_after | 在特定块后插入多个块 |
append_blocks_to_page | 将块附加到页面末尾 |
删除
评论
| 工具 | 说明 |
|---|
create_comment | 向页面添加评论 |
list_comments | 列出页面或块上的所有评论 |
数据库
| 工具 | 说明 |
|---|
get_database | 获取数据库元数据和架构 |
query_database | 使用筛选器和排序查询数据库 |
用户
| 工具 | 说明 |
|---|
get_self | 获取当前经过身份验证的用户/bot |
list_users | 列出所有工作区用户 |
快照/还原
| 工具 | 说明 |
|---|
snapshot_page | 将完整的页面结构保存为JSON |
restore_page_from_snapshot | 从快照还原页面(破坏性) |
媒体和文件
| 工具 | 说明 |
|---|
upload_file | 将文件上传到Notion自己的工作区存储(返回 file_upload_id) |
upload_image_as_block | 上传一张图像,并在一个步骤中将其作为新的图像块插入(在块之后或附加到页面上) |
replace_image_block | 将现有图像块的内容与新上传的文件交换,保留其位置 |
download_image_block | 将图像文件从图像块下载到磁盘——适用于外部URL、Notion托管文件和 file_upload 参考文献 |
upload_file_as_block | 上传任何文件(PDF、附件)并将其作为文件块插入 |
表格
| 工具 | 说明 |
|---|
insert_table_row | 在具有自动宽度验证的现有表中插入新行 |
update_table_cell | 替换表行中单个单元格的文本 |
通知API令牌
- 首选 https://www.notion.so/my-integrations
- 创建新的集成
- 复制令牌(以开头
ntn_) - 使用集成共享要访问的页面/数据库
许可证
麻省理工学院