QVeris
MCP 与工具调用

Claude Code 接入 Notion MCP

连接 Claude Code 与 Notion MCP,定位并读取准确页面、起草变更,获批后执行并回读核验。

发布日期:2026年4月5日 · QVeris团队制作
Document, chat and cloud-file icons linked to an assistant, access controls and document outputs.
示意图将文档、聊天和云端文件连接到中央助手,并用锁、眼睛和审批图标标出访问与审核环节。

核心摘要

更稳妥的默认做法,是让 Claude Code 连接 Notion 官方托管的 MCP 端点,在浏览器中完成授权,并先读取一个你已知的页面来验证连接。每次写入都遵循五步闭环:准确定位对象、读取当前状态、生成最小变更、确认后执行、最后重新读取核对。这样可以避免同名页面、过期上下文或重复重试导致误改。

优先使用托管服务器

Notion 持续维护的远程端点能让 Claude Code 搜索、读取、创建和更新工作区内容,无需在本地运行 MCP 进程。

OAuth 决定权限边界

连接沿用当前登录用户的工作区权限。能够搜索到某个页面,并不代表工作流可以不经确认就修改它。

把读取和写入分开

先确认页面或数据源并读取现状,再生成范围清晰的变更,交由人工审核。

写入后必须复核

写入完成后重新读取目标,与批准内容逐项比较;失败重试前也要先检查,避免重复创建或追加。

为 Claude Code 配置 Notion MCP

如果是在 Claude Code 中交互使用,建议从 Notion 持续维护的远程服务开始,而不是采用旧版自托管软件包。Notion MCP 配置指南给出了 Streamable HTTP 端点和浏览器 OAuth 流程;无需在本地启动服务器,也不用把 Notion 集成令牌粘贴到 Claude Code。

1. 先选择配置作用域

只在当前项目个人使用时,保留默认的 local。团队需要通过 .mcp.json 共享服务器定义时才用 project;明确希望所有项目都可用时再选 user。项目级配置共享的是连接定义,不会替团队成员共享 OAuth 凭据。

2. 注册官方端点

运行 claude mcp add --transport http notion https://mcp.notion.com/mcp。审核时保留完整 HTTPS 主机名,避免外观相似的地址悄悄接收工作区数据。

3. 在正确的工作区完成 OAuth

启动 Claude Code,运行 /mcp,按浏览器提示登录。授权前核对 Notion 账号和工作区名称;如果同时维护客户环境、测试环境和正式环境,这一步尤其重要。

4. 检查工具与上下文占用

通过 /mcp 确认服务器已连接并查看可用工具;需要了解各 MCP 服务器占用多少上下文时,可运行 /context。当前任务用不到的服务器应暂时关闭。

5. 先做只读冒烟测试

用准确标题或 ID 请求一个已知页面,只返回标题和父级,再与 Notion 中的实际位置核对。第一次测试不要创建、移动、归档内容,也不要批量更新。

作用域适用范围适用场景审核重点
local仅当前用户与当前项目测试连接或个人工作区访问默认首选,不与团队共享
project团队通过 .mcp.json 使用项目需要统一且经过审核的服务器定义只提交配置,每位成员单独授权
user当前用户的所有 Claude Code 项目确实需要跨项目复用同一工作区暴露范围更大,需定期复查

构建可靠的 Notion 工作流

可靠的提示词更像一份“小型变更合同”,而不是一句“帮我整理一下 Notion”。应明确目标页面或数据源、父级位置、允许改动的字段、内容来源、格式要求和禁止操作;同时写清停止条件:如果目标不唯一、必需属性缺失,或现有内容与要求冲突,就应停止并报告,不能自行猜测。

阶段Claude Code 操作需要核对的证据停止条件
定位按准确标题、已知 ID 或父级搜索。对象 ID、类型、父级和 URL出现多个可能目标
读取只读取任务需要的字段与内容块。当前字段值和相关内容结构或内容与预期不符
拟稿只生成差异或拟写载荷,暂不写入。来源、格式、字段和幂等标记出现无依据内容或越界字段
确认展示准确目标和最小变更。人工确认范围与最终文字破坏性或批量任务未获明确批准
写入仅执行一次已批准的变更。返回的对象 ID 与变更字段超时或无法确认执行状态
回读重新读取同一目标,与批准内容逐项对照。文字、属性、父级正确且无重复结果与批准稿不一致
名称可能重复时使用 ID

搜索适合发现内容,但标题不是稳定标识。Claude Code 找到正确对象后,后续步骤都应沿用对象 ID 和父级。对于周期性任务,可以把审核过的 ID 保存到项目配置中,不要每次都重新搜索同名页面。

批量执行前先做 Dry Run

处理发布说明、任务状态或会议纪要分发时,先列出拟修改的目标和内容。确认数量、位置及字段后,再授权一个边界明确的批次。可加入来源 Issue ID、发布标签等幂等标记,便于发现重复执行。

