Skip to main content

Command Palette

Search for a command to run...

开始使用

permissions.json 参考

使用 permissions.json 配置 MCP 工具和终端命令的允许列表,并引导 Auto-review 模式 的分类器,让工具无需批准即可运行。

permissions.json 定义了允许列表时,会覆盖 Cursor 设置中相应的应用内允许列表。该类型允许列表的应用内编辑器会变为只读。

文件位置

Cursor 会从以下两个位置读取 permissions.json

~/.cursor/permissions.json              # 用户级(全局生效)<workspace>/.cursor/permissions.json    # 仓库级(在此工作区生效)

这两个文件都是可选的。如果两个文件都存在,Cursor 会拼接每个字段中的数组。用户级和仓库级条目会合并,不会相互覆盖。请提交仓库级文件,以便团队成员继承相同的规则。

文件会在启动时读取,并在发生更改时自动重新读取。支持 JSONC (带注释的 JSON) 。

顶层字段

所有字段均为可选。未知键会被忽略。

字段类型默认值描述
mcpAllowliststring[]未设置可无需批准直接运行的 MCP 工具。设置后会覆盖应用内 MCP 允许列表。
terminalAllowliststring[]未设置可无需批准直接运行的终端命令。设置后会覆盖应用内终端允许列表。
autoRunobject未设置Auto-review 模式 分类器提供的自然语言指引。请参阅 autoRun 配置

任一数组中的非 string 条目都会被静默丢弃。

优先级

允许列表来自三个来源,按严格的优先级顺序评估:

团队管理员(仪表盘)  >  permissions.json(用户级 ∪ 仓库级)  >  IDE 设置界面       (最高优先级)                                                        (最低优先级)
  • 团队管理员控制。 如果团队管理员已通过仪表盘配置运行模式控制,这些设置将生效。permissions.json 和 IDE 允许列表都无法添加额外条目。
  • permissions.json。 当运行模式不受管理员控制且 permissions.json 定义了某个键时,该键的值会完全替换相应的 IDE 允许列表。~/.cursor/permissions.json<workspace>/.cursor/permissions.json 中的数组会先拼接,再应用。该允许列表的应用内编辑器将变为只读,“添加到允许列表”按钮也会隐藏。
  • IDE 设置。 当运行模式不受管理员控制,且两个权限文件均未定义某个键时,将使用 Cursor 设置中的 IDE 允许列表。

MCP、终端和 autoRun 相互独立。你可以在 permissions.json 中定义其中一个,并在 IDE 中管理其他项。仅在文件中定义 mcpAllowlist 会覆盖 MCP 允许列表,但终端允许列表仍由 IDE 控制。

在 Cursor 设置中的显示

permissions.json 定义了允许列表时,Cursor 设置会显示该允许列表由 permissions.json 配置。

  • 如果允许列表由 permissions.json 控制,编辑器将变为只读,并显示文件中定义的条目。此类允许列表不提供“添加到允许列表”选项。
  • 如果允许列表由管理员控制,编辑器将变为只读,并显示由管理员定义的条目。

MCP 允许列表格式

每个条目均为 server:tool string。两部分均不区分大小写。* 通配符可匹配该部分的任意值。

模式匹配项
my-server:my_tool名为 my-server 的服务器中的 my_tool 工具
my-server:*my-server 中的所有工具
*:my_tool任意服务器中的 my_tool 工具
*:*所有服务器中的所有工具

服务器名称是你在 mcp.json 中使用的键 (例如 "github""linear") 。名称中也可以使用 glob 风格的 * 模式 (例如,my-server:list_* 可匹配 list_issueslist_users 等) 。

不包含 : 的条目会被忽略。

autoRun 配置

启用 Auto-review 模式时,autoRun 对象用于引导 LLM 分类器,对 shell、MCP 和 Fetch 工具调用进行判定。在允许列表运行全部模式下,它不起作用。

