Claude Code2026年4月更新

Claude Code MCPの使い方|Claude Code自体をMCPサーバーとして動かす「エージェントの中のエージェント」構成ガイド

2026/04/24
Claude Code MCPの使い方|Claude Code自体をMCPサーバーとして動かす「エージェントの中のエージェント」構成ガイド

この記事のポイント

Claude Code自体をMCPサーバーとして公開し、Claude DesktopやCursorから呼び出す「エージェントの中のエージェント」構成を、公式claude mcp serveとサードパーティ@steipete/claude-code-mcpの比較、セットアップ手順、セキュリティ注意点まで実務目線で整理します。

Claude Code を MCP サーバーとして動かす方法は大きく2通りあり、公式の claude mcp serve コマンドを使うか、サードパーティの @steipete/claude-code-mcp パッケージを使うかで設定も使い勝手も変わります。本記事では、Claude Desktop や Cursor から Claude Code を呼び出す「エージェントの中のエージェント」構成について、両アプローチの違い・セットアップ手順・セキュリティ注意点を実務目線で整理します。

この記事でわかること

  • Claude Code を MCP サーバーとして動かす2通りのアプローチの違い
  • 公式 claude mcp serve / サードパーティ @steipete/claude-code-mcp の具体的セットアップ手順
  • Claude Desktop・Cursor・Windsurf など各クライアントからの接続方法
  • 「エージェントの中のエージェント」構成が効く実務ユースケース
  • --dangerously-skip-permissions を安全に扱うためのセキュリティ運用ポイント
  • よくあるトラブル(spawn claude ENOENT、コンテキスト超過、Windows 非対応 等)の対処

この記事は、Claude Max / Pro プランを契約していて、Claude Code を単体ツール以上に使い倒したい開発者・AIエンジニアに向けた実務ガイドです。

Claude CodeをMCPサーバーとして動かすとは

Claude Code は通常、他の MCP サーバー(GitHub MCP や Postgres MCP など)を呼び出す「クライアント」として動きますが、claude mcp serve コマンドを使うと、Claude Code 自身が MCP サーバーとして振る舞い、他の MCP クライアントから呼び出される側になれます。

MCP(Model Context Protocol)は Anthropic が 2024 年 11 月に公開したオープンプロトコルで、AI と外部ツール・データソース間の標準通信仕様です。この仕様により、Claude Desktop や Cursor、Windsurf、Cline といった MCP 対応クライアントから、Claude Code が持つ Read / Write / Edit / Bash / GrepTool 等の強力な開発ツールを呼び出せます。

つまり、親エージェント(Claude Desktop など)→ MCP 接続 → 子エージェント(Claude Code)→ さらにその配下の MCP サーバー(GitHub / Postgres 等) という多層構造を作れるのが、この記事で扱う「エージェントの中のエージェント(agent in your agent)」パターンです。

Model Context Protocolの基本構成図

出典: Model Context Protocol 公式

なぜClaude Code自体をMCPサーバーとして動かすのか

結論から言うと、「GUI チャットや別の AI IDE から、Claude Code の高精度なファイル操作・多段編集・Git 操作を裏で走らせたい」ときに効きます。

主な理由は次の 4 点です。

1. Cursor や Windsurf の組み込みエージェントが苦手な操作を委譲できる

Cursor の Composer や Windsurf の Cascade は、ワークスペース内の一般的な編集は得意ですが、複数ファイルにまたがる複雑なリファクタリング、ワークスペース外のファイル参照、長時間のバッチ処理などは詰まりがちです。こうした重い作業を MCP 経由で Claude Code に丸投げすることで、安定度が上がります。

2. Claude Desktop を GUI ハブにできる

非エンジニアや、普段 CLI を触らないメンバーでも、Claude Desktop の GUI から「このフォルダのコードを直して」と自然言語で指示できます。裏側で Claude Code がファイル編集・テスト実行・Git コミットまで実行する運用が作れます。

3. Claude Max プランの定額枠でコストを抑えられる

Cursor や他の AI IDE は API 従量課金が中心で、長時間のエージェント実行はコストが積み上がります。Claude Code を MCP 経由で呼ぶ運用にすれば、Claude Max の定額枠内で多くの処理を完結させる設計が可能です(※ 実際の課金境界は契約プランと利用状況によるため、公式料金ページでの確認が必須)。

4. 多段エージェント協調のビルディングブロックになる

「GitHub MCP で PR 情報を取得 → Claude Code MCP で diff を解析して修正 → テスト MCP で検証」といった分業型のエージェントパイプラインを、MCP という共通インターフェースだけで組めます。

