多くのチームは 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_servers と type: "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: true と input_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 Output は output_config.format の json_schema でモデルのテキストブロックを有効な JSON にする。フィールド抽出、レポートオブジェクト、次サービスへの契約向け。Tool Use と直交する:JSON だけ、strict ツールだけ、両方。ツール呼び出しの代替ではない——整った JSON でも HTTP は飛ばない。
2.5 AI Agent — ループ方針であり、第五の API 製品ではない
ここでの AI Agent は:モデルがツールを選ぶ → 実行 → 結果を返す → 停止まで。停止条件は自分で書く:最大ラウンド、禁止ツール名、予算、人間確認。ループは Tool Use だけでも MCP 混在でもよい。Structured Output は最終引き渡し向け。「完全自動」でループ上限がないものは、無制限リトライだ。
3. コア比較(How Compare)
| 能力 | 入口 | 実行 | コンテキスト | 向いている用途 |
|---|---|---|---|---|
| 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 関数は自分が書く | 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 を正規表現抽出 |
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_formatとoutput_configを二製品とみなすoutput_config.format。「強いモデルなら最大ステップ不要」→ ステップは金額と爆発半径の問題で、IQ ではない。汎用 MCP クライアント schema に→ 汎用 MCP チャネルでは API 専用フィールドを剥がす。strictをコピペ
7. 七つの導入ステップ
- 副作用を棚卸し:読み取りクエリ、内部書き込み、CI 起動、本番。クラスごとにツール表を一つ。
- 自作ツールを一つ出す:最小
input_schema+strict: true;tool_use → 実行 → tool_result を証明。 - 人間向けと機械向けを分離:機械契約は Structured Output または専用 parse 呼び出し。
- 読み取り専用 MCP を接続:
mcp_servers+ allowlist;書き込みは自作のまま。 - ループを包む:最大 N ステップ、タイムアウト、トークン予算、未宣言ツール名を拒否。
- 観測:ツール名、引数ハッシュ、レイテンシ、スキーマ失敗を記録——最終 assistant テキストだけではない。
- 重い実行を固定ノードに:macOS ジョブはクラウド Mac / セルフホスト runner;Agent はジョブ ID を出し、ノート PC シェルではない。
# 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_config と strict が SDK バージョンで残存 beta ヘッダーに依存していないか確認する。
8. まとめ
Claude API はモデルをシステムに接続する方法。Tool Use は自作実行と保証された引数。MCP はリモート発見とトリミング。Structured Output はパーサー契約。AI Agent はループが止まる条件と爆発半径。五つは並列の「新機能」見出しではない。一つの入口、二つの実行プレーン、一つの配信形式、自分が書くオーケストレーションだ。副作用境界を先に描き、その後 MCP とループを有効にしてデモを本番に耐える形にする。
さらに読む:Structured outputs · Strict tool use · MCP connector · MCP プロトコル入門
FAQ
ツールが動いても、ビルドを走らせる場所が要る
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 は価値の高い実行ノード—— プランを見る、ループを予算内でリモート完走させる。