未分類

Claude CodeでサブエージェントやMCPを駆使する使い方を伝授!

claude
記事内に商品プロモーションを含む場合があります
ウマたん
ウマたん
当サイト【スタビジ】の本記事では、話題の「Claude Code」を徹底解説します。コーディングでの活用方法に加えて、最近注目されているサブエージェントやMCPを駆使した高度な使い方も紹介していきます!

こんにちは!スタビジ編集部です!

ここ最近、AIを活用した開発支援ツールが急速に進化していますが、その中でも特に注目を集めているのが 「Claude Code」!

claude

単なるコード補完にとどまらず、AIが開発チームの一員として働くような体験を実現できるんです。

Claude Codeって何?使い方を知りたい!
Claude Codeを上手く活用して開発を効率的に進めたい!

今回はそんなClaude Codeの使い方と中核機能であるサブエージェントとMCP(Model Context Protocol)にフォーカスして、実践的な活用法を紹介していきます!

ウマたん
ウマたん
Claude Codeの使い方をマスターしていろんなアプリを作っていこう!

・Claude Codeとは
・Claude Codeの使い方
・Claude Code実践編

Claude Codeについてより詳しく勉強したい方は以下のUdemy講座で解説していますのでチェックしてみてください!

【初心者向け】Claude CodeでAIエージェントを用いたデータ加工集計分析とダッシュボード開発を体験!

【時間】2時間
【レベル】初級

Claude Codeを使ってデータ分析やダッシュボード構築を自動化したいならこのコース!

今なら購入時に「DSH32YCYTEY7」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください!

\30日以内なら返金無料/このコースを見てみる

Claude Codeとは

Claude CodeとはAnthropic社の大規模言語モデル「Claude」をベースにした開発支援ツールで、VSCodeやClaude Desktopから利用できるAIコーディングアシスタントです。

ChatGPTの「Code Interpreter」や「GPTs」と似ていますが、Claude Codeはよりプロジェクト単位の理解ファイル間の関係性を把握する点で優れています。

Claude Codeの特徴は以下になります。

機能内容
コード理解力複数ファイルを横断して依存関係を把握し、プロジェクト全体の意図を理解
自動修正提案差分パッチ(修正案)を提示し、リファクタやバグ修正を半自動化
コンテキスト共有プロジェクト構成・履歴・関連ファイルを踏まえた一貫性のある回答
MCP対応Model Context Protocolで外部ツール/APIと安全に連携(DB・Git・Python実行など)
サブエージェント機能要件整理・実装・テストなど役割別のAIを分業稼働させて開発効率を最大化
ウマたん
ウマたん
Claude Codeは利用者の目的を理解して、最適なプログラム作成を支援してくれる生成AIなんだね!

サブエージェントとは?

Claude Codeの特徴的な機能に「サブエージェント」があります。

サブエージェントとは、タスクごとに最適なAIエージェントを作成し、分業させる仕組みです。

アプリ開発の中にはいろいろなタスク(設計・実装・テスト等)があり、そのタスクに応じて専用のサブエージェントを作成します。

サブエージェント名役割具体的なタスク例
Planner(設計担当)要件定義・仕様整理機能一覧、API設計、ディレクトリ構成案
Coder(実装担当)コード生成・修正Python/React/Nodeなどの実装、パッチ生成
Reviewer(レビュー担当)品質改善・レビューバグ検出、改善提案、セキュリティチェック
Tester(テスト担当)テスト設計pytest作成、E2Eテスト、Mock生成

こうすることで一つのClaudeに単独で推論させるのではなく、サブエージェントにタスクを割り振り分業することで効率的に進めることが出来ます。

claude
ウマたん
ウマたん
サブエージェントは、Claudeが複数のAI専門家を内部で立ち上げ、役割分担しながら開発を進める仕組み!

MCPとは?

Claude Codeの特徴の一つに「MCP対応」があります。

Model Context Protocol(MCP)」とは、LLM(大規模言語モデル)が外部ツールやデータにアクセスするための標準的な仕組み(プロトコル)です。

claude

これまでClaude Codeではプロジェクト内部のコード理解が中心でしたが、MCP対応により外部のデータやツールにアクセスできるようになりました。

