← 開発日記に戻る

Claude 2026 機能総覧:API、Tool Use、MCP、Structured Output と AI Agent

AI Agent & Claude API · 2026.08.18 · 約 16 分

Claude API・Tool Use・MCP・Structured Output の Agent スタック

多くのチームは 2026 年の Claude 機能リストを「モデルが賢くなった」プレスリリースとして扱う:Messages API、Tool Use、MCP、Structured Output、Agent ループ——名前は増える一方、コードはprompt・ツール・JSON の期待を一度の messages.create に詰め込むまま。本番で壊れるのは文章の質ではなく、スキーマに合わないツール引数、広すぎる MCP 権限面、正規表現で JSON を抜く下流。以下で問うのは、この五つは同じレイヤーか?非対称な結論:分岐点はモデル名ではなく、スキーマ制約と実行境界だ。

本番で Claude を組み込む開発者向け:Claude API、Tool Use、MCP コネクタStructured Output、Agent ループを入口・実行・コンテキストで分類し、いつ自作ツールを持つか、いつリモート MCP を付けるか、いつ strict が必須かを決める。プロトコル基礎はMCP とは何か(USB のたとえ)。IDE のレイヤーはClaude Skills と Cursor Rules の違い。本ページは API 側を運用可能な Agent にする方法だけを扱う。

1. 機能リストが長いほど、本番は脆くなる

2025 年末から 2026 年にかけ、Anthropic は「ツール呼び出し」「MCP 接続」「JSON Schema 出力」を Messages の主経路へ移した:output_config.format が beta の output_format を置き換え;ツール定義に strict: true を付け、文法制約サンプリングで引数を有効に保つ;リモート MCP は mcp_serverstype: "mcp_toolset" で同一リクエストに載せられる。ドキュメントは明確だ。それでもエンジニアリングでは三つの仕事が一つに潰される:

  • 人間向けの文章と機械取り込み用 JSON を、スキーマなしのテキスト塊にまとめる;
  • ローカルスクリプト、SaaS、書き込み可能な MCP ツールを一つの tools 配列に並べ、モデルに選ばせる;
  • Agent を「同じ user ターンを 20 回繰り返す」だけと定義し、最大ステップ数や tool_use の監査がない。

デモは動く;チケットには JSONDecodeError、誤った enum、MCP サーバーを万能シェルとして扱う実装が溜まる。Claude API が「機能不足」なのではない。入口・実行・コンテキストが分かれていなかった。Agent が xcodebuild を走らせるなら、実行は実 Mac ハードウェアに着地する——セルフホスト GitHub Actions macOS runner と同じ運用問題で、プロンプトの問題ではない。

2. 各レイヤーとは何か(What)

2.1 Claude API — 会話の入口であり、Agent 製品ではない

Claude API(Messages)は、モデル・メッセージ・システムプロンプト・キャッシュ・課金をあなたのシステムに接続する入口。ツールは実行してくれず、json.loads も保証しない。チャット補完として使うのは正当だ。下流が DB を書き、チケットを開き、CI を起動する瞬間に、後続レイヤーを積む。まず問う:この呼び出しの消費者は人か、パーサーか?

2.2 Tool Use — 自分が持つ実行プレーン

Tool Use はモデルが tool_use ブロックを出し、サーバー側で実行して tool_result を返す仕組み。自社実装向け:在庫、チケット、リポジトリスクリプト。2026 年の本番では定義に strict tool use を付ける:strict: trueinput_schema が Structured Output と同じ文法パイプラインを通り、「文字列の 2 を数値と誤認」するクラッシュを減らす。代償はスキーマが Anthropic がサポートする JSON Schema 部分集合に収まる必要があること。

2.3 MCP コネクタ — リモートツール面であり、別 SDK ではない

Messages の MCP コネクタはリモートサーバー(URL、OAuth)と mcp_toolset(全ツール、許可リスト、拒否リスト)を宣言する。発見とトランスポートを解く:SaaS ごとに Anthropic ツール JSON を手書きしない。自動的に安全ではない——ファイルシステムやシェル MCP はゲートウェイか allowlist が要る。プロトコルの「なぜ USB」かと、本ページの「API にサーバーを載せる方法」は補完関係で、重複記事ではない。

2.4 Structured Output — パーサー向けコンテキストであり、読者向け文体ではない

Structured Outputoutput_config.formatjson_schema でモデルのテキストブロックを有効な JSON にする。フィールド抽出、レポートオブジェクト、次サービスへの契約向け。Tool Use と直交する:JSON だけ、strict ツールだけ、両方。ツール呼び出しの代替ではない——整った JSON でも HTTP は飛ばない。

2.5 AI Agent — ループ方針であり、第五の API 製品ではない

ここでの AI Agent は:モデルがツールを選ぶ → 実行 → 結果を返す → 停止まで。停止条件は自分で書く:最大ラウンド、禁止ツール名、予算、人間確認。ループは Tool Use だけでも MCP 混在でもよい。Structured Output は最終引き渡し向け。「完全自動」でループ上限がないものは、無制限リトライだ。

