はじめに
Claudeには複数のカスタマイズ・拡張機能があります。それぞれの役割や違いが分かりにくかったので、自分の理解を整理するために記事にまとめました。
Claude Codeを触っていると、
- CLAUDE.mdって結局どこまで効くの?
- スラッシュコマンドとスキルの違いは?
- サブエージェントとMCPって何が役割分担?
- Web版Claudeと何が違うの?
と、全体像がつかめず混乱しがちです。
私自身も「何となく使えているけど、正しい使い分けが分からない」状態が続いていました。
そこでこの記事では、Claudeの以下の5つの機能について、
- それぞれの役割
- どこで定義され、いつ読み込まれるのか
- どう組み合わせると実務で使いやすいか
を、関係図と具体例を交えて整理します。
この記事では、各機能の概要と関係性を説明します。個々の設定方法や使い方は公式ドキュメントや他の解説サイトを参照してください。
5つの機能の概要
| 機能 | 一言でいうと | 読み込みタイミング |
|---|---|---|
| CLAUDE.md | プロジェクトの常識 | 常に |
| スラッシュコマンド | 定型プロンプトのショートカット | コマンド実行時 |
| サブエージェント | 専門家への作業依頼 | タスク実行時 |
| Agent Skills(以下 スキル) | 作業のマニュアル | 必要に応じて |
| MCP | 外部ツールとの接続口 | 上記から呼び出される |
関係図(Claude Code)
各機能が全て存在する場合、こういう使い方が多いだろうと思う関係図です。各機能はあってもなくてもいいですし、必ずこの流れで使う必要もありません。
※ 図では分かりやすさのためCLAUDE.mdの中に配置していますが、実際には各機能は独立しており、CLAUDE.mdはそれらに共通の文脈を与える役割を担います。
ポイント:
- CLAUDE.mdがプロジェクトの「土台」となり、その文脈の中でスラッシュコマンド・サブエージェント・スキルが動作します
- これらの機能は必要に応じてMCPを通じて外部ツールと連携します
- 基本的に独立した機能ですが、スラッシュコマンド・サブエージェント・スキルは「プロジェクトの常識」の影響を受けて動作することが多いです
- MCPは外部と連携するためのツール的な機能なので他とは切り離して表現しています
関係図(Web版Claude、Claude Desktop)
Web版ClaudeとClaude Desktopではサブエージェントとスラッシュコマンド機能がないので、関係図は簡略になります。
※補足
Web版Claudeでは .claude/skills/ に配置したローカルのスキルは使用できません。
Web版で利用できる「スキル」は、Anthropicが提供する組み込みスキル、または 設定 > 機能 からアップロードしたカスタムスキルに限られます。
またWeb版Claudeはローカル上のもMCPは使用できませんが、リモートMCPサーバーなら使用できます。
煩雑になるので上記の図では区別して表現していません。
各機能の説明
CLAUDE.md - プロジェクトの常識
プロジェクト固有の文脈やルールをClaude Codeに常に把握させるためのファイルです。
Claude Codeの中で「/init」コマンドを実行することで、プロジェクト全体の構成を読み込んでCLAUDE.mdというファイル名で作ってくれます。自分の手で修正することができます。
配置場所: プロジェクトルート(またはユーザースコープで ~/.claude/CLAUDE.md)
使用例:
# ○○システム
## 技術スタック
- C#.NET / TypeScript / SQL Server
- Visual Studio 2022で開発
## コーディング規約
- CodingRule.mdを参照する
- コメントは日本語で記述
CLAUDE.mdに書かれた内容は、Claude Codeが常に参照します。他の機能(スラッシュコマンド、サブエージェント、スキル)が動作する際も、この「常識」がベースになります。
スラッシュコマンド - 定型プロンプトのショートカット
よく使うプロンプトをコマンド化して、簡単に呼び出せるようにする機能です。
配置場所:
- ユーザースコープ:
~/.claude/commands/ - プロジェクトスコープ:
.claude/commands/
使用例: .claude/commands/worktime.md
redmineのMCPで以下のメンバーの今日の作業工数を調べてください。
氏名の後の数字はRedmineユーザのIDです
メンバーA 10
メンバーB 12
メンバーC 34
実行方法:
/worktime
これだけで、毎回同じ指示を入力する手間が省けます。
サブエージェント - 専門家への作業依頼
複雑なタスクを専門の子エージェントに委譲する機能です。複数のサブエージェントを並列で実行することもできます。
「コードレビューエージェントを使ってレビューして」のように使います。
配置場所:
- ユーザースコープ:
~/.claude/agents/ - プロジェクトスコープ:
.claude/agents/
使用例:
コードレビューを依頼する際、例えば以下のような専門サブエージェントを作って、並列で作業を依頼できます:
| サブエージェント | 役割 |
|---|---|
| セキュリティチェッカー | 脆弱性やセキュリティリスクを検出 |
| パフォーマンスレビュアー | 処理速度やメモリ効率を分析 |
| リファクタリングアドバイザー | コード品質や可読性を改善提案 |
各サブエージェントは独立したコンテキストウィンドウを持つため、互いに干渉せず並列で作業できます。結果を待たずに複数のタスクを同時実行できるため、大規模な作業を効率的に処理できます。
スキル - 作業のマニュアル
特定タスクの実行手順やベストプラクティスをパッケージ化したものです。
作業に応じてClaudeが必要なスキルを判断し使用します。
役割の違い:
- スラッシュコマンド: 「何をするか」 を指示するプロンプト
- スキル: 「どうやるか」 を記述したマニュアル
使用例: Redmine工数追跡スキル
---
name: redmine-time-tracking
description: |
Redmineからチームメンバーの作業工数を取得・集計・分析するスキル。
---
# Redmine工数追跡スキル
## 工数データの取得方法
path: /time_entries.json
params: {
"user_id": <ユーザーID>,
"from": "YYYY-MM-DD",
"to": "YYYY-MM-DD"
}
## 注意点
- user_idは個別に呼び出すこと(複数指定は非推奨)
- 100件以上はページングが必要
スラッシュコマンドが「工数を調べて」と指示し、スキルが「こうやって調べる」という手順を提供する関係です。
スラッシュコマンドは指示する度にClaudeがどのように処理するのかを考えて実行します。そのため、指示する度に出力結果が微妙に異なる可能性があります。
その点、スキルは手順が事前に定義されているため、処理の流れや判断基準が安定します。その結果、スラッシュコマンド単体に比べて 出力のブレが小さくなります。
MCP (Model Context Protocol) - 外部ツール連携
外部サービスやツールへの接続を提供する仕組みです。
設定場所: claude_desktop_config.json、.mcp.json など
例:
- Redmine(チケット管理)
- GitHub(ソースコード管理)
- データベース(SQL Server等)
- Obsidian(ナレッジベース)
- Google Drive(ドキュメント)
MCPは他の機能から呼び出される「インフラ」的な位置づけです。スラッシュコマンド、スキル、サブエージェントがMCPを通じて外部ツールを操作します。もちろん「Redmine MCPを使ってメンバーの作業工数調べて」のように依頼しても使えます。
MCPの設定については別記事を書いています
Claude DesktopとClaude CodeのMCPサーバー設定方法
Claude Codeでの定義スコープ
各機能はユーザー(全プロジェクト共通)またはプロジェクトのレベルで定義できます。
| 機能 | ユーザー | プロジェクト |
|---|---|---|
| CLAUDE.md | △(可能だが基本はプロジェクト) | ✓ |
| スラッシュコマンド | ✓ | ✓ |
| サブエージェント | ✓ | ✓ |
| スキル | ✓ | ✓ |
| MCP | ✓ | ✓ |
重要: ユーザーレベルで定義した機能も、実行時はCLAUDE.mdの文脈の影響を受けます。
例えば、ユーザーレベルで定義した /worktime コマンドを実行しても、プロジェクトAのCLAUDE.mdに「チームメンバー: メンバーE、メンバーF」と書いてあれば、そのメンバーの工数を調べます。
使い分けガイド
| やりたいこと | 使う機能 |
|---|---|
| プロジェクトのルールを常に守らせたい | CLAUDE.md |
| 毎回同じ指示を簡単に実行したい | スラッシュコマンド |
| 大きなタスクを並列処理したい | サブエージェント |
| 複雑な作業手順を標準化したい | スキル |
| 外部サービスと連携したい | MCP |
まとめ
| 機能 | 役割 | 人間に例えると |
|---|---|---|
| CLAUDE.md | 常識 | 入社時のオリエンテーション |
| スラッシュコマンド | ショートカット | よく使うメールのテンプレート |
| サブエージェント | 委譲 | チームメンバーへの作業振り分け |
| スキル | マニュアル | 業務手順書 |
| MCP | ツール接続 | 社内システムのアカウント |
(※ Web版Claudeでは、スキル(SKILL.md)およびローカルMCPは使用できません。)
これらの機能を適切に組み合わせることで、Claude Codeをより効率的に活用できます。
記事の中で例として挙げている作業工数を調べる程度のことであれば、どの機能を使っても問題ありません。
もっと大きく複雑な処理の場合、全体的な指示をサブエージェントで行い、細かな作業の手順はスキルに定義して使用。定型の指示はスラッシュコマンドで行う。必要に応じてMCPで外部ツールも使用、というイメージかなと思います。
この記事が何かお役に立つことがあれば幸いです。