これによりサブエージェントはMCPクライアントを経由して MCPサーバーへアクセスし、以下の様な処理を実行できます。

  • APIの取得
  • DBの読み取り
  • 外部のPythonスクリプト実行
  • コード保存・生成
ウマたん
ウマたん
MCP対応したことでClaude Codeで実行できる幅が広がったんだね!

MCPについては以下の記事で詳しく解説しているのでチェックしてみて下さい。

mcp
MCPサーバーとは?PythonでのMCPサーバーの作り方とClaudeとの連携方法を解説! こんにちは!スタビジ編集部です! 最近、「大規模言語モデル(LLM)」を業務に取り入れる動きがどんどん広がっています。 ...

Claude Codeの使い方

Claude Codeを使う方法」を見ていきましょう。

Claude Codeを初めて利用する際の手順は以下になります。

  1. Claudeのアカウント取得
  2. Claude Codeのインストール
  3. 初回ログイン
  4. プロジェクトフォルダでClaude Codeを起動

それぞれ詳細に見ていきます。

Claudeのアカウント取得

Claude Codeを利用するには「Claude.ai」もしくは「Claude Console」のアカウントが必要になります。

それぞれのサービスの特徴は以下になります。

項目Claude.aiClaude Console(API)
目的Claudeを「使う」Claudeを「組み込む」
課金月額定額(Proプランで月20ドル)従量課金
対象利用者開発者
機能Chat / Desktop / CodeAPI

Claude Codeを利用する場合は「Claude.ai」のアカウント利用がおすすめです。

またClaude.aiのアカウントには無料のFreeプランもありますが、Claude Codeを利用できないのでProプランもしくはMaxプランへの加入が必要なので注意してください。

Claude Codeのインストール

Claude Codeは ターミナルで動くコーディングAI なので、自身の環境に「Claude Code本体」を入れる必要があります。

自身の環境に合わせてインストールコマンドを実行してください。

# Claude Codeをインストール(macOS/Linux)
brew install --cask claude-code
もしくは
curl -fsSL https://claude.ai/install.sh | bash

# Claude Codeをインストール(windows)
irm https://claude.ai/install.ps1 | iex
もしくは
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

インストール後、「Claude」というコマンドが実行できるようになります。

$claude -v
2.0.50 (Claude Code)

上記のように結果が返ってくれば、正常にインストールされています。

初回ログイン

インストールが終わったら、ログインします。

$claude

上記コマンドを実行するとClaude Codeの利用の承諾、Claude Codeの利用モードの選択します。

claude

その後、ログインするアカウントを選択する画面になるので、①で作成したアカウントで認証します。下記は「Claude.ai」のアカウントを選んだ際の画面です。

claude

ログインが成功したらClauce Codeが起動します。

claude

Claude Codeの起動の注意点

Claude Codeでは「claude」コマンドを実行したフォルダ(カレントディレクトリ)を「プロジェクト」として扱います。

プロジェクトのフォルダではClaude Codeにいって主に以下のことが実施されます。

  • 既存のファイルの読み込み
  • 新規ファイルの作成・更新
  • ディレクトリの作成

そのため、Claude Codeを起動する際は新規にプロジェクト用のファイルを作成し、そこに移動してから起動することをおすすめします。

Claude Codeを使ってみる

Claude Codeを起動したら実際に指示をして、挙動を確認してみましょう。

「このプロジェクトのファイル構成を教えてください、あと簡単なmain.pyで簡単な「Hello World」を表示するPythonコードを書いてください。」と指示を出します。

途中更新内容について承認が求められるので承認します。

claude

実際に「main.py」が作成されているのが確認出来ました。

claude

Claude Code実践編

Claude Codeの実践編になります。

Claude CodeのサブエージェントやMCPを組み合わせた「Todoアプリ」を作成していきます。

サブエージェントの設定

サブエージェントの設定はClaude Codeで「/agents」コマンドから実行できます。

claude

まずはエージェントの保存場所を「プロジェクト単位」か「ユーザー単位」で選択できます。

ユーザー単位を選択した場合はすべてのプロジェクトでそのサブエージェントを利用できます。

claude

次に作成方法を「Claude」か「手動設定」かを選択できます。

