
2026/03/17 0:25
**Apideck CLI – MCP よりずっと低いコンテキスト消費で実現する AI エージェントインタフェース**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改訂要約
記事は、AI エージェントにとってコマンドラインインターフェース(CLI)が、トークン制限、信頼性、安全性が重要な場合、機械間プロトコル(MCP)よりも遥かに効率的で信頼できると主張しています。
主要証拠:
- MCP ツール定義は 200,000 トークンの予算の約 143 k を消費し、会話に残るトークンがほとんどありません。各ツールは 550–1,400 トークンを必要とするため、大規模な API サーフェスはトークン上限の 50 % を超える可能性があります。
- ベンチマークテスト(Scalekit の 75 回ランヘッド・ツー・ヘッド)では、MCP は CLI と同一タスクで 4–32 倍多くトークンを使用します(例:リポジトリ言語チェック:44 k 対 1.3 k)。
- CLI は約 80 トークンと時折の
呼び出し(合計約 400)しか必要とせず、MCP は初期に 10 k 以上を要求します。--help- MCP は TCP タイムアウトによる失敗率が高く(28%)、ローカル CLI バイナリはそのようなレイテンシや接続プールの枯渇を回避します。
対応策: 記事では 3 つの選択肢を提示しています:(1)圧縮テクニック付き MCP、(2)コード実行(Duet スタイル)、(3)CLI をエージェントインターフェースとして使用。各オプションが適切な場面—MCP はスコープの狭い高頻度ツールや OAuth 同意を必要とするステートフルワークフロー、CLI はトークン節約と構造的安全性をバイナリに組み込める汎用インタラクション時—を明確化しています。
構造的安全性: Apideck CLI はコード内で権限を強制します(例:GET は自動承認、POST/PUT/PATCH はプロンプト付き、DELETE は
がないとブロック)。これにより、プロンプトインジェクションが安全規則を上書きするのを防ぎます。--forceAPI プロバイダーへの影響: OpenAPI スペックは軽量化し、段階的開示パターンを採用し、権限モデルをプロンプトではなくツールに直接埋め込み、機械向け JSON 出力をデフォルトで提供することが推奨されます。
将来展望: AI エージェントが API をより多く消費するにつれ、プロバイダーはトークン最適化、安全アーキテクチャ、および CLI 互換性に注力し、エージェントフレンドリーであり続ける必要があります。
本文
デモ規模で誰も語らない問題
「MCPサーバーをデモ以上の用途に組み込んだことがあるなら、ここで挙げるシナリオはすぐに覚えられるでしょう。」
GitHub、Slack、Sentry を連携… 55 000トークン分のツール定義がコンテキストウィンドウに入っています。Claude の 200k 制限の四分の一以上です。
トークン予算の膨張
| アプローチ | 最初のメッセージ前に消費されるトークン |
|---|---|
| コンテキスト内にフル OpenAPI スペックを入れる | 30 000–100 000+ |
| MCP ツール(各 API で約3 600) | 10 000–50 000+ |
| CLI エージェントプロンプト | ~80 |
必要時の CLI 呼び出し | 50–200 |
例:
- MCP – 10 000 トークン以上を最初にロード、エージェントが使わなくても。
- CLI – 会計クエリで三回の
呼び出しだけで約400トークン。--help
同じ問題への3つのアプローチ
-
圧縮テクニックを併用した MCP
スキーマを圧縮、ツール検索、OpenAPI スペックを分割。
範囲が限定されたやり取りにはうまく機能するがインフラオーバーヘッドが増え、トークンコストは依然として課金される。 -
コード実行(Duet)
エージェントが SDK へコードを書き、実行し、スクリプトを保存。
長期稼働ワークスペースや複雑なワークフローに強力だが安全性の表面は大きく、サンドボックス化が不可欠。 -
CLI をエージェントインタフェースとして使用 (我々の選択)
洗練された CLI を提供し、
で必要に応じて機能を発見。--help
トークン経済性が劇的に低く、信頼性も高い(リモートサーバータイムアウトなし)。
なぜ CLI が実用的なベストスポットなのか
プログレッシブディスロージャーでトークンを節約
apideck を使って Apideck Unified API と対話します。 利用可能な API: `apideck --list` リソース一覧: `apideck <api> --list` 操作ヘルプ: `apideck <api> <resource> <verb> --help` ...
- 約80トークン をシステムプロンプトに使用。
- 各
呼び出しは 50–200 トークンしか消費せず、必要時のみロード。--help
信頼性:ローカルがリモートを上回る
| メトリクス | MCP | CLI |
|---|---|---|
| GitHub Copilot サーバーでの失敗率 | 28 % (7/25 実行) | 0 %(バイナリはローカル実行) |
| 月間コスト差額(10 000 オペレーション/月) | $55.20 | $3.20 |
構造的安全性がプロンプトベースより優位
// internal/permission/engine.go switch op.Permission { case spec.PermissionRead: return ActionAllow // GET → 自動承認 case spec.PermissionWrite: return ActionPrompt // POST/PUT/PATCH → 確認必須 case spec.PermissionDangerous: return ActionBlock // DELETE → デフォルトでブロック }
- プロンプトがこのロジックを上書きすることはない。
- 権限ポリシーは
でカスタマイズ可能。~/.apideck-cli/permissions.yaml
汎用互換性、プロトコルオーバーヘッドゼロ
すべてのエージェントフレームワークに「シェルコマンド実行」というプリミティブがある。
MCP は専用クライアントサポートを必要とするが、CLI には
$PATH にバイナリを置くだけで済む。
私たちの構築方法
起動時に最新 Apideck Unified API スペックを解析し、コマンドツリー全体をダイナミックに生成する単一の静的 Go バイナリ。
- コード生成なし – スペックを埋め込み、
でパース。libopenapi - 賢い出力デフォルト – TTY ではない場合は JSON、対話型使用時は色付きテーブル。
- 認証は目に見えない – 環境変数 (
等) または設定ファイルから取得し、エージェントへ露出させず。APIDECK_API_KEY - コネクタターゲティング –
で特定の統合にアクセス。--service-id
CLI が解決できないケース
| シナリオ | 推奨アプローチ |
|---|---|
| 範囲が限定され、頻繁に使われるツール(例:カスタマーサポート) | MCP(スキーマコストを amortize) |
| 複雑で状態保持するワークフロー(polling, aggregation) | コード実行 |
| 他ユーザーの代理として動く(マルチテナント B2B) | MCP(ネイティブ OAuth & audit trail) |
MCP の認証モデルはまだ追いついていない。多くのプロバイダーが Dynamic Client Registration をサポートしていない。
API プロバイダーへの示唆
- OpenAPI スペックサイズに注意 – 50+ エンドポイントだと MCP のトークンオーバーヘッドがコンテキストウィンドウを超える可能性あり。
- プログレッシブディスロージャー = トークン最適化 – 全てを一度に出すのではなく、段階的に機能を公開。
- 構造的安全性は譲れない – 権限モデルをコードで強制し、プロンプトには任せない。
- マシン向け出力を提供 – 非対話型環境では JSON をデフォルトに、安定した終了コードを返す。
さらに読む
- MCP vs API – How MCP and REST APIs relate (Apideck ブログ)
- API Design Principles for the Agentic Era – Designing APIs with AI agents as first‑class consumers
- Understanding the Security Landscape of MCP – MCP security considerations in depth
- The MCP Context Tax – Detailed analysis of MCP token overhead
- Agentic CLI Design: 7 Principles – Design principles for CLIs as agent interfaces
- MCP vs CLI Benchmark – Scalekit's head‑to‑head benchmark data (75 runs, Claude Sonnet 4)
この記事は以上です。