2つのアプローチ: 公式 vs サードパーティ

Claude Code を MCP サーバー化する手段は大きく 2 つあります。どちらを選ぶかで、提供されるツールの粒度・セッション管理・セキュリティ設定が変わります。

比較項目

公式 claude mcp serve

サードパーティ @steipete/claude-code-mcp

提供元

Anthropic(Claude Code 本体機能)

Peter Steinberger(MIT ライセンスの npm パッケージ)

起動コマンド

claude mcp serve

npx -y @steipete/claude-code-mcp@latest

公開されるツール

Claude Code 内蔵ツール一式(Read / Write / Edit / Bash / GrepTool / GlobTool / dispatch_agent 等)

claude_code 1 つのみ(promptoptions.tools を受け取る統合ツール)

パーミッション

通常の Claude Code と同じく承認プロンプトが走る

内部で --dangerously-skip-permissions を常時使用(確認なしで実行)

セッション管理

Claude Code 本体のセッションに準ずる

基本はワンショット実行(呼び出しごとに新インスタンス起動)

導入ハードル

Claude Code が入っていれば即使える

npm / npx 環境と、初回の --dangerously-skip-permissions 同意が必要

追加料金

なし(Claude Code のプラン課金のみ)

なし(OSS)。Claude Code 本体の課金は別途

向く用途

Claude Desktop・Cursor 等から「Claude Code の全ツールを安全に」呼びたい

Cursor・Windsurf 等から「複雑な一括タスクを Claude Code に丸投げ」したい

結論としては、初めて試す場合や業務で扱う場合はまず公式 claude mcp serve から始めるのが安全です。 より積極的に「Claude Code に完全自律で動いてほしい」というケースでは @steipete/claude-code-mcp を検討します。

コミュニティには他にも @leo000001/claude-code-mcp(旧 xihuai18/claude-code-mcp、Claude Agent SDK をラップしセッション継続に対応)、@kunihiros/claude-code-mcpexplain_code / review_code / fix_code など機能別ツールを提供)といった派生実装もあります。セッション継続や機能分割が欲しい場合はこれらも選択肢になります。

steipete/claude-code-mcp GitHubリポジトリ

出典: steipete/claude-code-mcp GitHub

セットアップ手順①: 公式 claude mcp serve を使う

公式アプローチは、Claude Code 本体のサブコマンドを起動するだけで MCP サーバーになります。追加インストールは不要です。

前提条件

  • Node.js 20 以上
  • Claude Code がインストール済み(claude --version で確認)
  • Claude Desktop / Cursor / Windsurf いずれかの MCP 対応クライアント

手順 1: Claude Code の PATH を確認する

Claude Desktop などから呼び出す際に PATH が解決されないケースがあるため、事前にフルパスを取得します。

which claude
# 例: /Users/username/.local/bin/claude

手順 2: Claude Desktop の設定ファイルを編集する

macOS では ~/Library/Application Support/Claude/claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "claude-code": {
      "type": "stdio",
      "command": "/Users/username/.local/bin/claude",
      "args": ["mcp", "serve"],
      "env": {}
    }
  }
}

ポイント: commandwhich claude の結果をそのまま入れるのが安全です。単に "claude" と書くと、GUI アプリから起動されたプロセスの PATH にエントリが無く、spawn claude ENOENT エラーが発生します。

手順 3: Claude Desktop を再起動し、接続を確認する

Claude Desktop を完全終了してから再起動し、MCP アイコンをクリックして claude-code が緑ランプで接続されていれば成功です。チャット欄で「Read the README.md in /tmp」などと指示すると、Claude Code 経由でファイル読み取りが走ります。

手順 4(任意): 入れ子の親エージェント構成にする

Claude Code 本体から、さらに子の Claude Code を MCP サーバーとして呼ぶこともできます。

claude mcp add claude-sub-agent -- claude mcp serve

長時間のバッチ処理や、コンテキスト分離が必要なタスクを子プロセスに委譲する構成です。

セットアップ手順②: @steipete/claude-code-mcp を使う

サードパーティ版は「Claude Code を 1 つの強力なツールとして扱える」のが特徴です。Cursor や Windsurf からの利用例が多く、ドキュメントも整理されています。

前提条件

  • Node.js 20 以上
  • Claude Code がインストール済み
  • 一度だけ claude --dangerously-skip-permissions を手動で実行し、利用規約に同意しておく(これを忘れると MCP 経由の呼び出しが全て失敗します)