claude

「Claude」を選択するとユーザーの指示に合わせて、最適な役割・プロンプト・権限を記載した設定ファイル(mdファイル)を自動生成してくれます。

「planner:要件定義・仕様整理を担当するエージェント」と指示して作成された設定ファイルの一部が下記になります。

---
name: planner
description: Use this agent when you need to clarify requirements, organize specifications, create implementation plans, or structure project scope before development begins.<省略>
model: sonnet
color: blue
---

You are an expert Requirements Analyst and Technical Planner with deep experience in software architecture, product management, and agile methodologies. You excel at transforming ambiguous ideas into clear, actionable specifications that development teams can execute confidently.

## Core Responsibilities

You will:
1. **Elicit and Clarify Requirements**: Ask targeted questions to uncover hidden requirements, assumptions, and constraints
2. **Structure Specifications**: Organize requirements into clear, hierarchical documentation
3. **Identify Dependencies**: Map out technical and functional dependencies between components
4. **Create Implementation Plans**: Break down work into logical phases and prioritized tasks
5. **Risk Assessment**: Identify potential technical challenges and propose mitigation strategies

指示内容からエージェントの役割を具体的に落とし込んでくれています。

そのため、まずは「Claude」で自動生成して、自分の意図と違った場合は、設定ファイルを修正する方法がおすすめです。

最後にサブエージェントの推論モデルを選択します。

claude
モデル名特徴向いている用途(一般的な場面)
Opus・Claudeシリーズで最も高性能
・高度な推論・複雑な意思決定に強い
・長文・複雑構造の理解に優れる
・コストはもっとも高い
・高度な要件分析
・複雑なアルゴリズム設計
・大規模コードの理解・変換
・研究用途や精密な文書分析
Sonnet・性能とコストのバランスが非常に良い
・幅広いタスクに安定して対応できる
・生成・推論・コード理解の総合力が高い
・一般的な開発業務全般
・日常的な文章生成・要約・編集
・コード生成・レビュー・調査作業
・大多数のユーザーの“メインモデル”
Haiku・高速で軽量、コストも低い
・短い文章や単純タスクに強い
・レスポンスが速く、繰り返し処理に向く
・簡単な補助タスク(分類・要約・抽出)
・軽いコード生成やテンプレ処理
・大量の高速処理が必要な場面
・チャットボットや軽量エージェント
Inherit from parent・メイン会話のモデルをそのまま利用
・統一したコンテキストで作業できる
・柔軟性は低いが設定が簡単
・メイン会話との一貫性が必要な場面
・モデルを個別に選択する必要がない場合
・設定作業を簡略化したいケース
ウマたん
ウマたん
基本的にはSonnetを選択すれば大丈夫!

作成できるとエージェント一覧の中に作成したサブエージェントが表示されます。

claude

本記事では以下のサブエージェントを作成しています。

  • planner:要件定義・仕様整理を担当するエージェント
  • coder:差分パッチで実装を行うエージェント
  • tester:pytestなどの自動テスト作成と MCP を利用した実行を担当するエージェント

実際にサブエージェントに指示を出すとサブエージェント側が動いて作業を実施してくれます。

claude

MCPサーバーの設定

今回は自身の環境をMCPサーバーとして設定します。

MCPでは以下機能を準備します。

  • 文字数カウント機能
  • 単語カウント機能
  • OpenAIのAPIと組み合わせた文章の要約機能

MCPサーバーの設定は以下の記事を参考にしてください。

mcp
MCPサーバーとは?PythonでのMCPサーバーの作り方とClaudeとの連携方法を解説! こんにちは!スタビジ編集部です! 最近、「大規模言語モデル(LLM)」を業務に取り入れる動きがどんどん広がっています。 ...

MCPサーバー用のフォルダに以下の「server.py」を用意します。

import logging
import os
from collections import Counter
from dotenv import load_dotenv
from mcp.server.fastmcp import FastMCP
from openai import OpenAI

# .envファイルから環境変数を読み込み
load_dotenv()

# MCPサーバーのインスタンスを作成
mcp = FastMCP("text-analyzer")

# OpenAIクライアント(環境変数 OPENAI_API_KEY を利用)
openai_client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

