Tools reference
概要
Claude Code の組み込みツール一覧と、ツールごとの挙動。ここに載っているツール名は、permission rule / subagent の tool list / hook matcher でそのまま使う文字列。
仕様
ツール一覧
Permission required 列は、作業ディレクトリ内のパスに対して default permission mode でプロンプトが出るかを示す。No のファイルアクセスツール(Read / Grep / Glob)も、作業ディレクトリと追加ディレクトリの外のパスではプロンプトを出す。Bash は Yes だが、組み込みの read-only コマンド集合はプロンプトなしで動く。
| ツール | 説明 | Permission |
|---|---|---|
Agent | 独自のコンテキストウィンドウを持つ subagent を起動する | No |
Artifact | HTML / Markdown ファイルを claude.ai 上のプライベートで対話的なページ(artifact)として公開する。Pro / Max / Team / Enterprise プランと /login 認証が必要 | Yes |
AskUserQuestion | 要件収集や曖昧さ解消のために多肢選択の質問をする | No |
Bash | シェルコマンドを実行する | Yes |
CronCreate | 現在のセッション内で繰り返し/一回きりのプロンプトをスケジュールする。タスクはセッションスコープで、未期限なら --resume / --continue で復元される | No |
CronDelete | ID でスケジュール済みタスクをキャンセルする | No |
CronList | セッション内の全スケジュール済みタスクを一覧する | No |
Edit | ファイルに対象を絞った編集を行う | Yes |
EndConversation | セッションを終了する。v2.1.213 以降が必要 | No |
EnterPlanMode | plan mode に切り替える | No |
EnterWorktree | 分離された git worktree を作って移動する。path を渡すと既存の worktree へ移動する | Yes |
ExitPlanMode | 計画を承認のために提示し plan mode を抜ける | Yes |
ExitWorktree | worktree セッションを抜けて元のディレクトリへ戻る。isolation: worktree など既に自分の作業ディレクトリで動く subagent では使えない | No |
Glob | パターンマッチでファイルを探す | No |
Grep | ファイル内容をパターン検索する | No |
ListAgents | SendMessage で送れる agent を一覧する。/list-agents コマンドの実体。v2.1.224 以降が必要で、cross-session messaging が有効なセッションにのみ現れる | No |
ListMcpResourcesTool | 接続済み MCP サーバーが公開するリソースを一覧する | No |
LSP | language server によるコードインテリジェンス | No |
Monitor | コマンドをバックグラウンドで実行し、各出力行を Claude に返す。WebSocket を開いて各メッセージをイベントとして扱うこともできる | Yes |
NotebookEdit | Jupyter notebook のセルを変更する | Yes |
PowerShell | PowerShell コマンドをネイティブに実行する | Yes |
PushNotification | デスクトップ通知(Remote Control 接続時はスマートフォンへの push も)を送る。Amazon Bedrock / Claude Platform on AWS / Google Cloud's Agent Platform / Microsoft Foundry からは使えない | No |
Read | ファイルの内容を読む | No |
ReadMcpResourceTool | URI で特定の MCP リソースを読む | No |
RemoteTrigger | claude.ai 上の Routines を作成・更新・実行・一覧する。/schedule コマンドの実体。Routines は claude.ai 上にあり Pro / Max / Team / Enterprise プランが必要なため、Amazon Bedrock / Google Cloud's Agent Platform / Microsoft Foundry からは使えない | No |
ReportFindings | コードレビューの所見を構造化リスト(file / summary / failure scenario)として報告する。v2.1.196 以降が必要。v2.1.199 以降、任意の category slug も持てる | No |
ScheduleWakeup | self-paced /loop の次の反復をスケジュールし直す。1 分〜1 時間先。stop: true でループを終える(stop フィールドは v2.1.202 以降)。Amazon Bedrock / Claude Platform on AWS / Google Cloud's Agent Platform / Microsoft Foundry では利用できず、間隔を指定しない /loop は固定スケジュールで動く | No |
SendMessage | 他の agent(agent team の teammate、agent ID / 名前で resume する subagent、他の Claude Code セッション)にメッセージを送る | No |
SendUserFile | セッションからユーザーへファイルを送る。v2.1.196 以降、display 入力で表示方法を制御する(render / attach、未設定ならクライアントがファイル種別で判断)。Remote Control クライアントが接続しているか、Claude Code on the web のような managed cloud 環境で動いている場合に利用可能。配信が Anthropic ホストのインフラを通るため Amazon Bedrock / Google Cloud's Agent Platform / Microsoft Foundry では利用できない | No |
ShareOnboardingGuide | ONBOARDING.md をアップロードして共有リンクを返す。/team-onboarding から呼ばれる | Yes |
Skill | メイン会話内で skill を実行する | Yes |
TaskCreate | タスク一覧に新しいタスクを作る | No |
TaskGet | 特定のタスクの詳細を取得する | No |
TaskList | 全タスクを現在の状態とともに一覧する | No |
TaskUpdate | タスクの状態・依存・詳細を更新する、または削除する | No |
TaskOutput | バックグラウンドタスクの出力を取得する。タスクの出力ファイルパスに対する Read に置き換えられ非推奨 | No |
TaskStop | ID で実行中のバックグラウンドタスクを止める。agent-team teammate や名前付きバックグラウンド agent も受け付ける(v2.1.198 以降) | No |
TodoWrite | セッションのタスクチェックリストを管理する。v2.1.142 以降、TaskCreate / TaskGet / TaskList / TaskUpdate を優先して既定で無効。CLAUDE_CODE_ENABLE_TASKS=0 で再度有効にできる | No |
ToolSearch | tool search が有効なとき、deferred なツールを検索して読み込む | No |
WaitForMcpServers | バックグラウンドで接続中の MCP サーバーを待つ。tool search が無効なときのみ現れる | No |
WebFetch | 指定 URL の内容を取得する | Yes |
WebSearch | ウェブ検索を行う | Yes |
Workflow | dynamic workflow(多数の subagent をバックグラウンドで指揮し 1 つの結果を返すスクリプト)を実行する | Yes |
Write | ファイルを作成または上書きする | Yes |
permission rule と hook でのツール指定
ツール名を直接書く場所:
- settings の
permissions.allow/permissions.deny、/permissionsインターフェース - CLI フラグ
--allowedTools/--disallowedTools - Agent SDK の
allowedTools/disallowedTools - subagent の
tools/disallowedToolsfrontmatter - skill の
allowed-toolsfrontmatter - hook の
if条件
| ルール形式 | 適用先 |
|---|---|
Bash(npm run *) | Bash, Monitor |
PowerShell(Get-ChildItem *) | PowerShell |
Read(~/secrets/**) | Read, Grep, Glob, LSP |
Edit(/src/**) | Edit, Write, NotebookEdit |
Skill(deploy *) | Skill |
Agent(Explore) | Agent |
WebFetch(domain:example.com) | WebFetch |
WebSearch | WebSearch(specifier 無し) |
- ここに無いツール(
ExitPlanMode、ShareOnboardingGuideなど)は specifier 無しの素のツール名のみを受け付ける Edit(...)の allow ルールは同じパスへの読み取りアクセスも与えるため、対応するRead(...)ルールは不要Read(...)の deny ルールは同じパスに対する Edit ツール(新規ファイル作成を含む)もブロックする。v2.1.208 以降が必要- hook の
matcherは括弧付きのルール形式ではなく素のツール名を使う
Agent ツール
- subagent は別のコンテキストウィンドウでタスクを自律的に進め、1 つのテキスト結果を親会話へ返す。親は中間のツール呼び出しや出力を見ない
- ターン数の上限は subagent 定義の
maxTurns - フォークモードが有効なとき、同じ Agent ツールが forked subagent も起動する
- ツール解決: どちらも未設定なら subagent が使える全ツールを継承、
toolsのみなら列挙分だけ、disallowedToolsのみなら親のツールから除外、両方ならdisallowedToolsが優先 - いずれの場合も解決結果は「subagent が使えるツール」に限られる。subagent が使えないツールは
toolsに書いても与えられない - subagent の起動自体は permission を求めない。subagent 自身のツール呼び出しが permission ルールに照合される
AskUserQuestion ツール
- 選択肢を選ぶか、
Other行やメモ欄に自分でテキストを入力して答える - 自分でテキストを書いた場合、Claude Code は中立的な言い回しで回答を伝える
- 質問は答えるまで開いたままになる。
askUserQuestionTimeout設定(60s/5m/10m)を usersettings.jsonまたは/configの Question auto-continue timeout 行で設定すると、その時間無入力でダイアログが自動で閉じる- 閉じるときに既に選択済みの選択肢を送信し、ユーザーが離席している可能性を Claude に伝える
- 最後の 20 秒はカウントダウンが表示される。任意のキーでタイマーがリセットされ、フォーカスを報告するターミナルではウィンドウを切り替えてもリセットされる
- タイムアウトは
AskUserQuestionの多肢選択にのみ適用される。permission prompt(計画の承認を含む)はアイドルで自動解決されない
Bash ツール
各コマンドは別プロセスで実行される。
コマンド間で持続するもの:
- メインセッションで
cdを実行すると、プロジェクトディレクトリまたは追加作業ディレクトリの中に留まる限り、新しい作業ディレクトリが以降の Bash コマンドに引き継がれる。subagent セッションでは引き継がれない- 範囲外に
cdした場合はプロジェクトディレクトリにリセットされ、ツール結果にShell cwd was reset to <dir>が追記される - 引き継ぎを無効にするには
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1
- 範囲外に
- 環境変数は持続しない。あるコマンドの
exportは次のコマンドで使えない - シェル起動ファイルで定義したエイリアスとシェル関数は使える。セッション開始時に
~/.zshrc/~/.bashrc/~/.profileを source し、得られたエイリアス・関数・シェルオプションを全 Bash コマンドに適用する - 環境変数を持続させるには、起動前に
CLAUDE_ENV_FILEにシェルスクリプトを設定するか、SessionStarthook で動的に埋める
タイムアウトと出力の上限:
- コマンドごとのタイムアウトは Claude が管理する。既定より長くしたいときは呼び出しに
timeoutパラメータを渡す BASH_DEFAULT_TIMEOUT_MS: Claude がタイムアウトを渡さないときの既定。標準で 2 分BASH_MAX_TIMEOUT_MS: Claude の要求を制限する上限。実効の上限は 2 つのうち大きい方で、標準で 10 分- 出力は実行中に作業ファイルへストリームされ、5 GB を超えるとコマンドが kill される
| 結果 | Claude が受け取るもの |
|---|---|
| Valid | 約 30,000 文字までインライン。それを超えるとセッションディレクトリに保存されたファイルのパス(64 MiB で切り詰め)と先頭の短いプレビュー |
| Failure | 約 10,000 文字までインライン。それを超えると read-back window から切り出した head-and-tail の抜粋(ファイルパスなし) |
- exit 1 が valid 扱いになるのは、Claude Code がそのコマンドで exit 1 を無害な結果と認識する場合のみ:
grep,rg,egrep,fgrep,find,diff,test,[、およびgit diffとgit grep。それ以外は exit 1 が無害な情報であっても failure 扱い BASH_MAX_OUTPUT_LENGTHは作業ファイルから結果に読み戻す文字数を決める。既定 30,000、上限 150,000。これを上げても上記のインライン上限は上がらない
バックグラウンドコマンド:
- Claude は
run_in_background: trueでコマンドをバックグラウンドタスクとして開始できる。一覧と停止は/tasks - タイムアウトに達して終わらないコマンドは停止ではなくバックグラウンドへ移される。
sleepで始まるコマンドは自動バックグラウンド化されない。CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1で自動バックグラウンド化ごと無効になる - タイムアウトで移された場合の結果:
Command did not complete within its 120s timeout and was moved to the background(秒数は適用されたタイムアウト)に続けてタスク ID と出力先ファイルパス - バックグラウンドへ移されたコマンド内の
cd/pushd/popd/chdirは引き継がれず、結果にSession cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands.と表示される
Edit ツール
- 完全一致の文字列置換を行う。正規表現やあいまい一致は使わない
- 適用には 3 つのチェックが必要。その前に
Readdeny ルールに一致するパスは(新規ファイル作成を含め)拒否される(v2.1.208 以降)- Read-before-edit: 編集前に同じ会話でファイルを読んでいること。
PARTIAL viewの注記で途中で切れた読み取りは数えない。Claude Opus 4.6 / Claude Haiku 4.5 とそれ以前のモデルは常に読み取りが必要。新しいモデルは、読み取りに permission prompt が不要で Read ツールが使える場合、未読ファイルを編集できる - Match:
old_stringがファイル内に書かれたとおり正確に現れること。空白やインデントが 1 文字違うだけで一致しない - Uniqueness:
old_stringがちょうど 1 回だけ現れること。複数回現れる場合は前後の文脈を足して一意にするか、replace_all: trueを設定する
- Read-before-edit: 編集前に同じ会話でファイルを読んでいること。
- Claude が最後に読んだ後にディスク上で変わったファイルでも、
old_stringが現在の内容と正確かつ一意に一致し、プロンプトなしで読めるなら編集できる。結果には他の変更があることが記される(v2.1.208 以降) - Bash でのファイル閲覧も read-before-edit を満たす。対象は単一ファイルに対しパイプもリダイレクトも無い
cat/head/tail/sed -n 'X,Yp'/grep/egrep/fgrep - Read / Edit の deny ルールは Claude Code が認識する Bash のファイルコマンドにも適用されるが、read-before-edit のリストとは同一ではない(
egrepとfgrepは read-before-edit には数えるが Read deny ルールの照合対象ではない)
EndConversation ツール
- Claude が使うのは 2 つの状況のみ: 継続的な攻撃的入力に対する最後の手段(会話の方向転換の試みが失敗し、以前のメッセージで明確に警告した後)と、ユーザーが明示的にデモを求めて終了に同意したとき
- 一般的な苛立ち、罵倒、うまくいかないタスクは該当しない。有害なコンテンツの要求も該当せず、Claude は終了ではなく拒否する
- 対話セッションを終了するとセッションはロックされる。新しいプロンプトと多くのコマンドは
Claude ended this conversation. Start a new session (or /clear) to continue.を返し、/clear//resume//help//exit//feedbackのみが動く。終了はトランスクリプトに記録されるため、resume するとロックも復元される。履歴は削除されない - 非対話モードで終了済みセッションを resume するとエラーになり終了コード 1 になる
- permission を求めず、
PreToolUsehook も動かない。他のツールが残っている限りブロックできない(EndConversationを指す deny / ask ルールは効かず、--disallowedToolsも--toolsリストも取り除けない) - deny ルールが他のすべてのツールを取り除き、かつ
"*"のようにEndConversationにも一致する場合は、allow ルールが明示的にEndConversationを挙げていない限りこれも取り除かれる - subagent には決して与えられない。メイン会話のツールリストを共有するバックグラウンドタスクからは見えるが、呼んでも何も終了しない
現れる条件(すべてを満たすとき):
- Version: v2.1.213 以降
- Model: セッションのモデルが Claude Opus 4.8、Claude Sonnet 5、Claude Fable 5、またはそれらのファミリーの後のバージョン
- Surface: 対話ターミナルセッション(IDE の統合ターミナル内の
claudeを含む)。非対話-p、Agent SDK、VS Code 拡張パネル、GitHub Actions、Claude Code on the web では含まれない - Startup mode:
--bareセッションでない - Provider: Amazon Bedrock / Claude Platform on AWS / Google Cloud's Agent Platform / Microsoft Foundry、および cloud gateway 経由でサインインしたセッションでは利用できない
Glob ツール
- 標準の glob 構文をサポートする(
**による再帰マッチを含む) - 結果は更新時刻でソートされ 100 ファイルで打ち切られる。上限に達すると結果に truncation フラグが付く
- 既定では
.gitignoreを尊重しないため、gitignore されたファイルも見つける(Grep とは異なる)。尊重させるには起動前にCLAUDE_CODE_GLOB_NO_IGNORE=falseを設定する patternやpathに null バイトが含まれるとエラーを返す
Grep ツール
- ripgrep 上に構築され、POSIX grep ではなく ripgrep の正規表現構文を使う。メタ文字はエスケープが必要(Go の
interface{}を探すならinterface\{\}) - ripgrep が拒否したパターン・glob・ファイル種別は、ripgrep の診断を含むエラーを返す(v2.1.208 以降。それ以前は
No files foundを返していた) - 出力モード
files_with_matches: ファイルパスのみ(既定)content: ファイル名と行番号付きの一致行。offsetが最後の一致より後を指す場合はNo entries at this offsetを返すcount: ファイルごとの一致数と全体の合計。head_limitやoffsetで一覧が切り詰められても合計は全一致を数える(v2.1.208 以降)
globパラメータ(**/*.tsx)やtypeパラメータ(py、rust)で絞り込む- 既定では 1 行内でマッチする。
multiline: trueで行をまたぐ .gitignoreを尊重するため gitignore されたファイルはスキップされる。検索するにはパスを直接渡す
LSP ツール
- 各ファイル編集の後、型エラーと警告を自動報告する
- 直接呼んでコードを辿ることもできる: シンボル定義へのジャンプ、参照検索、位置の型情報取得、ファイル内シンボル一覧、ワークスペース横断のシンボル名検索、インターフェースの実装検索、呼び出し階層のトレース
- 言語向けの code intelligence plugin をインストールするまで非アクティブ。plugin は language server 設定を同梱し、サーバーバイナリは別途インストールする
Monitor ツール
- コマンドを実行する場合、Bash と同じ permission ルールを使う
- Amazon Bedrock / Google Cloud's Agent Platform / Microsoft Foundry では利用できない。
DISABLE_TELEMETRYまたはCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICが設定されている場合も利用できない - plugin は plugin が有効なときに自動起動する monitor を宣言できる
WebSocket source(v2.1.195 以降):
- テキストメッセージ: 複数行でも 1 つのイベントになる
- バイナリメッセージ: 通されない。
[binary frame, 512 bytes]のようなプレースホルダ行を受け取る - 1 MiB を超えるメッセージ: watch が終了する
- ソケットのクローズ: watch が終了し、Claude は close code を受け取る
ws入力はcommandの代わりに使い、1 回の Monitor 呼び出しで両方は使えない
| フィールド | 必須 | 説明 |
|---|---|---|
url | はい | ws:// または wss:// の URL。埋め込み認証情報や空白を含まず ASCII のみ |
protocols | いいえ | ハンドシェイクで提示する WebSocket subprotocol 名。各エントリは妥当な subprotocol トークンで、重複不可 |
timeout_msとpersistentはコマンドと同じ挙動。TaskStopで早期キャンセルできる- WebSocket を開くと承認を求められる。同じホストの以降のプロンプトを省く選択肢は無い
- private / link-local / cloud-metadata アドレスを指す URL(それに解決されるホスト名を含む)は拒否される。
sandbox.network.deniedDomainsのホスト、managed settings でallowManagedDomainsOnlyが設定されている場合は managed allowlist 外のホストも拒否される
NotebookEdit ツール
cell_idでセルを指定して 1 セルずつ変更する。Edit のようなノートブック全体の文字列置換は行わない- 編集モード:
replace(既定、セルの source を上書き)、insert(対象の後に新セルを追加。cell_id無しならノートブック先頭。cell_typeにcodeまたはmarkdownが必要)、delete(対象セルを削除) - permission ルールは
Edit(...)のパス形式を使う
PowerShell ツール
利用可能になる条件:
-
Git Bash の無い Windows: 自動で有効
-
Git Bash がある Windows: 段階的に展開中
-
Linux / macOS / WSL: opt-in
-
有効化は
CLAUDE_CODE_USE_POWERSHELL_TOOL=1(環境変数またはsettings.json)。Windows では0で展開から外れる。Linux / macOS / WSL では PowerShell 7 以降が必要(pwshをPATHに置く) -
Windows では PowerShell 7+ の
pwsh.exeを自動検出し、PowerShell 5.1 のpowershell.exeにフォールバックする。有効時は PowerShell が主シェルとして扱われる。Git Bash がインストールされていれば Bash ツールも POSIX スクリプト用に残る -
PowerShell はプロセススコープの
-ExecutionPolicy Bypassで起動される。Group Policy のMachinePolicy/UserPolicyは上書きしない。マシンの実効実行ポリシーを尊重するにはCLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1 -
PreToolUsehook は Bash ツールと同じフィールドでtool_input.commandにコマンド文字列を受け取る。シェルコマンドを検査する hook ではBash|PowerShellにマッチさせる
シェル選択の設定:
-
settings.jsonの"defaultShell": "powershell": 対話の!コマンドを PowerShell で実行する。PowerShell ツールの有効化が必要 -
command hook の
"shell": "powershell": その hook を PowerShell で実行する。hook は PowerShell を直接起動するためCLAUDE_CODE_USE_POWERSHELL_TOOLに関わらず動く -
skill frontmatter の
shell: powershell:!`command`ブロックを PowerShell で実行する。PowerShell ツールの有効化が必要 -
v2.1.196 以降、
grep/egrep/fgrep/git grepの exit 1 は「一致なし」、git diffの exit 1 は「差分あり」を意味し、コマンド失敗として報告されない -
Windows のエンコーディングと exit code の挙動(v2.1.214 以降):
>と>>は PowerShell 5.1 でも UTF-8 で書く、ネイティブコマンドの標準入力へのパイプを UTF-8 でエンコードする、ANSI エスケープなしでエラー出力を捕捉する、標準入力を待つ子プロセスはハングせず EOF を受け取る、where.exeの exit 1 は「一致なし」・fc.exeとdiff.exeの exit 1 は「ファイルが異なる」として扱う(出力がある場合。where.exe /Qや$nullへのリダイレクトのような黙らせた形は exit 1 で失敗扱い) -
プレビュー中の既知の制限: PowerShell profile は読み込まれない。Windows では sandboxing 非対応
Read ツール
- ファイルパスを取り、行番号付きで内容を返す。Claude は常に絶対パスを渡すよう指示されている
- 既定ではファイル先頭から返す。全体読み取りがトークン上限を超えると、最初のページと
PARTIAL viewの注記(どれだけ受け取ったか、offsetとlimitでの続きの読み方)を返す - 明示的な
offset/limitを渡してなおトークン上限を超える場合はエラーになる - 明示的な
limit付きの読み取りは、選択行がトークン上限に収まりえない時点で止まりエラーを返す。より小さいlimitを使うか、1 行が巨大な場合は Grep で特定内容を探すよう伝える(v2.1.208 以降) - 空ファイルの読み取りは、ファイルは存在するが内容が空であるという通知を返す。最終行より後の
offsetはファイルの行数を示す通知を返す(v2.1.208 以降) - Images: PNG / JPG などは Claude が見られる視覚的コンテンツとして返る。大きな画像はモデルの上限に合わせてリサイズ・再圧縮される。v2.1.196 以降、リサイズ後も 500KB を超える画像はピクセル寸法を保ったまま低品質の JPEG に再エンコードされる
- PDFs: 短い
.pdfは全体を読む。10 ページを超える PDF はpagesパラメータ("1-5"など、一度に最大 20 ページ)で範囲読みする - Jupyter notebooks:
.ipynbは全セルを出力込みで返す - ディレクトリは読めない。
lsなどのシェルコマンドを使う
WebFetch ツール
- URL と抽出内容を記述したプロンプトを取る。ページを取得し、HTML なら Markdown に変換し、小さく高速なモデルでプロンプトを実行する。多くの場合 Claude が受け取るのは生ページではなくそのモデルの回答。変換ステップは設定できない
- 設計上 lossy。抽出プロンプトが届く内容を決めるため、「ページに書かれていない」という結果はプロンプトが尋ねなかっただけかもしれない
- HTTP URL は自動的に HTTPS へアップグレードされる
- 大きなページは処理前に固定の文字数上限で切り詰められる
- 応答は 15 分キャッシュされる
- 別ホストへリダイレクトする場合、追わずに元 URL とリダイレクト先を示すテキスト結果を返す。Claude は 2 回目の WebFetch で新 URL を取得する
- 抽出ステップが過負荷の API に当たった場合はバックオフ付きで再試行し、なお失敗するとエラー結果を返す(v2.1.212 より前は API エラーテキストが抽出内容として Claude に届くことがあった)
- default と
acceptEditsモードでは、新しいドメインに初めて到達するときにプロンプトを出す。ただしプロンプトなしで取得できる組み込みの preapproved なドキュメントドメイン集合がある。事前許可するにはWebFetch(domain:example.com)のルールを追加する。autoとbypassPermissionsはプロンプトを完全に飛ばす deny/ask/allowの明示的なWebFetch(domain:...)ルールは preapproved 集合より優先されるUser-AgentヘッダーはClaude-Userで始まり、Acceptヘッダーは HTML より Markdown を優先する- sandbox のネットワークルールは別に設定する
WebSearch ツール
- Anthropic の web search バックエンドにクエリを投げ、結果のタイトルと URL を返す。ページ自体は取得しない
- 1 回の呼び出しで最大 8 回のバックエンド検索を行い、内部で絞り込んでから結果を返す
allowed_domainsで特定ホストのみに、blocked_domainsで除外に絞れる。1 回の呼び出しで両方は使えない- permission ルールは specifier を取らない。
allow/denyの素のWebSearchエントリのみ - 検索バックエンドは設定できない。別のプロバイダで検索するには検索ツールを公開する MCP サーバーを追加する
- Claude API と Claude Platform on AWS で利用できる。Microsoft Foundry では Anthropic ホストのデプロイが必要(Azure ホストのデプロイは server-side ツール非対応で呼び出しが失敗する)。Google Cloud's Agent Platform では Claude 4 以降のモデルで動く。Amazon Bedrock は server-side の web search ツールを公開していない
- 1 セッションあたり最大 200 回。メイン会話と生成した全 subagent を通じて数える。v2.1.212 以降が必要。上限に達すると、エラーではなく「既に集めた情報で続けるように」という通知を返す。
CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSIONで上限を変えられる(正の整数のみで、無効化はできない)。/clearでカウントがリセットされる。ただし clear 後も subagent を生成しうる作業(実行中の workflow など)が残っている場合はカウントが引き継がれる
Write ツール
- 与えられた内容でファイルを新規作成、または全体を上書きする。追記もマージもしない
- 対象パスが既に存在する場合、同じ会話で少なくとも 1 回読んでいなければ上書きに失敗する。新規ファイルにはこの制約は無い
- Bash でのファイル閲覧も Edit と同じルールでこの要件を満たす
- 既存ファイルの部分変更には Write ではなく Edit を使う
設定
PowerShell ツールを有効にする(環境変数として設定するか settings.json の env に書く):
{
"env": {
"CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
}
}
Windows では 0 を設定すると段階展開から外れる。Linux / macOS / WSL では PowerShell 7 以降が必要で、pwsh を PATH に置く。
制約・注意点
- 利用できるツール集合はプロバイダ・プラットフォーム・設定で変わる。実行中のセッションで確認するには Claude に直接尋ねる。MCP の正確なツール名は
/mcp - advisor tool は API 側が実行する server tool であり、Claude Code が実装するツールではない。permission ルールや hook matcher で参照できる名前は無い
関連
facts/claude-code/permissions.mdfacts/claude-code/hooks.mdfacts/claude-code/sub-agents.mdfacts/claude-code/mcp.mdfacts/claude-code/skills.mdfacts/claude-code/sandboxing.mdfacts/claude-code/env-vars.mdfacts/claude-code/settings.mdfacts/claude-code/worktrees.md