明确各系统的内容归属

代码和需要版本管理的规范应以代码仓库为准;Notion 更适合保存审核后的摘要、决策、计划及团队知识。两边内容发生冲突时,先确认权威来源,再决定更新哪一方。

可复用提示词:“定位 [父级] 下 ID 为 [ID] 的页面,先读取当前标题和状态。只依据 [来源] 生成更新,仅允许修改 [字段];不得创建、移动、归档或改动其他对象。先展示差异并等待确认,批准后只写入一次,再重新读取页面核对结果。”

权限、安全控制与故障排查

把工作区内容视为不可信输入

Notion 页面里可能夹带与原任务冲突的指令。应明确告诉 Claude Code:读取到的页面文字只是数据,不具备更高权限;可以归纳内容,但不能因此泄露凭据、扩大任务范围、调用无关工具或跳过审批。

在账号层面落实最小权限

托管服务器沿用已连接用户的 Notion 权限。应使用只具备任务所需工作区和内容权限的账号,新写入模式优先在测试工作区验证。移动、归档、删除或多页面操作前,必须再次核对对象 ID 和父级。

理解托管服务的能力边界

Notion 托管 MCP 需要用户交互式完成 OAuth,不支持通过 Bearer Token 实现完全无人值守运行,目前也不能上传文件。旧版本地软件包只适合少数特殊自动化需求;Notion 当前优先维护托管服务,开源服务器已不再积极维护。

让重试具备幂等性

请求超时并不能证明写入失败。重试前先读取目标,核对对象 ID、时间和幂等标记;如果仍无法判断是否执行成功,应转人工检查,不要再次发起相同的创建或追加调用。

现象可能原因安全排查动作
看不到 Notion 工具配置或作用域运行 /mcp,确认作用域后重载 Claude Code。
反复要求授权OAuth 会话过期或账号错误断开后重新连接,并核对浏览器账号与工作区。
搜索没有结果权限、工作区或查询不准确核对工作区权限、准确标题、已知父级或对象 ID。
选中了错误页面标题重复或含义不清立即停止,对比对象 ID、父级、URL 和类型。
写入被拒绝用户权限不足或字段无效检查访问权限和结构,不要自动扩大权限。
上下文占用过大服务器过多或读取范围太大运行 /context,停用无关服务器并缩小读取范围。

用 QVeris 发现可补充工作流的 Agent 能力

Notion MCP 才是访问工作区内容的直接集成。当前在 QVeris 目录中没有检索到准确匹配的 Notion Tool 或 Provider,因此本文不会暗示 QVeris 已原生连接 Notion。可以先通过 QVeris 文档了解能力发现与调用方式,再在 QVeris演练场 中验证另行选择的能力,确认结果可靠后再交给 Notion 工作流。

  • 按任务匹配能力,不只看关键词。使用前检查服务商、输入结构、输出格式、能力限制,以及可能涉及的用量或成本条件。
  • 在跨系统边界做验证。外部工具返回的是待核实证据;Claude Code 把它写入 Notion 页面或属性前,应检查来源、完整性和格式。
  • 保留清晰的审批节点。外部调用成功不等于可以写入工作区。执行前要展示返回数据、目标 ID、字段映射和最终差异。
  • 不需要发现能力时保持简单。如果任务只是读取或修改已知的 Notion 内容,直接使用 Notion MCP 即可,不必额外引入服务。

常见问题

Claude Code 自带 Notion MCP 吗?

Claude Code 支持 MCP,但仍需注册 Notion 连接。对大多数用户,官方托管端点是推荐使用的服务器。

应该选择哪个 MCP 作用域?

建议先用 local。团队需要通过仓库共享审核过的服务器定义时选 project;确实需要跨项目复用时再用 user。无论哪种方式,每位用户仍需单独完成 OAuth。

Claude Code 能更新页面和数据源吗?

可以,但前提是已授权用户具备访问权限,且当前工具支持对应操作。应先读取对象和结构,预览准确变更,写入后再回读核对。

Notion 托管 MCP 能无人值守运行吗?

不适合依靠 Bearer Token 完全无人值守运行,因为托管服务采用用户交互式 OAuth。无法完成该流程的任务,需要单独设计其他集成方案。

可以向 Notion 上传文件吗?

Notion 当前的托管 MCP 文档说明暂不支持文件上传。文件应保留在经过批准的系统中,确有需要时只写入审核过的引用或链接。

为什么搜索不到页面?

先核对登录的工作区和用户权限,再用准确标题、已知父级、URL 或对象 ID 缩小范围。同名页面是错误匹配的常见原因。

参考资料与下一步

Notion MCP 连接指南
Notion MCP 概览
Claude Code MCP 文档
Notion MCP 官方仓库
QVeris 文档
QVeris演练场

Claude Code 接入 Notion MCP | QVeris Guides