手順 1: @steipete/claude-code-mcp を MCP クライアントに登録する

Cursor の場合は ~/.cursor/mcp.json、Claude Desktop の場合は claude_desktop_config.json、Windsurf の場合は ~/.codeium/windsurf/mcp_config.json に以下を追加します。

{
  "mcpServers": {
    "claude-code-mcp": {
      "command": "npx",
      "args": ["-y", "@steipete/claude-code-mcp@latest"],
      "env": {
        "MCP_CLAUDE_DEBUG": "false",
        "MCP_HEARTBEAT_INTERVAL_MS": "15000"
      }
    }
  }
}

手順 2: 必要に応じて環境変数を調整する

環境変数

用途

CLAUDE_CLI_NAME

実行する Claude Code バイナリ名または絶対パスを上書き

MCP_CLAUDE_DEBUG

true で詳細ログ出力(通常は false 推奨。true にすると JSON パースエラーが起きる報告あり)

MCP_HEARTBEAT_INTERVAL_MS

ハートビート間隔(ミリ秒)。長時間タスク用に調整

MCP_EXECUTION_TIMEOUT_MS

実行タイムアウト。複雑な作業には長めの値を設定

手順 3: クライアントを再起動して動作確認

Cursor のチャットで claude_code ツールが MCP ツール一覧に出ていれば登録成功です。「このフォルダの TypeScript を全部 Zod に移行して」のような、Cursor 単体だと重い一括タスクを投げる用途に向きます。

手順 4(任意): Windows で動かす場合

Windows ネイティブでは npx の挙動の都合で、commandcmd に、args の先頭に /c npx を加える必要があります。

{
  "command": "cmd",
  "args": ["/c", "npx", "-y", "@steipete/claude-code-mcp@latest"]
}

ただし、Windows ネイティブでの動作報告は不安定で、公式 README では WSL 2 の利用が推奨されています。

エージェント・イン・エージェント構成の実務パターン

Claude Code を MCP サーバー化したあとの運用パターンを、具体的なユースケース別に整理します。

パターン A: Claude Desktop を GUI ハブにする

  • 狙い: 非エンジニアや、CLI を普段触らないメンバーでも Claude Code の恩恵を得る
  • 構成: Claude Desktop(GUI)→ MCP → claude mcp serve(ローカル)
  • 典型タスク: 議事録ファイルの整理、社内ドキュメントの一括リライト、Git 管理下のブログ記事の修正

