メインコンテンツへスキップ
4 / 26|9分で読めます

ツールシステム — Claude Codeの「手足」を理解する

Read、Write、Edit、Bash、Grep、Glob。Claude Codeが使える全ツールの役割と使い分けを扱う。

Claude Codeの能力は「ツール」によって定義される。ツールを理解することは、Claude Codeの可能性と限界を理解することだ。


ツールとは何か

Claude Codeが「ファイルを読む」「コマンドを実行する」といった操作を行うとき、内部ではツールと呼ばれる機能を呼び出している。

人間に例えるなら、ツールは「手足」に相当する。脳(AI)がどれだけ優秀でも、手足がなければ物理的な作業はできない。Claude Codeのツールは、AIの思考を現実世界の操作に変換するインターフェースである。


ファイル操作系ツール

Read — ファイルを読む

最も基本的なツール。ファイルの内容を読み取る。

対応形式:

  • テキストファイル(.ts, .tsx, .py, .md, .json, .yaml 等)
  • 画像ファイル(.png, .jpg 等)— Claude Codeはマルチモーダルであり、画像の内容を理解できる
  • PDFファイル — ページ範囲の指定が可能
  • Jupyter Notebook(.ipynb)— セルと出力を統合して読み取る
> このファイルの100行目から150行目を見せて

offsetlimit パラメータで、大きなファイルの一部だけを読み取ることもできる。

Write — ファイルを作成する

新規ファイルの作成、または既存ファイルの完全書き換えに使う。

> src/utils/helpers.ts を新規作成して

Write vs Edit

既存ファイルの一部を変更したい場合は、WriteではなくEditを使う。Writeはファイル全体を置き換えるため、意図しない変更が起きるリスクがある。Claude Codeはこの使い分けを自動的に行うが、指示を出す際にも意識しておくとよい。

Edit — ファイルを編集する

既存ファイルの特定箇所を差分ベースで編集する。Claude Codeの最も頻繁に使われるツールの一つ。

仕組み: 変更したい文字列(old_string)を指定し、新しい文字列(new_string)に置き換える。ファイル全体を書き換えるのではなく、該当箇所だけを精密に編集する。

> この関数の戻り値の型を number から { value: number; unit: string } に変更して

replace_all オプションを使えば、ファイル内のすべての一致箇所を一括で変更できる。変数名のリネームなどに便利。


検索系ツール

Grep — コード内容を検索する

ripgrepベースの高速コンテンツ検索。正規表現が使える。

出力モード:

  • files_with_matches: マッチしたファイルパスの一覧(デフォルト)
  • content: マッチした行の内容(前後のコンテキスト付き)
  • count: マッチ数のカウント
> プロジェクト内で "useState" を使っている箇所をすべて探して

ファイルタイプやglobパターンでフィルタリングも可能。TypeScriptファイルだけを検索する、特定のディレクトリだけを検索する、といった絞り込みができる。

Glob — ファイルを探す

ファイル名のパターンマッチ。/*.tsx のようなglob記法でファイルを検索する。

> src/components/ 配下のすべての .tsx ファイルを探して

find コマンドに相当するが、Globツールの方が高速で、結果は更新日時順にソートされる。

Grep vs Glob の使い分け

Grep: ファイルの「中身」を検索したいとき(例:特定の関数が使われている場所)。Glob: ファイルの「名前」で探したいとき(例:特定のディレクトリのTypeScriptファイル一覧)。


コマンド実行系ツール

Bash — シェルコマンドを実行する

任意のシェルコマンドを実行する。最も強力で、最も注意が必要なツール。

主な用途:

  • テスト実行(npm testpytest
  • ビルド(npm run build
  • Git操作(git statusgit commit
  • パッケージインストール(npm install
  • その他のCLIツール

制約:

  • デフォルトで2分のタイムアウト(最大10分まで延長可能)
  • バックグラウンド実行が可能(run_in_background パラメータ)
  • インタラクティブなコマンド(ユーザー入力が必要なもの)は非対応
> テストを実行して

Claude Codeは可能な限りBashよりも専用ツールを優先する。ファイルの読み取りには cat ではなく Read を、検索には grep ではなく Grep を使う。これにより、ユーザーがAIの行動を把握しやすくなる。


Web系ツール

WebFetch — Webページを取得する

URLを指定してWebページのコンテンツを取得し、分析する。HTMLはMarkdownに変換される。

> この API ドキュメント(URL)の内容を確認して

制約:

  • 認証が必要なサイトには対応していない(Google Docs、Jira等)
  • HTTPSにアップグレードされる
  • 15分のキャッシュが有効

WebSearch — Web検索する

最新情報をWeb検索で取得する。ドキュメントの最新版やライブラリの更新情報を調べるのに便利。

> Next.js 16の最新のApp Routerの使い方を調べて

高度なツール

Agent — サブエージェントを起動する

複雑なタスクを別のエージェントに委任する。メインの会話のコンテキストを保護しつつ、専門的な調査や分析を行える。

エージェントの種類:

  • Explore: コードベースの探索に特化(読み取り専用)
  • Plan: 実装計画の設計(読み取り専用)
  • general-purpose: 全ツールが使える汎用エージェント
  • その他、カスタムエージェント
> セキュリティレビューをsecurity-reviewerエージェントに依頼して

TodoWrite — タスクを管理する

複雑な作業の進捗を管理する構造化タスクリスト。マルチステップの作業でClaude Codeが「今どこにいるか」を追跡する。


ツールの優先順位

Claude Codeは以下の原則でツールを選択する。

  1. 専用ツールを優先: cat より Readgrep より Grepsed より Edit
  2. 最小権限の原則: ファイルの一部編集には Write(全書き換え)ではなく Edit(部分編集)
  3. 並列実行: 独立した複数のツール呼び出しは同時に行う

この設計により、AIの行動が人間にとって予測可能で検証しやすいものになっている。


医療文脈での活用例

ユースケース使用ツール説明
患者データCSVの分析Read → BashCSVを読み取り、Pythonスクリプトで統計分析
論文PDFのレビューReadPDFを読み取り、内容を要約・批評
医療計算アプリの開発Write + Edit + BashTypeScript関数の作成、テスト実行
既存コードのリファクタリングGrep → Edit問題箇所の検索、差分ベースの修正
APIドキュメントの確認WebFetch外部APIの仕様を取得して分析

この章のポイント

  • Claude Codeのツールは「ファイル操作」「検索」「コマンド実行」「Web」「高度」の5カテゴリに分類される
  • Readはテキスト・画像・PDF・Jupyterに対応し、Editは差分ベースの精密な編集を行う
  • GrepはコンテンツClaude Codeは専用ツールをBashよりも優先し、AIの行動を予測可能にしている
  • 各ツールはパーミッションシステムで制御され、人間の承認なしに実行されることはない