「初級編」でClaude Codeの基本を押さえたあなたは、もう一歩先へ進む準備ができています。
この記事では、Claude Codeをより効率的に、より安全に、より実践的に使いこなすための中級テクニックを解説します。カスタムコマンド、MCP連携、Hooks、そして実務での活用パターンまで、日々の開発を加速させるノウハウを詰め込みました。
初級編を読んでいない方は、まずそちらから読むことをおすすめします。
この記事でできるようになること
- 権限設定を細かくカスタマイズして、安全性と利便性を両立できる
- Hooksで自動フォーマットや自動チェックを設定できる
- カスタムコマンドで定型作業を一発実行できる
- MCPサーバーでGitHubやデータベースと連携できる
- 実務のさまざまなシーンでClaude Codeを活用できる
- チェックポイント機能で安心して大胆な変更ができる
権限設定を使いこなす
初級編では「秘密情報をブロックする」基本的な設定を紹介しました。中級編では、より細かい権限設定で安全性と利便性のバランスを取る方法を解説します。
権限の3つのレベル
Claude Codeの権限設定には、3つのレベルがあります。
| レベル | 動作 | 使いどころ |
|---|---|---|
allow |
自動で許可(確認なし) | よく使う安全な操作 |
ask |
毎回確認を求める | 状況によって判断したい操作 |
deny |
常に拒否 | 絶対に実行させたくない操作 |
実践的な権限設定の例
以下は、日常的な開発で使いやすい設定例です。.claude/settings.json(または.claude/settings.local.json)に記述します。
{
"permissions": {
"allow": [
"Read",
"Bash(npm run *)",
"Bash(npm test)",
"Bash(git status)",
"Bash(git diff)",
"Bash(git add *)",
"Bash(git commit *)",
"Bash(git log *)",
"Bash(git branch *)"
],
"ask": [
"Write",
"Edit",
"Bash(git push *)",
"Bash(npm install *)"
],
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Read(./**/credentials*)",
"Read(./**/*.pem)",
"Read(./**/*.key)",
"Bash(rm -rf *)",
"Bash(curl *)",
"Bash(wget *)"
]
}
}
この設定のポイント:
- allow:ファイル読み取り、テスト実行、Git参照系は自動許可
- ask:ファイル書き込み、push、パッケージインストールは確認を挟む
- deny:秘密情報、危険なコマンドは常にブロック
settings.local.json は .gitignore に追加して、個人設定として管理するのがおすすめです。チームで共有する設定は settings.json に書きましょう。Hooks:自動化で品質を保つ
Hooksは、Claude Codeの特定のアクションの前後に自動でコマンドを実行する仕組みです。コードフォーマットや型チェックを自動化することで、品質を保ちながら効率的に作業できます。
Hooksの基本構造
.claude/settings.json に以下のように記述します。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.ts)",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $file"
}
]
}
]
}
}
この例では、TypeScriptファイルが書き込まれるたびに、自動でPrettierが実行されます。
実践的なHooks設定例
以下は、より実践的な設定例です。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write(*.ts)",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $file && npx tsc --noEmit $file"
}
]
},
{
"matcher": "Write(*.tsx)",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $file"
}
]
},
{
"matcher": "Write(*.py)",
"hooks": [
{
"type": "command",
"command": "python -m black $file"
}
]
},
{
"matcher": "Write(*.css)",
"hooks": [
{
"type": "command",
"command": "npx stylelint --fix $file"
}
]
}
]
}
}
これにより:
- TypeScript:Prettier + 型チェック
- TSX:Prettierでフォーマット
- Python:Blackでフォーマット
- CSS:Stylelintで修正
が自動で行われます。Claude Codeが書いたコードが、常にプロジェクトの規約に沿った状態になります。
カスタムコマンド:定型作業を一発で
よく使う指示を、Markdownファイルでカスタムコマンドとして保存できます。定型作業を一発で実行できるようになり、タイプ量と時間を大幅に削減できます。
コマンドの配置場所
- プロジェクト用:
.claude/commands/(チームで共有可能) - 個人用:
~/.claude/commands/(全プロジェクトで使用可能)
基本的なコマンドの作り方
例として、コードレビューを依頼するコマンドを作ってみましょう。
mkdir -p .claude/commands
.claude/commands/review.md を作成:
---
description: 現在の変更をコードレビュー
---
現在のgit diffを確認して、以下の観点でレビューしてください:
1. セキュリティ上の問題点
2. パフォーマンスの問題点
3. 可読性・保守性の問題点
4. テストの網羅性
問題があれば、具体的な修正案も提示してください。
これで /review と打つだけで、このプロンプトが実行されます。
引数を受け取るコマンド
$ARGUMENTS を使うと、コマンドに引数を渡せます。
.claude/commands/fix-issue.md:
---
description: GitHubのissueを修正する
allowed-tools: Bash(gh issue view:*), Read, Write, Bash(git:*)
---
以下のGitHub issueを分析し、修正を行ってください:
1. `gh issue view $ARGUMENTS` でissueの詳細を取得
2. 関連するコードを特定
3. 修正を実装
4. テストを実行
5. 適切なコミットメッセージでコミット
issue番号: $ARGUMENTS
使い方:
/fix-issue 123
おすすめのカスタムコマンド集
実務で役立つコマンドをいくつか紹介します。
コミットメッセージ生成(/commit)
---
description: 変更内容からコミットメッセージを生成
allowed-tools: Bash(git status:*), Bash(git diff:*), Bash(git add:*), Bash(git commit:*)
---
現在の変更内容を確認し、Conventional Commits形式でコミットしてください。
1. `git status` と `git diff` で変更を確認
2. 変更の種類(feat/fix/refactor/docs/test/chore)を判断
3. 簡潔で分かりやすいコミットメッセージを生成
4. 変更をステージングしてコミット
テスト生成(/test)
---
description: 指定したファイルのテストを生成
---
$ARGUMENTS のテストを作成してください。
1. 対象ファイルを読み込む
2. 関数・メソッドを特定
3. 正常系・異常系・エッジケースを網羅したテストを作成
4. 既存のテストファイルがあれば、そのスタイルに合わせる
5. テストを実行して通ることを確認
ドキュメント生成(/docs)
---
description: 指定したファイルのドキュメントを生成
---
$ARGUMENTS のドキュメントを作成してください。
1. ファイルを読み込み、機能を理解
2. JSDoc/docstring形式でコメントを追加
3. 使用例を含める
4. 戻り値と例外についても記述
MCP:外部ツールとの連携
MCP(Model Context Protocol)は、Claude Codeを外部ツールやサービスと連携させるプラグインシステムです。GitHub、データベース、Web検索など、様々なサービスと接続できます。
MCPの追加方法
MCPサーバーは、CLIコマンドまたは設定ファイルで追加できます。
CLIで追加
claude mcp add github \
--env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxx \
-- npx -y @modelcontextprotocol/server-github
設定ファイルで追加
~/.claude.json を編集:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxx"
}
}
}
}
おすすめMCPサーバーとインストール方法
1. GitHub MCP
GitHubと連携して、Issue管理やPR操作ができます。
準備:GitHubでPersonal Access Tokenを作成(Settings → Developer settings → Personal access tokens → Tokens (classic))。必要なスコープ:repo, read:org
インストール:
claude mcp add github \
--env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_あなたのトークン \
-- npx -y @modelcontextprotocol/server-github
使用例:
- 「Issue #123の内容を確認して」
- 「この修正をPRにして」
- 「最近のコミット履歴を見せて」
2. Brave Search MCP
Web検索機能を追加。最新のドキュメントやエラー解決策を検索できます。
準備:Brave Search APIでAPIキーを取得(無料枠あり)
インストール:
claude mcp add brave-search \
--env BRAVE_API_KEY=あなたのAPIキー \
-- npx -y @anthropics/mcp-server-brave-search
使用例:
- 「Next.js 15の新機能を調べて」
- 「このエラーメッセージの解決策を検索して」
3. PostgreSQL MCP
データベースに直接クエリを実行できます。
インストール:
claude mcp add postgres \
--env DATABASE_URL=postgresql://user:pass@localhost:5432/mydb \
-- npx -y @anthropics/mcp-server-postgres
使用例:
- 「usersテーブルの構造を見せて」
- 「先月登録したユーザー数を集計して」
4. Filesystem MCP
指定したディレクトリへの安全なアクセスを提供します。
インストール:
claude mcp add filesystem \
-- npx -y @anthropics/mcp-server-filesystem /path/to/directory
5. Context7 MCP
最新のライブラリドキュメントを取得。古い情報に基づいたコードを防げます。
インストール:
claude mcp add context7 \
-- npx -y context7-mcp
MCPの管理コマンド
| コマンド | 説明 |
|---|---|
claude mcp list |
追加済みのMCPサーバー一覧 |
claude mcp remove 名前 |
MCPサーバーを削除 |
/mcp(Claude Code内) |
接続状態を確認 |
MCPサーバーには外部へのアクセス権限を渡すことになります。信頼できるサーバーのみを使用し、必要最小限の権限を渡すようにしましょう。
チェックポイント機能:安心して大胆に
Claude Codeにはチェックポイント機能があり、変更を加える前の状態を自動で保存してくれます。これにより、大胆な変更も安心して試せます。
チェックポイントの使い方
- 戻る:
Escapeを2回押すと、チェックポイント一覧が表示されます - コマンドで戻る:
/rewind
チェックポイントに戻るとき、以下を選択できます:
- コードだけ戻す
- 会話だけ戻す
- 両方戻す
チェックポイントはClaude Codeの編集に対して機能します。ユーザー自身の編集やbashコマンドの結果は対象外なので、重要な変更前にはGitでコミットしておくことをおすすめします。
VS Code拡張:IDEとの統合
Claude CodeにはVS Code拡張(ベータ版)があり、ターミナルを離れることなくIDE内でClaude Codeを使えます。
インストール方法
- VS Codeの拡張機能マーケットプレイスで「Claude Code」を検索
- インストール
- サイドバーにClaude Codeパネルが表示される
VS Code拡張の特徴
- インラインdiffでClaude Codeの変更をリアルタイム確認
- サイドバーパネルで会話
- 複数インスタンスを並行して実行可能
実務での活用パターン
ここからは、実際の開発シーンでのClaude Code活用例を紹介します。
パターン1:新しいプロジェクトを引き継いだとき
知らないコードベースを理解するのに、Claude Codeは最適です。
> このプロジェクトの全体構造を教えて
> 認証周りの処理はどこにある?
> このプロジェクトで一番複雑そうな部分はどこ?
> @src/services/auth.ts を読んで、認証フローを図解して
パターン2:バグ修正
エラーログを渡して、原因特定から修正まで一気にお任せ。
> @error.log を見て、このエラーの原因を調べて
> 原因が分かったら修正して。テストも追加して
> 修正の差分を見せて。問題なければコミットして
パターン3:新機能の実装
要件を伝えて、設計から実装までお任せ。
> ユーザープロフィール編集機能を追加したい。
以下の要件で実装して:
- 名前、メールアドレス、アバター画像を編集できる
- バリデーションを入れる
- 既存のUIコンポーネントを使う
先にTODOを出して、1ステップずつ進めて
パターン4:リファクタリング
大規模な書き換えも、チェックポイントがあるから安心。
> src/componentsディレクトリ内のクラスコンポーネントを
すべてReact Hooksを使った関数コンポーネントに変換して。
1ファイルずつ、テストが通ることを確認しながら進めて
パターン5:一日の終わりに
Git操作を丸投げして、きれいなコミット履歴を作成。
> 今日の変更を確認して、適切な単位でコミットを分けて作成して。
コミットメッセージはConventional Commits形式で。
ヘッドレスモード:自動化スクリプトとの連携
-p フラグを使うと、Claude Codeをスクリプトから呼び出せます。CI/CDやバッチ処理との連携に便利です。
基本的な使い方
# 一度だけ実行して終了
claude -p "package.jsonの内容を要約して"
# JSON形式で出力
claude -p "依存関係を一覧で" --output-format json
自動化スクリプトの例
複数ファイルを一括でTypeScriptに変換:
#!/bin/bash
for file in src/legacy/*.js; do
claude -p "このファイルをTypeScriptに変換して: $file" \
--allowedTools Edit Bash
done
プライバシー設定
業務で使う場合、プライバシー設定を確認しておくと安心です。
テレメトリの無効化
環境変数または設定ファイルで無効化できます。
{
"env": {
"DISABLE_TELEMETRY": "1",
"DISABLE_ERROR_REPORTING": "1"
}
}
プライバシー設定の確認
/privacy-settings
トラブルシューティング
コンテキストが長すぎる
長い会話でコンテキストが溢れそうなときは:
/compact:会話を要約して圧縮/clear:会話をリセット/context:使用量を確認
MCPサーバーが接続できない
# デバッグモードで起動
claude --mcp-debug
# 状態確認
/mcp
動作が不安定
claude doctor
まとめ
この記事では、Claude Codeの中級テクニックを解説しました。
- 権限設定:allow/ask/denyで安全性と利便性を両立
- Hooks:自動フォーマット、自動チェックで品質を保つ
- カスタムコマンド:定型作業を一発実行
- MCP:GitHub、データベース、Web検索との連携
- チェックポイント:安心して大胆な変更ができる
- ヘッドレスモード:スクリプトからの自動実行
これらのテクニックを組み合わせることで、Claude Codeはさらに強力なツールになります。
最初からすべてを使いこなす必要はありません。まずは一つ試してみて、徐々にレパートリーを増やしていってください。気づけば、Claude Codeなしの開発が考えられなくなっているはずです。



コメント