一行で覚える
Claude API は入口;Tool Use / MCP は実行(自社 vs リモート発見);Structured Output は機械向け契約;Agent は自分が書くループと赤線。

3. コア比較(How Compare)

Claude API 五レイヤー:入口・実行・コンテキスト・用途
能力 入口 実行 コンテキスト 向いている用途
Claude API Messages / SDK messages.create テキスト・マルチモーダル理解;外部副作用なし messages + system + cache blocks チャット、草稿、人間が読む要約
Tool Use リクエスト内の自作 tools[] バックエンドが関数実行;任意で strict: true tool schema + tool_result の往復 内部 API を持ち、呼び出しごとに監査するチーム
MCP コネクタ mcp_servers + mcp_toolset リモート MCP ツール;マルチサーバー、OAuth 発見されたツール一覧(要トリミング) 手書き JSON なしで既存 MCP を使う統合担当
Structured Output output_config.format = json_schema ツールは実行しない;パース可能な JSON テキストを保証 スキーマがサンプリング制約に入る ETL、チケットフィールド、型付き下流サービス
AI Agent ループ 自前オーケストレータ(while / queue / workflow) 停止まで Tool Use または MCP を繰り返す 蓄積した tool_result;ウィンドウ肥大に注意 明示的な予算付きの多段階状態変更
自作 Tool Use vs MCP コネクタ
観点 自作 Tool Use 関数は自分が書く MCP コネクタ リモート発見
所有権実装・ログ・レート制限は自リポジトリツールの意味論は MCP サーバー側
変更速度スキーマ変更は Agent と一緒にリリース新サーバーツールが発見に現れる——allowlist 必須
strict 引数公式 strict が自スキーマと整合API 専用フィールドを汎用 MCP クライアント schema に入れない
適合コア書き込み経路、コンプライアンス監査読み取り専用 SaaS、標準化検索、ツールビュッフェ

4. 選定方法(Decision)

消費者と副作用を先に固定し、レイヤーを選ぶ。マトリクスは外部状態を変えるかで分岐する。

シナリオマトリクス
シナリオ 推奨 避ける
運用向け週次メモ Claude API プレーンテキスト 「先進的に見せる」ための JSON Schema
メールフィールドを CRM に抽出 Structured Output + サーバー側検証 書き込まない偽「抽出ツール」
Jira 作成 / アラートクローズ 自作 Tool Use + strict: true + 冪等キー 書き込み可能 MCP パックをリクエストに丸投げ
読み取り専用ドキュメント / カレンダー MCP コネクタ + ツール allowlist 「念のため」全ツール有効化
多段階リポ修正 + テスト Agent ループ + 自作 git/test ツール + 最大ステップ 無制限 while-true;ノート PC で一晩 xcodebuild
下流 API への最終契約 最終ターン Structured Output(または別 parse 呼び出し) 混在 tool_use テキストから JSON を正規表現抽出
赤線
ファイルシステム、本番 DB、決済、外向きメールはデフォルトで「発見 MCP・全ツール ON」から外す。MCP を使うなら allowlist + 認証 + 監査ログを必須にし、高リスク手順は人間確認を挟む。

5. 推奨スタック

機能を積み上げる。単一製品名を探さない。

  • 個人スクリプト / 内部ボット:Claude API + 自作ツール 2〜5 個 + strict。秘密の露出が見合うまで MCP は後回し。
  • 成長中の SaaS サポート Agent:自作書き込みツール(チケット)+ 読み取り専用 MCP ナレッジ + 終端で Structured Output で QA。
  • プラットフォーム / マルチチーム:認証・レート制限用 MCP ゲートウェイ;ステップと予算用オーケストレータ;課金書き込みは自作 Tool Use のまま。
  • macOS / iOS ビルド Agent:「指定 runner でジョブ投入」だけ公開;実際の xcodebuild は安定したクラウド Mac で、モデル主導の ad-hoc SSH ではない。

IDE Skills との対比:API Agent はシステム副作用付きループを持つ;Claude Code Skills はリポ内開発者 SOPを持つ。両方 MCP を語ることがあるが、書き込み権限の認証テーブルは共有しない。

6. 落とし穴

  • 「MCP なら Tool Use を捨てられる」 → 書き込み経路・コンプライアンス・冪等性は自社所有と監査のまま。
  • 「Structured Output が Agent だ」 → テキスト JSON を制約するだけ;副作用は起きない。
  • 「strict は任意の入れ子 JSON Schema で動く」 → ドキュメント化された部分集合内に留める;深い oneOf / 動的キーは失敗する。
  • レガシー beta output_formatoutput_config を二製品とみなす → 移行互換のみ;新コードは output_config.format
  • 「強いモデルなら最大ステップ不要」 → ステップは金額と爆発半径の問題で、IQ ではない。
  • 汎用 MCP クライアント schema に strict をコピペ → 汎用 MCP チャネルでは API 専用フィールドを剥がす。

