简短回答
先给你的 AI 只读访问,然后只开放每项任务需要的部分。共有四个级别:只读、每次改动前都问、删除或发送前先问、自行改动。你在 AI 应用、MCP 服务器以及它背后的账户里设置它们。每项限制只约束出错可能造成的代价,没有一项能让访问变得无害。
本文内容
四个访问级别是什么?
每个工具选一个级别,从第一个开始。这些名字是我们起的:下面每个工具会用它自己的说法,提供其中的一部分。
-
只读从这里开始
你的 AI 可以查找并总结内容,但不能改动任何东西。
适合第一次尝试,或者一项你承担不起被弄坏的服务。
-
每次改动前都问
你的 AI 可以自由读取。每处改动都要等你看过并同意之后才会进行。
适合新任务,或者任何重要的事。
-
删除或发送前先问
你的 AI 会自行做普通的改动。删除和发送要等你同意。
适合编辑容易检查、也容易放回去的工具。
-
自行改动
你的 AI 不经询问就改动东西。
适合事后能检查、也能逆转的工作。
在 Claude、Cursor 和 VS Code 里,级别在哪里设置?
你的 AI 应用是第一个开关。每个应用都让你逐个工具决定,用的是它自己的说法。
| AI 应用 | 怎么设置 | 值得知道 |
|---|---|---|
| Claude Code | 写下 allow、ask 和 deny 规则,可以针对整个服务器,也可以针对某一个工具:mcp__github、mcp__github__get_*。用 /permissions 可以列出它们。 | 无论 allow 规则多具体,deny 都优先于 ask,ask 都优先于 allow。在默认模式下,Claude Code 会在每个工具第一次使用时询问。 |
| Claude(claude.ai) | 在 Search and tools 菜单里关掉你不需要的工具。在 Team 和 Enterprise 套餐中,所有者可以为整个组织设置连接器的 Tool permissions:Always allow、Needs approval 或 Blocked。 | Claude 的帮助文档说,只有在你相信某个工具可以无人监督地运行时,才应该永久批准它。在 research 模式下,Claude 可以不再征求批准就调用连接器工具,所以要先关掉写入工具。 |
| Cursor | 在 Settings 里,进入 Agents,Approvals & Execution,选择 Auto-review、Allowlist 或 Run Everything。在 permissions.json 里用 server:tool 的格式允许工具,比如 linear:list_issues。 | Cursor 的 MCP 页面说,默认情况下它会在使用 MCP 工具之前询问。它的 Run Modes 页面推荐 Auto-review:此时分类器可能让一个未列出的调用不经询问就运行。若要每次调用都询问,Cursor 说应使用 Allowlist,并把允许列表留空。Run Everything 会运行每一个调用。Cursor 说,Auto-review 不是安全边界,允许列表也不能保证安全。 |
| VS Code | 在聊天里打开 Configure Tools,逐个打开或关闭某个服务器的工具。来自其他来源的服务器,首次启动时会请你确认是否信任。 | VS Code 警告说,本地 MCP 服务器可以在你的电脑上运行任意代码。只添加你信任来源的服务器。 |
在 Claude Code 里,规则中的服务器名就是你添加服务器时取的名字。
怎样收窄服务器本身,以及它背后的账户?
直接收窄访问本身,AI 应用里设置得松一点,代价也会小一些。服务器和它背后的账户,是第二和第三个开关。
| 工具 | 怎么收窄 | 值得知道 |
|---|---|---|
| GitHub | 用 --read-only 运行 GitHub 的 MCP 服务器(或使用 GITHUB_READ_ONLY=1)。用 --toolsets 或 --tools 选择它提供什么,用 --exclude-tools 去掉某些工具。在远程服务器上,使用 X-MCP-Readonly 请求头,或 /readonly 网址。 | 只读模式优先于其他所有选项。给服务器一个细粒度的个人访问令牌:只限指定的仓库,权限最少,并设置过期时间。 |
| Notion | Notion 托管的 MCP 以你的身份工作,能访问你能访问的一切。要收窄它,就在你的 AI 应用里关掉它的写入工具。使用 Notion 自托管的服务器时,创建一个内部集成,只授予任务需要的能力:读取、更新、插入内容。在你共享某个页面之前,它看不到任何页面;共享一个页面,也会共享它的子页面。 | Notion 建议在会改动内容的操作之前开启确认。它已经不再积极维护自托管的服务器。 |
| 你的文件 | 启动 MCP 文件系统服务器时,指定它可以使用的文件夹。它只能在这些文件夹里工作。在 Docker 里,给挂载加上 ro,就能把那个文件夹设为只读。 | 它的 write_file 工具会覆盖已有的文件。我们的建议是:把这个文件夹放进 Git,或者做好备份。 |
怎样从只读开始,然后一步步放开?
把新的访问当作试用来对待。每一步只多给你的 AI 一点点权限,你可以在任何一步停下。
- 先以只读方式连接只读
使用服务器的只读模式、只读能力或只读挂载。让你的 AI 给出一份真实的摘要。如果这已经够用,就停在这里。
- 只共享任务需要的内容只读
列出重要的文件夹、仓库或页面,其余的不给。自托管的 Notion 连接看不到你没有共享的内容,文件系统服务器也只待在你列出的文件夹里。
- 允许改动,但每次都要问每次改动前都问
打开写入权限,但让你的 AI 应用继续询问。在说同意之前,先读懂每处改动,最好先在副本或测试页面上试。在 Claude Code 里,为写入工具添加 ask 规则,为你永远不想用的工具添加 deny 规则。
- 让安全的部分自行运行删除或发送前先问
做过几次顺利的任务之后,允许读取和你能够放回去的改动。删除和发送仍然要问。在 Claude Code 里,允许像
mcp__github__get_*这样的模式,它涵盖所有名为get_…的工具。在 Cursor 里,把linear:list_issues加入mcpAllowlist。每次任务结束后,检查改动了什么。
权限不能阻止什么?
权限只限制出错的代价,并不能让访问变得无害。
- 你授出的访问,就是真正的访问。Notion 说,已连接的客户端可以用 Notion MCP 接触你能接触的内容。写入权限让你的 AI 能够写入。
- 你的 AI 读到的内容,可能向它下达指令。页面、议题或服务器,可能把指令藏在它返回的内容里。Notion 的建议是,把工具返回的内容视为不可信。
- 只读也可能泄露。Notion 警告说,已连接的客户端可能把 Notion MCP 返回的内容发送到 Notion 之外的系统。
- 标签只是提示。MCP 规范允许工具声明自己是只读(
readOnlyHint)或有破坏性(destructiveHint)。除非服务器可信,客户端必须把这些标签视为不可信。
权限在改动之前起作用。改动之后把它放回去,是另一回事: 撤销 AI Agent 做过的改动
能否为所有工具一次设好级别?
可以,对于经过 Delta MCP 的工具。Delta MCP 是一款免费应用,位于你的 AI 应用和它们的 MCP 服务器之间。每个连接器可以选择四种模式之一:只读、每次改动前都问、删除或发送前先问,或自行改动。
- 每个连接器一种模式。在 Connectors 界面的 When your AI wants to change something 下面选择。读取从不需要询问。这项设置会在你的 AI 下一次调用时,进入已经打开的对话,无需重启。
- 单个操作单独设置。在 Advanced 里,把某个操作设为 Like the connector、四种模式之一,或 Off。被设为 Off 的操作会从你的 AI 的视野中消失,对它的调用会被拒绝。
- 需要你批准的改动,会先弹出卡片。卡片显示每处改动的前后对比,以及哪些可以撤销。关闭卡片却不作回答,就等于拒绝:什么也不会做。
- 事后在 Activity 里看。无论哪种模式,每个任务都会在 Activity 里显示每处改动的前后对比。Undo 会放回它能放回的内容,并且在你点击之前就说明哪些无法撤销,比如已经发出的消息。
删除和发送,是根据操作的名称识别的。名称古怪的操作,会被当作普通改动,模式按照其他任何改动的方式来决定。需要确保安全时,选择“每次改动前都问”,或者把该操作关掉。和这里的所有权限一样,这些模式保护你免受 AI 出错的影响:你的 AI 仍然用你的权限行事。
在 Claude 里运行的连接器,比如 Gmail、Google Calendar 和 Google Drive,会留在 Claude 里,使用 Claude 自己的登录方式。请在 Claude 里设置它们的级别,如上表所示。
常见问题
把 AI 连到 Notion 或 GitHub,最安全的办法是什么?
先从只读开始。在 GitHub 上,用 --read-only 运行 MCP 服务器,并使用限定在指定仓库内的细粒度的个人访问令牌。Notion 托管的 MCP 以你的身份工作,所以要在你的 AI 应用里关掉它的写入工具。Notion 自托管的服务器,可以限定在指定的能力和共享页面之内。让你的 AI 应用在改动前继续询问,然后一步一步地放开。
MCP 服务器有只读模式吗?
要看服务器。GitHub 的 MCP 服务器有:--read-only,或远程服务器上的 X-MCP-Readonly 请求头。MCP 规范允许工具用 readOnlyHint 标记自己为只读。客户端不得相信来自不可信服务器的这个标签。对于没有只读选项的服务器,就在你的 AI 应用里关掉它的写入工具。
怎样阻止 Claude Code 在某个 MCP 服务器里使用写入工具?
用工具的名字添加一条 deny 规则,比如 mcp__github__merge_pull_request,可以通过 /permissions 或你的设置来添加。deny 规则优先于 ask 和 allow 规则。写在 deny 规则里的工具,会从 Claude 看到的列表中去掉。
只读,是否就意味着我的数据不会外流?
不是。只读只阻止改动,不阻止你的 AI 如何使用它读到的内容。Notion 警告说,已连接的客户端可能把 Notion MCP 返回的内容发送到 Notion 之外的系统。你的 AI 读到的内容也可能带有指令。要把工具返回的内容视为不可信。
我可以让 AI 不经询问就运行 MCP 工具吗?
读取的话,通常可以。对于改动,MCP 规范说,应当始终有人参与其中,能够拒绝工具调用。折中的办法:允许读取,改动时保留询问。只有在你能检查每处改动、并能放回去的地方,才放开更多。
Delta MCP 能把一个连接器设为只读吗?
能,对于经过它的连接器。把连接器的模式设为只读:你的 AI 能读取,但从不能改动,每次改动都会被拒绝。其他模式会在每次改动前询问、在删除或发送前询问,或自行改动。在 Claude 里运行的连接器,比如 Gmail,会留在 Claude 里,并在那里设置。
来源
- Claude Code, Configure permissions 允许、询问和拒绝规则及其顺序;MCP 规则名,如 mcp__github__get_*;/permissions 命令;默认模式。
- Claude Help Center, Use connectors to extend Claude's capabilities 每个连接器的 Tool permissions(Always allow、Needs approval、Blocked),以及谁可以设置它们。
- Claude Help Center, Get started with custom connectors using remote MCP Search and tools 菜单;research 模式无需再次批准就运行连接器工具;恶意服务器中隐藏的指令。
- Cursor, Model Context Protocol (MCP) 默认情况下,Cursor 在使用 MCP 工具前要求批准。
- Cursor, Run Modes 三种 Run Modes 及其设置位置。Auto-review 是推荐的默认值,但不是安全边界。空的 Allowlist 每次都会询问。
- Cursor, permissions.json reference MCP 允许列表的 server:tool 格式;允许列表不能保证安全。
- VS Code, Add and manage MCP servers in VS Code Configure Tools 逐个开关工具;来自其他来源的服务器的信任对话框。
- GitHub, GitHub MCP Server 工具集(Toolsets)、单个工具,以及只读参数。
- GitHub, Server Configuration Guide 只读模式可以是参数、请求头和网址;被排除的工具;只读模式优先于其他所有选项。
- GitHub Docs, Managing your personal access tokens 细粒度令牌:限定在指定的仓库、最小权限、过期时间。
- Notion, Internal connections 新连接默认看不到任何页面;共享页面会共享其子页面;连接的能力。
- Notion, Notion MCP Notion 托管的 MCP 服务器可读取和更新你能访问的内容。
- Notion, Hosting Notion MCP locally 开源服务器已不再积极维护,需要你自己的 Notion 连接和 API token。
- Notion, Security best practices 已连接的客户端可以接触你能接触的内容;提示注入;内容离开 Notion;改动前的确认。
- Model Context Protocol, Filesystem MCP Server 访问限于允许的目录;带 ro 的只读挂载;工具提示;write_file 会覆盖已有文件。
- Model Context Protocol, Tools (specification 2026-07-28) 让人参与其中、能够拒绝工具调用;除非来自可信服务器,工具注解不可信。
- Delta MCP, Modes 四种模式、单个操作单独设置、确认卡片,以及如何识别删除和发送。
- Delta MCP, Activity and Undo Activity 里每处改动的前后对比,以及 Undo 放回什么、无法放回什么。