🔐

Amazon Q Developer CLIのツール権限を永続化する方法

に公開

背景

Amazon Q Developer CLIを使っていると、ツール呼び出しの度に権限リクエストが表示されて作業が中断される。同じプロジェクトで何度許可してもセッションが変わると再びリクエストされるため、毎回同じ作業を繰り返すのが煩わしい。

この記事では、Q Developer CLIのツール権限設定について整理し、永続化する方法を説明する。
非常に機能の進化が早いツールのため、2025年8月時点の情報であることをご留意ください。

権限設定の種類

私はセッション間のツール権限設定をやりたかったが、セッション内もついでに調べた。

セッション内での権限設定

1. スラッシュコマンドでの設定

q コマンドでセッション開始後に、スラッシュコマンドで権限を設定する方法:

# 個別ツールを許可
/tools trust @mcp_name/tool_name

# すべてのツールを許可
/tools trust-all

2. コマンド引数での設定

セッション開始時に引数で権限を指定する方法:

# 個別ツールを許可
q chat --trust-tools @mcp_name/tool_name

# すべてのツールを許可
q chat --trust-all-tools

セッション内設定の課題

  • 新しいセッション開始時に毎回設定が必要
  • MCPツールが多い場合、個別指定が面倒
  • trust-allは危険

セッション間での永続化

Custom Agentsによる解決

セッション間のツール権限の永続化は今までできなかったが、2025年7月31日にリリースされたCustom Agentsの機能により、できるようになった。
Custom Agentsは本来、特定タスク用のエージェントやMain Agentから呼び出されるSub Agentとして設計されているが、権限の永続化手段としても活用できる。
https://aws.amazon.com/about-aws/whats-new/2025/07/amazon-q-developer-cli-custom-agents/
https://aws.amazon.com/jp/blogs/news/overcome-development-disarray-with-amazon-q-developer-cli-custom-agents/

設定ファイルの作成

.amazonq/cli-agents/ディレクトリに設定ファイルを作成する:

{
  "$schema": "https://raw.githubusercontent.com/aws/amazon-q-developer-cli/refs/heads/main/schemas/agent-v1.json",
  "name": "your-custom-agent",
  "description": "your-agent-description",
  "prompt": "your-custom-agent-prompt",
  "tools": ["*"],
  "allowedTools": [
    "@filesystem/read_file",
    "@filesystem/write_file"
  ],
  "resources": [
    "file://README.md",
    "file://.amazonq/rules/**/*.md"
  ],
  "useLegacyMcpJson": true
}

エージェントの起動

作成したエージェントを指定して起動:

q chat --agent your-custom-agent

そこで指定されたツールの権限が渡されている状態で、利用できるようになる。

感想

Claude Codeだとsettings.jsonプロジェクトの固有設定として永続化するなど、さまざまな方法で権限の調整ができる。Q CLIの場合は現状そこまで柔軟という状態ではなく、設計思想としてかなりセキュリティとシンプルさを大事している気がする。
また、Custom Agentで権限の永続化ができるのは、Main Agentで使われる存在であるから、いちいちユーザーに権限を求めることが自律性を大きく損なうことにあるかもしれない。

まとめ

  • セッション内: --trust-tools/tools trustで一時的に設定
  • セッション間: Custom Agentsで権限を永続化
GitHubで編集を提案

Discussion