権限
CLI設定の権限トークンを使用して、エージェントに許可する操作を設定します。権限は ~/.cursor/cli-config.json (グローバル) または <project>/.cursor/cli.json (プロジェクト固有) で設定します。
権限の種類
シェルコマンド
形式: Shell(commandBase)
シェルコマンドの実行を制御します。commandBase はコマンドラインの先頭のトークンです。グロブパターンと、より細かく制御するための任意の command:args 構文をサポートします。
| 例 | 説明 |
|---|---|
Shell(ls) | ls コマンドの実行を許可 |
Shell(git) | すべての git サブコマンドを許可 |
Shell(npm) | npm パッケージマネージャーのコマンドを許可 |
Shell(curl:*) | 任意の引数を指定した curl を許可 |
Shell(rm) | 破壊的なファイル削除を拒否 (通常は deny で使用) |
ファイルの読み取り
形式: Read(pathOrGlob)
ファイルとディレクトリの読み取り権限を制御します。グロブパターンをサポートしています。
| 例 | 説明 |
|---|---|
Read(src/**/*.ts) | src 内の TypeScript ファイルの読み取りを許可 |
Read(**/*.md) | 任意の場所にある Markdown ファイルの読み取りを許可 |
Read(.env*) | 環境ファイルの読み取りを拒否 |
Read(/etc/passwd) | システムファイルの読み取りを拒否 |
ファイルの書き込み
形式: Write(pathOrGlob)
ファイルやディレクトリへの書き込み権限を制御します。グロブパターンをサポートしています。Print modeでは、writeツールとshellツールを使用できます。permissions.allow、permissions.deny、--forceを使用して、プロンプトなしで実行できる内容を制御します。
| 例 | 説明 |
|---|---|
Write(src/**) | src配下のすべてのファイルへの書き込みを許可 |
Write(package.json) | package.jsonの変更を許可 |
Write(**/*.key) | private keyファイルへの書き込みを拒否 |
Write(**/.env*) | 環境ファイルへの書き込みを拒否 |
Web fetch
形式: WebFetch(domainOrPattern)
Web fetch ツールの使用時に、エージェントが取得できるドメインを制御します (例: ドキュメントや Web ページの取得) 。許可リストのエントリがない場合は、取得のたびに承認を求められます。信頼できるソースからの取得を自動承認するには、ドメインを allow に追加します。
| 例 | 説明 |
|---|---|
WebFetch(docs.github.com) | docs.github.com からの取得を許可 |
WebFetch(*.example.com) | example.com の任意のサブドメインからの取得を許可 |
WebFetch(*) | 任意のドメインからの取得を許可 (使用には注意が必要) |
ドメインパターンのマッチング:
*はすべてのドメインに一致します*.example.comはサブドメインに一致します (例:docs.example.com、api.example.com)example.comはそのドメインにのみ完全一致します
MCP ツール
形式: Mcp(server:tool)
エージェントが実行できる MCP (Model Context Protocol) ツールを指定します。server (mcp.json のサーバー名) と tool 名を使用し、ワイルドカードには * を使用します。
| 例 | 説明 |
|---|---|
Mcp(datadog:*) | Datadog MCP サーバーのすべてのツールを許可 |
Mcp(*:search) | 任意のサーバーの search ツールを許可 |
Mcp(*:*) | すべての MCP ツールを許可 (要注意) |
設定
CLIの設定ファイル内の permissions オブジェクトに権限を追加します。
{ "permissions": { "allow": [ "Shell(ls)", "Shell(git)", "Read(src/**/*.ts)", "Write(package.json)", "WebFetch(docs.github.com)", "WebFetch(*.github.com)", "Mcp(datadog:*)" ], "deny": [ "Shell(rm)", "Read(.env*)", "Write(**/*.key)", "WebFetch(malicious-site.com)" ] }}パターンマッチング
- グロブパターンでは、
**、*、?をワイルドカードとして使用します - 相対パスは現在のワークスペースを基準とします
- 絶対パスではプロジェクト外のファイルをターゲットにできます
- 拒否ルールは許可ルールより優先されます
command:args(例:curl:*) を使用すると、コマンドと引数の両方をグロブでマッチできます