パターン B: Cursor から重いタスクを委譲する

  • 狙い: Cursor の Composer で詰まる複雑タスクを Claude Code に丸投げ
  • 構成: Cursor → MCP → @steipete/claude-code-mcp → Claude Code(--dangerously-skip-permissions
  • 典型タスク: 大規模リファクタリング、フレームワーク移行、ワークスペース外のファイル参照

パターン C: 多段エージェントの中継ハブにする

  • 狙い: GitHub MCP、DB MCP、テストランナー MCP など複数ツールを連携
  • 構成: 親 Claude Code → MCP → 子 Claude Code(claude mcp serve)→ 各種 MCP
  • 典型タスク: PR の diff 解析 → コード生成 → テスト実行 → レポート送信の一括実行

パターン D: バッチ処理のコンテキスト分離

  • 狙い: 長時間タスクを子プロセスに切り出し、親セッションのコンテキストを汚さない
  • 構成: claude mcp add claude-sub-agent -- claude mcp serve で入れ子化
  • 典型タスク: 大量のファイル変換、ログ解析、ドキュメント一括生成
Anthropic Claude Code 公式リポジトリ

出典: anthropics/claude-code GitHub

セキュリティ上の注意点

Claude Code を MCP サーバー化する構成は強力ですが、設定を誤ると任意のシェルコマンドが確認なしで走るリスクがあります。 Claude Code 公式ドキュメントも「サードパーティの MCP サーバーは自己責任で使用してください」と明記しており、特に次の 4 点に注意します。

1. --dangerously-skip-permissions の常用は信頼できる環境のみ

@steipete/claude-code-mcp はこのフラグでパーミッションダイアログをスキップする設計です。ファイル書き換え・シェル実行が確認なしで走るため、次の条件で運用します。

  • 信頼できるプロンプトソースからのみ呼び出す
  • 重要データの置かれたディレクトリでは起動しない
  • Git 管理下のディレクトリで使い、不測の変更を復元できるようにする
  • 本番サーバーや共有環境では使わない

2. プロンプトインジェクションへの備え

外部から取り込むコンテンツ(GitHub Issue、Web 検索結果、ドキュメント)に悪意ある命令が混入すると、MCP 経由で Claude Code がファイル削除や認証情報送信などの危険操作を実行するリスクがあります。

  • 信頼できないコンテンツを扱う場合は、公式 claude mcp serve(承認プロンプトあり)側を使う
  • Web スクレイピング結果を直接プロンプトに渡さない
  • Claude Code 側の allowedTools で危険ツール(Bash 等)を絞る

3. 認証情報は平文で保存しない

.mcp.json やホームの ~/.claude.json に環境変数やトークンを平文で書き込むのは避けるべきです。

  • OAuth 対応の MCP サーバーを優先する
  • headersHelper 等の動的ヘッダー生成機能を活用する
  • 平文が避けられない場合はファイルパーミッションを制限

4. 組織統制には managed-mcp.json を活用

企業環境では、個々のユーザーが勝手に MCP サーバーを追加できない運用が求められます。Claude Code はmanaged-mcp.json による管理者の排他制御をサポートしており、allowedMcpServers / deniedMcpServers で名前・コマンド・URL パターン単位の許可リスト / 拒否リストを設定できます(macOS なら /Library/Application Support/ClaudeCode/ 配下など、システム領域に配置)。

制約と現時点でできないこと

実務で踏みがちな制約を事前に押さえておきます。

制約

詳細

MCP パススルー不可

claude mcp serve で起動した Claude Code 側に接続している MCP サーバー(GitHub MCP 等)は、上位クライアントからは直接利用できない。各レイヤーで個別接続が必要

セッション状態の非共有

@steipete/claude-code-mcpclaude_code ツールは呼び出しごとに新インスタンス起動のワンショット型。履歴を継続したい場合は @leo000001/claude-code-mcp 等の派生版を検討

プロセス起動オーバーヘッド

呼び出しごとに Claude Code を起動するため、軽い処理でも数秒〜のオーバーヘッド

コンテキストが大きいと失敗

Cursor → Claude Code 連携で、大きな文脈をそのまま渡すと失敗する報告あり。要約して渡すか、ファイル参照で渡す

組み込み認証なし

claude mcp serve はローカル stdio 前提。リモート接続には別途 OAuth 層が必要

監査ログなし

ツール呼び出しの監査履歴は標準では残らない。業務用途では別途ログ基盤を用意

トラブルシューティング

spawn claude ENOENT が出る

Claude Desktop や Cursor は GUI プロセスなので、ターミナルに設定された PATH を引き継ぎません。command フィールドに claude の絶対パスを書くと解決します。

which claude
# /Users/username/.local/bin/claude を command に指定

初回接続時にエラーで止まる

@steipete/claude-code-mcp を使う場合、一度だけターミナルで claude --dangerously-skip-permissions を手動実行し、利用規約同意を完了させる必要があります。

JSON パースエラーが出る

MCP_CLAUDE_DEBUG=true を設定していると、デバッグログが標準出力に混ざり JSON-RPC パースに失敗する報告があります。本番運用では false に戻します。

コンテキスト超過で失敗する

Cursor から渡すプロンプトやワークスペース情報が大きすぎると、Claude Code 側で処理できずに落ちます。作業対象をファイルパスで指定し、Claude Code 側で Read させる運用に切り替えます。

Windows で動かない

npx ラッパーの都合で、command: "cmd"args: ["/c", "npx", ...] の形に書き換えます。ネイティブでの動作報告は限定的なため、WSL 2 の利用を推奨します。

Claude Codeのサブエージェント機能との使い分け

Claude Code には組み込みの「サブエージェント」機能(dispatch_agent / Agent Teams)もあります。MCP サーバー化とどう使い分けるかの指針は以下の通りです。

用途

推奨アプローチ

同じ Claude Code セッション内で並列タスクを走らせたい

組み込みサブエージェント(dispatch_agent

Claude Desktop などの別クライアントから Claude Code を呼びたい

claude mcp serve(MCP サーバー化)

Cursor から重い一括タスクを丸投げしたい

@steipete/claude-code-mcp(ワンショット実行)

長時間バッチをコンテキスト分離したい

Claude Code 同士を MCP で入れ子にする

チーム全体でエージェント分業したい

Claude Code Agent Teams(組み込み機能)

結論として、MCP サーバー化は「別クライアントからの呼び出し」が目的のときに最適であり、Claude Code 単体で完結する並列処理には組み込みサブエージェント機能の方がオーバーヘッドが少なく扱いやすいです。

こんな人におすすめ

  • Claude Max / Pro プランを契約済みで、定額枠を活用したい: Cursor の API 課金分を Claude Code 側に寄せる運用で、月額コストを抑えやすい
  • Claude Desktop を非エンジニアの AI ハブにしたい: GUI チャットから自然言語指示だけで、裏では Claude Code がファイル操作・Git を実行
  • Cursor / Windsurf で大規模リファクタリングに詰まっている: 複雑多段編集やワークスペース外参照を Claude Code に委譲
  • 多段エージェント協調を自作したい開発者: GitHub・DB・テストランナーを MCP で連携する分業パイプラインを設計したい
  • 入れ子エージェントでコンテキスト分離したい: 長時間タスクを子プロセスに隔離し、親セッションを軽く保ちたい

おすすめしない人

  • Cursor 単体で十分完結している: 重い多段編集が不要なら、MCP 連携のオーバーヘッドの方が大きい
  • Claude Code 本体の料金プランを契約していない: MCP サーバー化しても裏側で Claude Code の課金は発生する
  • 監査ログや承認フローが必須の業務環境: 標準で監査ログが残らないため、別途統制基盤が必要
  • Windows ネイティブで運用したい: WSL 2 推奨のため、Windows ネイティブにこだわる場合は他手段を検討
  • 信頼できないプロンプトソースを扱う: --dangerously-skip-permissions 経由の操作はプロンプトインジェクションのリスクがあるため

よくある質問

Q1. claude mcp serve@steipete/claude-code-mcp はどちらを選ぶべき?

初めて試すなら公式 claude mcp serve から入ってください。パーミッション承認プロンプトが走るため安全で、Claude Code の全ツールをそのまま MCP クライアントから呼べます。Cursor などで「長時間の一括タスクを丸ごと Claude Code に任せたい」というケースで @steipete/claude-code-mcp を追加検討します。

Q2. Claude Max プランなら API クレジットは消費されない?

公式ドキュメントでは「Claude Code が消費するトークンはサブスクリプションの定額枠でカバーされる」とされていますが、実際の課金境界はプランと利用量によって変わるため、公式料金ページで現行の仕様を確認してから本格運用に入ってください。

Q3. MCP パススルーはできる?

できません。claude mcp serve の下層に接続されている MCP サーバー(例: GitHub MCP)は、上位クライアント(例: Claude Desktop)から直接は呼び出せません。上位クライアント側でも同じ MCP サーバーを個別接続する必要があります。

Q4. リモートサーバーとして公開したい

公式 claude mcp serve は stdio 前提で、組み込みのリモート認証機能はありません。HTTP / SSE 経由でリモート公開したい場合は、OAuth 層や別途ゲートウェイを自作する必要があります。業務環境では慎重に検討してください。

Q5. Claude Code の中で Claude Code を呼ぶと料金は二重にかかる?

ワンショット実行型(@steipete/claude-code-mcp)の場合、内部で別プロセスとして Claude Code が起動するため、親と子でそれぞれトークンを消費します。Claude Max の定額枠内であればプラン内で収まるケースが多いですが、API 契約の場合は二重課金になる点に注意してください。

Q6. Windows で動かすには?

WSL 2 の利用を推奨します。Windows ネイティブで動かす場合は、command: "cmd"args: ["/c", "npx", ...] の形にラップする必要がありますが、動作が不安定との報告があります。

まとめと次に読むべき記事

Claude Code を MCP サーバーとして動かす構成は、Claude Desktop を GUI ハブにする、Cursor の弱点を補う、多段エージェントを組むという 3 つの用途で特に効きます。初めて試すなら公式 claude mcp serve、Cursor から重いタスクを丸投げしたいなら @steipete/claude-code-mcp を選び、--dangerously-skip-permissions の取り扱いとプロンプトインジェクション対策に気を配れば、「エージェントの中のエージェント」構成は実用レベルで運用できます。

関連記事:

この記事の著者

AI革命

AI革命

編集部

AI革命株式会社の編集部です。最新のAI技術動向から実践的な導入事例まで、企業のデジタル変革に役立つ情報をお届けしています。豊富な経験と専門知識を活かし、読者の皆様にとって価値のあるコンテンツを制作しています。

AI活用ならAI革命にお任せ。サービスを見てみる
AI Revolution Growth Arrow

AIでビジネスを革新しませんか?

あなたのビジネスにAIがどのような価値をもたらすかをご提案いたします。