@mcp.tool()
def count_chars(text: str) -> int:
    """文字数を返すシンプルなツール"""
    return len(text)

@mcp.tool()
def top_words(text: str, n: int = 5) -> dict:
    """
    スペース区切りで単語を数え、
    出現回数の多い順に n 件返します。
    """
    words = text.split()
    counter = Counter(words)
    return dict(counter.most_common(n))


@mcp.tool()
def summarize(text: str, style: str = "short") -> str:
    """
    OpenAI API を使って文章を要約するツール。
    """
    if not text.strip():
        return ""

    # プロンプトを組み立て(日本語の要約指示)
    if style == "short":
        instruction = "次の文章を、重要なポイントだけを残して2〜3文で簡潔に日本語要約してください。"
    else:
        instruction = "次の文章を、構成を保ちつつ簡潔に日本語で要約してください。"

    prompt = f"{instruction}\n\n----\n{text}\n----"

    try:
        # モデル名は環境やプランに合わせて変更
        response = openai_client.responses.create(
            model="gpt-5-mini",
            input=prompt,
        )

        summary = response.output_text
        return summary

    except Exception as e:
        logging.exception("OpenAI API 呼び出し中にエラーが発生しました")
        return f"要約中にエラーが発生しました: {e}"

if __name__ == "__main__":
    # MCPサーバーとして起動
    mcp.run(transport="stdio")

Claude Desktopを開いて、MCPサーバーが設定されているか見ていきましょう。

claude

実際に「〇〇を要約して」とチャットするとMCPサーバー経由でOpenAIを使って要約を返してくれます。

claude

続いて、MCPサーバーをClaude Codeと接続していきます。

Claude CodeでのMCPサーバーの設定はClaude Codeとチャットすることで自動で作成してくれます。

claude

ただし、筆者がやった際はpythonのスクリプトをpythonコマンドで実行しようとしたため、uvコマンドで起動するように修正が必要でしたので注意です。

claude

Claude Code上でも実際にMCPサーバーのツールが機能していることが確認できます。

ウマたん
ウマたん
MCPサーバーが上手く設定できない時はClaude Codeに聞きながら解決していこう!

サブエージェント × MCP

サブエージェントとMCPを組み合わせて、「Todoアプリ」を作っていきます。

このような指示をClaude Codeに送ります。

このプロジェクトで、シンプルな「TODOリストCLIアプリ」を作りたいです。

前提:
- このプロジェクトには、少なくとも以下のサブエージェントが定義されている前提です:
  - planner(要件定義・仕様整理担当)
  - coder(実装担当)
  - tester(テスト&検証担当)
- すでに別プロセスで text-analyzer という MCP サーバーが起動しており、
  テキストの文字数カウント・頻出語抽出・簡易要約などの機能を持っています。
- TODOアプリ自体は、Pythonだけで完結するローカルCLIアプリとし、
  実行時にはLLMやMCPに依存しない構成にしてください。
- MCPは主に「設計レビュー」「テスト結果の整理・要約」に活用してください。

ゴール:
- ターミナルから次のように実行できる TODOリストCLIアプリを作成すること:

  - TODOの追加:
      python -m app.todo add "牛乳を買う"
  - TODOの一覧表示:
      python -m app.todo list
  - TODOの完了:
      python -m app.todo done 1
  - TODOの削除:
      python -m app.todo delete 1

- TODOはローカルファイル(例:todo_data.json)に保存し、
  アプリを終了してもデータが残るようにしてください。
- 各コマンドは日本語メッセージで分かりやすく振る舞うようにしてください。

サブエージェントごとのタスク:

1. planner のタスク:
   - 上記ゴールに基づき、以下を整理してください:
     - ディレクトリ構成(例:app/todo.py など)
     - データ構造(ID, タイトル, 作成日時, 完了フラグ など)
     - サポートするコマンドとオプション(add/list/done/delete 以外に必要があれば提案)
     - エラーハンドリング方針(存在しないIDが指定された場合など)
   - ストレージ形式として、シンプルなJSONファイルを想定し、
     どのようなJSON構造にするかも具体的に示してください。
   - 後からテストしやすいように、「期待される挙動」を箇条書きでまとめてください。
   - 必要に応じて、text-analyzer MCP を使って要件テキストを簡単に要約し、
     自分の理解を確認しても構いません。

