1基本に慣れたら“自分仕様”に!拡張の4つの柱
基本操作にだいぶ慣れてきましたか?それなら次は、Claude Code をあなた専用の道具に育てていく番です。実は Claude Code は、後から機能を「足し算」できる仕組みをたくさん持っています。中級
拡張の方法は大きく分けて4つ。それぞれ「いつ使うと便利か」が違います。まずはざっくり全体像をつかみましょう。細かい使い方はこの後のセクションでひとつずつ解説します。
スキル(SKILL.md)
よく繰り返す作業を「手順書」としてフォルダに保存。関連する場面で Claude が自動で読み込んだり、/名前で呼び出したりできます。
カスタム・スラッシュコマンド
自分だけの/コマンドを作る仕組み。今はスキルに統合されていて、ファイルを置くだけで使えます。
Hooks(フック)
「保存したら自動で整形」「危ないコマンドはブロック」など、決まったタイミングで自動実行するガードレール(=安全柵)。
MCP
GitHub・ブラウザ・データベースなど、外部のツールと Claude をつなぐ規格。Claude に「追加の道具」を持たせます。
2スキル(SKILL.md)を作る
スキルは、Claude にできることを増やす一番の基本です。SKILL.md というファイルに「手順」を書いておくと、Claude がそれを道具箱に追加してくれます。
📁スキルはフォルダに置く
スキルは「フォルダ+その中の SKILL.md」という形です。置く場所で「誰が使えるか」が変わります。公式ドキュメントの内容をまとめると、こうなっています。
| 種類 | 置き場所(パス) | 適用される範囲 |
|---|---|---|
| 個人用(Personal) | ~/.claude/skills/名前/SKILL.md | すべてのプロジェクト |
| プロジェクト用 | .claude/skills/名前/SKILL.md | そのプロジェクトだけ |
📝いちばん小さい SKILL.md
SKILL.md は2つの部分でできています。上の --- で囲まれた frontmatter(=先頭の設定欄)と、その下の本文(指示)です。公式の例をもとにした、最小のスキルがこちらです。
# --- ここから frontmatter(設定欄)--- --- description: コミット前の変更点を要約し、危なそうな所を指摘する。「何を変えた?」と聞かれたときに使う。 --- # --- ここから本文(Claudeへの指示)--- ## 現在の変更 !`git diff HEAD` ## 指示 上の変更を2〜3個の箇条書きで要約し、 気づいたリスク(抜けたエラー処理・直書きの値など)を一覧にしてください。
description はとても大事!Claude はこの説明文を読んで「このスキルを使うべきか」を判断します。だから「ユーザーが自然に言いそうな言葉」を入れておくのがコツです。※必須なのは
description だけ。他の項目は全部おまけ(任意)です。🚀作って呼び出す3ステップ
- フォルダを作る
mkdir -p ~/.claude/skills/summarize-changesでスキル用のフォルダを用意します。 - SKILL.md を書くそのフォルダの中に
SKILL.mdを作り、上の内容を保存します。フォルダ名がそのままコマンド名になります。 - 呼び出す「何を変えた?」と聞けば Claude が自動で発動。または
/summarize-changesと打って直接呼び出しもできます。
sequenceDiagram
participant U as あなた
participant C as Claude Code
participant S as スキル(SKILL.md)
U->>C: 「何を変えた?」と質問
C->>C: descriptionを見て該当スキルを判断
C->>S: SKILL.md を読み込む
S-->>C: 手順と現在のdiffを渡す
C->>U: 要約とリスク一覧を回答
description をもっと具体的に。逆に発動しすぎるときは disable-model-invocation: true を足すと「/名前で呼んだときだけ」動くようになります。もっと詳しく学びたい人は公式へ。フォルダ構成や応用パターンが満載です。
👉 公式ドキュメント:スキルで Claude を拡張する
3カスタム・スラッシュコマンド
「自分専用の /コマンド を作りたい!」——その願いは、ファイルを1つ置くだけでかないます。
.claude/commands/deploy.md というファイルでも .claude/skills/deploy/SKILL.md というスキルでも、どちらも /deploy という同じコマンドになります。昔ながらの .claude/commands/ も今まで通り使えます。🗂️ファイル名がコマンド名になる
仕組みはとてもシンプル。.claude/commands/ の中に「コマンド名.md」を置くだけ。拡張子 .md を除いたファイル名が、そのまま /名前 になります。
| 置いたファイル | 使えるコマンド |
|---|---|
.claude/commands/deploy.md | /deploy |
.claude/skills/deploy-staging/SKILL.md | /deploy-staging |
🎯引数を受け取る($ARGUMENTS)
コマンドに「材料」を渡したいときは $ARGUMENTS を使います。これは、コマンド名の後ろに打った言葉に置き換わる差し込み欄です。公式の例で見てみましょう。
--- name: fix-issue description: GitHubの課題を番号を指定して修正する disable-model-invocation: true --- GitHubの課題 $ARGUMENTS を、私たちのコーディング規約に従って修正してください。 1. 課題の説明を読む 2. 要件を理解する 3. 修正を実装する 4. テストを書く 5. コミットを作る
# 「123」が $ARGUMENTS に差し込まれる /fix-issue 123
/fix-issue 123 と打つと、Claude は「GitHubの課題 123 を…修正してください」という文を受け取ります。順番ごとに分けて使いたいときは $ARGUMENTS[0](=1つ目)や短縮形の $0 も使えます。$ARGUMENTS は、手紙の「○○様」の○○の部分。テンプレ(型)を1回作っておけば、宛名だけ変えて何度でも使い回せる——そんな便利さです。4Hooks(フック)でガードレールを作る
Hooks は、決まったタイミングで自動的にコマンドを実行する仕組みです。「ファイルを編集したら自動で整形」「危ないコマンドはブロック」など、Claude の動きに確実なルールを作れます。
⚙️どこに書く?どう見る?
Hooks は settings.json という設定ファイルの hooks ブロックに書きます。今どんな Hooks が設定されているかは、Claude Code の中で /hooks と打つと一覧で確認できます(このメニューは見るだけ=読み取り専用です)。
🛡️例:危ないコマンドをブロック
公式の例をもとにした「drop table を含むコマンドを止める」フックです。イベントが発火 → フックが判定 → ブロック、という流れになります。
#!/bin/bash INPUT=$(cat) COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command') # 「drop table」が含まれていたら止める if echo "$COMMAND" | grep -q "drop table"; then echo "ブロック: テーブル削除は禁止です" >&2 exit 2 # exit 2 = アクションをブロック fi exit 0 # exit 0 = 異議なし。通常通り進む
exit 0 なら「異議なし=そのまま進む」、exit 2 なら「ブロック=止める」。exit 2 のとき、stderr(=エラー出力)に書いた理由が Claude に伝わるので、Claude は別の方法に切り替えられます。📅主なイベント(発火するタイミング)
Hooks は「いつ動くか」をイベントで選びます。公式から代表的なものを抜き出しました。
| イベント名 | 発火するタイミング | 使い道の例 |
|---|---|---|
PreToolUse | ツールを使う前(ブロック可能) | 危険なコマンドを止める |
PostToolUse | ツールが成功した後 | 編集後に自動で整形する |
Notification | 入力や許可を待っているとき | デスクトップ通知を出す |
SessionStart | セッション開始・再開時 | 圧縮後にメモを再注入 |
PostToolUse に Edit|Write というマッチャー(=絞り込み条件)を付けて、ファイルを編集したときだけ Prettier(整形ツール)を走らせます。手作業ゼロでコードがきれいに整います。
flowchart TD
A["Claudeがツールを使おうとする"] --> B["対応するイベントが発火"]
B --> C{"マッチャーに一致?"}
C -->|"いいえ"| D["何もせず通常通り進む"]
C -->|"はい"| E["フック(スクリプト)が実行"]
E --> F{"終了コードは?"}
F -->|"exit 0"| G["そのまま進む"]
F -->|"exit 2"| H["ブロックして理由を伝える"]
イベントの全種類や JSON の書き方は公式が詳しいです。
👉 公式ドキュメント:hooks でアクションを自動化する
5MCP:外部ツールとつなぐ
MCP(=Model Context Protocol)は、Claude Code を外部のツールやデータにつなぐためのオープンな規格です。ひとことで言えば、Claude に「追加の道具」を持たせる仕組み。
🔧MCP でできること
GitHub と連携
「PR #456 をレビューして改善案を出して」など、コードレビューを直接お願いできます。
データベースを照会
「今月の総収益は?」と自然な言葉で聞くだけ。Claude が代わりに調べます。
ブラウザ・外部API
監視ツール・デザインツールなど、数百のサービスとつながります。
➕サーバーを追加する
MCP の「道具」はサーバーという形で追加します。公式の GitHub 連携の例を見てみましょう。
# GitHub のリモートMCPサーバーを追加する例 $ claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \ --header "Authorization: Bearer あなたのGitHubトークン" # 追加できたか確認 $ claude mcp list
/mcp でサーバーの状態を確認・認証できます。ファイルから設定を読み込ませたいときは --mcp-config フラグも使えます。接続範囲(スコープ)は3種類。local(このプロジェクトだけ・自分用)/project(チーム共有)/user(全プロジェクトで使える)です。
flowchart LR
U["あなたの指示"] --> C["Claude Code"]
C --> M["MCPサーバー(=追加の道具)"]
M --> G["GitHub"]
M --> D["データベース"]
M --> B["ブラウザ・外部API"]
G -->|"結果を返す"| C
D -->|"結果を返す"| C
サーバーの追加方法や認証の詳しい手順は公式へ。
👉 公式ドキュメント:MCP を使用して Claude Code をツールに接続する
6導入の入口:/plugin とマーケットプレイス
「自分でゼロから作るのは大変そう…」——大丈夫!便利なスキルや拡張は、すでに用意されたものをまとめて導入できます。
その入口が /plugin コマンドとマーケットプレイス(=拡張機能の置き場)です。たとえば公式が公開しているスキル集は、次のコマンドで導入できます。
# 公式スキルのマーケットプレイスを追加 /plugin marketplace add anthropics/skills
7安全の注意:強力だからこそ慎重に
拡張はとても強力です。だからこそ、使うときは「信頼できるものだけ」を心がけましょう。
.claude/skills/ に入ったスキルを使うときは、ワークスペースを信頼する前に中身を確認しましょう。allowed-tools に注意
スキルの allowed-tools は、許可なしで使えるツールを指定する欄。広い権限を与えるものは慎重に。
権限を味方にする
/permissions や /allowed-tools で、何を許可・拒否するか管理できます。Hooks はバイパスできない「絶対のルール」を作れます。
PreToolUse フックが「拒否(deny)」を返すと、--dangerously-skip-permissions のような権限をスキップするモードでも止められます。逆に、フックが「許可」を返しても、設定の拒否ルールは破れません。つまり「厳しくする方向は確実、ゆるくする方向は限定的」。安全側に倒れる設計になっているので安心です。