7. 七つの導入ステップ

  1. 副作用を棚卸し:読み取りクエリ、内部書き込み、CI 起動、本番。クラスごとにツール表を一つ。
  2. 自作ツールを一つ出す:最小 input_schema + strict: true;tool_use → 実行 → tool_result を証明。
  3. 人間向けと機械向けを分離:機械契約は Structured Output または専用 parse 呼び出し。
  4. 読み取り専用 MCP を接続mcp_servers + allowlist;書き込みは自作のまま。
  5. ループを包む:最大 N ステップ、タイムアウト、トークン予算、未宣言ツール名を拒否。
  6. 観測:ツール名、引数ハッシュ、レイテンシ、スキーマ失敗を記録——最終 assistant テキストだけではない。
  7. 重い実行を固定ノードに:macOS ジョブはクラウド Mac / セルフホスト runner;Agent はジョブ ID を出し、ノート PC シェルではない。
スケッチ:strict ツール + 構造化最終ペイロード(秘密は env 経由)
# Pseudocode — use the official SDK in production
POST /v1/messages
{
  "model": "claude-opus-4-6",
  "max_tokens": 2048,
  "tools": [{
    "name": "create_ticket",
    "strict": true,
    "input_schema": {
      "type": "object",
      "properties": {
        "title": {"type": "string"},
        "severity": {"type": "string", "enum": ["low","high"]}
      },
      "required": ["title","severity"],
      "additionalProperties": false
    }
  }],
  "output_config": {
    "format": {
      "type": "json_schema",
      "schema": {
        "type": "object",
        "properties": {
          "ticket_id": {"type": "string"},
          "next_action": {"type": "string"}
        },
        "required": ["ticket_id","next_action"],
        "additionalProperties": false
      }
    }
  },
  "messages": [{"role": "user", "content": "高重要度チケットを開く:ビルドがタイムアウト"}]
}

モデル ID はコンソールとTool Use 概要に合わせる。本番前に output_configstrict が SDK バージョンで残存 beta ヘッダーに依存していないか確認する。

8. まとめ

Claude API はモデルをシステムに接続する方法。Tool Use は自作実行と保証された引数。MCP はリモート発見とトリミング。Structured Output はパーサー契約。AI Agent はループが止まる条件と爆発半径。五つは並列の「新機能」見出しではない。一つの入口、二つの実行プレーン、一つの配信形式、自分が書くオーケストレーションだ。副作用境界を先に描き、その後 MCP とループを有効にしてデモを本番に耐える形にする。

さらに読む:Structured outputs · Strict tool use · MCP connector · MCP プロトコル入門

FAQ

Tool Use と MCP を同一リクエストで使える?
はい。よくある分割は書き込みを自作 Tool Use、読み取りを MCP toolset。両方ツール一覧に出るので、名前プレフィックスと allowlist でモデルが誤って書き込みツールを選ばないようにする。
Structured Output は strict ツールを置き換える?
いいえ。Structured Output はアシスタントテキスト JSON を制約;strict は tool_use の name と input を制約。関数を実行するならツール schema が必要——散文に合法引数が「たまたま」現れることを期待しない。
beta ヘッダーはまだ必要?
現行 Anthropic ドキュメントに従う:構造化出力は output_config.format へ移行し、旧パラメータは移行期間中のみ。新規統合は structured-outputs の旧 beta ヘッダーに依存しない。MCP コネクタが anthropic-beta を要するかは、リリース前に MCP connector ページで確認する。
Agent ループの max_tokens はどのくらい?
「念のためモデル上限」ではなく、一回のツール呼び出しステップに合わせる。ステップ数 × max_tokens が請求額。コンテキストが膨らんだらウィンドウを無限に広げず tool_result を要約する。
サイト内 MCP 解説記事との違いは?
あちらはプロトコルとは何か、USB たとえがなぜ成立するか。本記事は Claude Messages MCP コネクタを Tool Use・Structured Output・運用可能な Agent ループとどう組み合わせるか、シナリオ分岐付きで扱う。
ビルド Agent にクラウド Mac が要る理由は?
codesign と xcodebuild はネイティブ macOS が必要。Agent は手順を記述;実行には 24/7 SSH 可能なノードが要る。クラウド Mac mini は待機電力が低く環境が再現可能で、署名証明書と一晩コンパイルをノート PC に縛らない。

ツールが動いても、ビルドを走らせる場所が要る

Claude の Tool Use と MCP は意図を呼び出しに変える。実際の xcodebuild、Fastlane、署名は macOS 上で起きる。Hashvps クラウド Mac mini M4 は SSH/VNC、専用 IPv4、再現可能な Homebrew ツリーを提供——リポジトリ向け読み取り専用 MCP、書き込みジョブは指定 runner へ。不安定なノート PC シェルをモデルに触らせない。

Claude API Agent を iOS/macOS パイプラインに組み込むなら、 Hashvps クラウド Mac は価値の高い実行ノード—— プランを見る、ループを予算内でリモート完走させる。

Hashvps · Mac クラウド

Agent のツール実行には安定したノードを

Cloud Mac mini M4、ネイティブ macOS と SSH。MCP ツールと xcodebuild を同じ再現可能なホストへ。

ホームへ
期間限定