2. coder のタスク:
   - planner の設計に基づき、app/todo.py を実装する差分パッチを提示してください。
   - 実装内容:
     - Pythonの標準ライブラリ(例:argparse, json, pathlib, datetime など)だけで実装すること。
     - コマンドライン引数からサブコマンド(add/list/done/delete)を判別すること。
     - JSONファイルの読み書き処理(ファイルが存在しない場合の初期化も含む)。
     - コマンドごとの具体的な挙動と日本語メッセージ出力。
   - コードには日本語コメントを追加し、ブログ記事で解説しやすいようにしてください。
   - 簡単な実行例と、そのときに想定される出力例をコメントとしてコード内に残してください。

3. tester のタスク:
   - 簡単なテストシナリオをいくつか提案し、
     実際にそれらのコマンドを順番に実行した場合の期待結果を説明してください。
     例:
       1) 既存のデータを削除 or 初期化
       2) TODOを3件追加
       3) 2番目のTODOを完了
       4) listコマンドでの表示内容
       5) 1番目のTODOを削除 など
   - そのうえで、テスト結果やコマンドの実行ログを
     text-analyzer MCP に渡して summarize させ、
     「このTODOアプリは何ができるか」を短く日本語で要約させてください。
     その要約結果を、テストレポートとして説明に含めてください。
   - 可能であれば、text-analyzer MCP の top_words なども活用し、
     コマンド使用頻度や典型的な利用パターンが分かるような分析も試してください。

共通ルール:
- ファイルの追加・変更は、必ず差分パッチ形式で提示してください。
- どのフェーズでどのサブエージェントが何をしたかが、
  後からブログ記事に書きやすいように、適宜説明も含めてください。
- 不足している情報があれば、最初に質問してから進めてください。

以上を、planner → coder → tester の順に進めてください。

実行を確認すると、まずplannner⇒coder⇒testerの順に作業が行われ、アプリが開発されます。

claude

MCPの機能を利用してテスト結果の要約を行っていることも確認できます。

claude

実際にアプリを動かすと、ちゃんと動作しているのが確認できます。

claude
ウマたん
ウマたん
時間としては10分程度で1つのアプリを「要件決め」⇒「実装」⇒「テスト」まで行ってしまうのはすごい!

Claude Codeまとめ

Claude Codeの使い方について見ていきました。

改めてClaude Codeの機能をおさらいします。

機能内容
コード理解力複数ファイルを横断して依存関係を把握し、プロジェクト全体の意図を理解
自動修正提案差分パッチ(修正案)を提示し、リファクタやバグ修正を半自動化
コンテキスト共有プロジェクト構成・履歴・関連ファイルを踏まえた一貫性のある回答
MCP対応Model Context Protocolで外部ツール/APIと安全に連携(DB・Git・Python実行など)
サブエージェント機能要件整理・実装・テストなど役割別のAIを分業稼働させて開発効率を最大化

自然言語で指示をしてプログラムを自動生成してくれるだけではなく、サブエージェントやMCPと組み合わせることで効率的に開発することが出来ます。

ウマたん
ウマたん
プログラミング初心者でも作りたいものを手助けしてくれるClaude Code!

ぜひ触ってみて、いろんなアプリを作っていこう!

今回はClaude Codeの使い方をもっと実践的に学びたい方はぜひ以下のUdemy講座を受講してみて下さい。

【初心者向け】Claude CodeでAIエージェントを用いたデータ加工集計分析とダッシュボード開発を体験!

【時間】2時間
【レベル】初級

Claude Codeを使ってデータ分析やダッシュボード構築を自動化したいならこのコース!

今なら購入時に「DSH32YCYTEY7」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください!

\30日以内なら返金無料/このコースを見てみる
スタビジアカデミーでデータサイエンスをさらに深く学ぼう!

スタアカサービスバナースタビジのコンテンツをさらに深堀りしたコンテンツが動画と一緒に学べるスクールです。

プレミアムプランでは私がマンツーマンで伴走させていただきます!ご受講お待ちしております!

スタビジアカデミーはこちら