字段类型描述
allow_instructionsstring[]用自然语言提示描述分类器应倾向于允许的调用模式。
block_instructionsstring[]用自然语言提示描述分类器应倾向于阻止的调用模式,改为显示批准提示。

每个条目都是自由格式的句子。请像告诉队友该留意什么一样编写指令。匹配 allow_instructions 条目的调用仍会经过安全检查;匹配 block_instructions 条目的调用在 Cursor 坚持执行时仍可获批。两者都只是引导,而非强制执行。

用户级和仓库级的条目会拼接起来,因此工作区可以在个人默认值之上叠加仓库专属的防护措施。

终端允许列表格式

每个条目为命令或命令前缀 string。

模式匹配项
git任何以 git 开头的命令 (例如 git statusgit diff)
git status仅匹配 git status (以及任何以 git status 开头的命令)
npm:install*npm installnpm install express 等。: 用于分隔基础命令和 args glob。

匹配区分大小写,并采用前缀匹配:git 可匹配 git status,但不匹配 gitk

示例

全局设置 MCP 允许列表

{  // 完全覆盖应用内 MCP 允许列表。  "mcpAllowlist": [    "github:*",    "linear:list_issues"  ]}

全局配置终端允许列表

{  "terminalAllowlist": [    "git",    "npm",    "yarn",    "pnpm",    "cargo",    "make"  ]}

仅覆盖一种允许列表

如果 permissions.json 只定义了 mcpAllowlist,则 MCP 允许列表从该文件读取,终端允许列表仍由 IDE 控制:

{  "mcpAllowlist": [    "github:*",    "linear:*"  ]}

存在此文件时,会忽略之前在 Cursor 设置中配置的所有 MCP 条目。Cursor 设置中的终端允许列表条目仍然有效。

组合配置

{  "mcpAllowlist": [    "github:*",    "linear:*",    "notion:search"  ],  "terminalAllowlist": [    "git",    "npm",    "cargo build",    "cargo test"  ]}

引导 Auto-review 模式的分类器

{  "autoRun": {    "allow_instructions": [      "Read-only inspections of build artifacts under ./dist are fine."    ],    "block_instructions": [      "Especially for delete operations, I like for the classifier to reject so I can have a chance to review the operation."    ]  }}

合并用户级和仓库级文件

~/.cursor/permissions.json

{  "terminalAllowlist": ["git", "npm", "pnpm"],  "autoRun": {    "block_instructions": [      "Anything that touches my SSH config or shell rc files."    ]  }}

<workspace>/.cursor/permissions.json

{  "terminalAllowlist": ["cargo build", "cargo test"],  "autoRun": {    "block_instructions": [      "Never run database migrations against the production schema in this repo."    ]  }}

最终生效的配置由两个文件的内容依次合并而成:

{  "terminalAllowlist": ["git", "npm", "pnpm", "cargo build", "cargo test"],  "autoRun": {    "block_instructions": [      "Anything that touches my SSH config or shell rc files.",      "Never run database migrations against the production schema in this repo."    ]  }}

注意事项

  • 必须启用运行模式。 只有在 Cursor 设置中启用运行模式 (Auto-review 模式允许列表Run Everything) 后,permissions.json 才会生效。仅在 Auto-review 模式下才会读取 autoRun 指令。Cursor 3.5 之前,已弃用的 Ask Every Time 模式不会读取允许列表。
  • 并非安全边界。 允许列表和 autoRun 指令只是尽力而为的便利功能,并不构成安全保障。详情请参阅智能体安全性
  • 覆盖 IDE,合并文件。permissions.json 定义某个键时,会完全替换该类型的应用内允许列表。用户级和仓库级文件中的条目会拼接;不会合并 IDE 条目。
  • IDE 显示。permissions.json 控制允许列表时,对应的设置部分会变为只读,并显示文件中定义的条目。“添加到允许列表”选项会被隐���。
  • CLI 权限相互独立。 Cursor 命令行界面拥有独立的权限系统。相关说明请参阅 CLI 权限