Permisiunile CLI: Shell, Read, Write, WebFetch, Mcp în Cursor IDE

Cursor CLI (agent) Cursor CLI (2026)

Permisiunile Cursor CLI sunt șiruri de forma Shell(...), Read(...), Write(...), WebFetch(...) și Mcp(...) în listele allow și deny.

Sintaxă & invocare
"permissions": { "allow": ["Shell(git)", ...], "deny": ["Shell(rm)", ...] }

Ce face Permisiunile CLI: Shell, Read, Write, WebFetch, Mcp

Permisiunile se pun în obiectul permissions din ~/.cursor/cli-config.json (global) sau <project>/.cursor/cli.json (proiect). Fiecare intrare este un șir exact, în lista allow sau deny. Regulile deny au prioritate față de allow.

Shell(commandBase) se potrivește pe primul cuvânt al comenzii și acceptă sintaxa command:args, de exemplu Shell(curl:*). Read(...) și Write(...) acceptă căi și tipare glob (**, *, ?): căile relative se raportează la workspace, cele absolute pot ținti fișiere din afara proiectului.

WebFetch(domeniu) acceptă *, *.example.com (subdomenii) sau un domeniu exact; fără intrare în allowlist, fiecare fetch cere aprobare. Mcp(server:tool) folosește numele serverului din mcp.json și numele uneltei, cu * ca wildcard.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
Shell(commandBase) Comenzi shell, de exemplu Shell(git), Shell(curl:*).
Read(pathOrGlob) Citirea fișierelor, de exemplu Read(src/**/*.ts).
Write(pathOrGlob) Scrierea fișierelor, de exemplu Write(package.json).
WebFetch(domainOrPattern) Domeniile permise pentru fetch, de exemplu WebFetch(*.github.com).
Mcp(server:tool) Uneltele MCP, de exemplu Mcp(datadog:*) sau Mcp(*:search).

Exemple practice

Exemplul 1: Allow și deny

{
  "permissions": {
    "allow": ["Shell(ls)", "Shell(git)", "Read(src/**/*.ts)", "WebFetch(docs.github.com)"],
    "deny": ["Shell(rm)", "Read(.env*)", "Write(**/*.key)"]
  }
}

Greșeli frecvente și bune practici

  • Pui WebFetch(*) sau Mcp(*:*) în allow fără motiv. Documentația le marchează ca fiind de folosit cu prudență.
  • Te bazezi pe allow ca să permiți ceva interzis în deny. deny are prioritate.

Comenzi înrudite