🧠 AI プロダクト動向

2026-08-18 発行(読了 7 分)

実プロダクトのアーキテクチャ・使用例から AI 開発の現在地を週 3 回・1 号 1 テーマで深掘り

今号のテーマ AGENT-AUTHORIZATION

MCPエージェントの認可設計 — 同意画面を「増やす」実装と「無くす」実装に分岐した

MCP(Model Context Protocol)はここ数ヶ月で「ツール呼び出しAPI」から「エージェント向けOS」へと役割を広げ、認可まわりの仕様更新が相次いでいる。争点は一貫して同じ問いに戻ってくる——エージェントがサーバー越しに何をしてよいかを、誰が、いつ、どの粒度で決めるのか。ツール単位のスコープ設計、エージェントの自己登録が生む同意の摩擦、そしてエンタープライズ向けに同意画面そのものを無くす動きまで、この数ヶ月で実装が急速に分岐した。MCPクライアント・サーバーをプロダクトに組み込むなら、この3層のどこで権限判断をさせるかはもう後回しにできない設計判断になっている。

TL;DR — 3 行で
📐 パターン 1: サーバー単位の許可から、ツール単位のスコープへ

MCPサーバーは2025年6月の仕様更新で「OAuth Authorization Serverではなく Resource Server」と明確化された。この結果、権限チェックの単位はサーバー全体ではなく個々のツールに移った。画像生成ツールが呼び出し時にimage_generationスコープをセッションに対して照会し、なければ拒否する、という実装がWorkOSの解説記事でリファレンスパターンとして示されている。

なぜサーバー単位では不十分になったのか。1つのMCPサーバーが提供するツール数はリリースのたびに増え、「検索はできるが送金はできない」のような粒度の権限を、サーバー単位のOAuthスコープだけでは表現できなくなったためだ。CloudflareのAgents SDKはWorkOS・Stytch・Auth0の3プロバイダそれぞれと統合し、同じサーバー内で「addツールは全ユーザーに公開、image_generationツールは権限を持つユーザーのみ」という条件付き公開を標準パターンとして提示している。

WorkOS AuthKit(MCPツール単位パーミッション)
ツール呼び出し時にコード内でスコープを個別チェック
generateImageツールが呼び出し時にimage_generationパーミッションをセッションに照会し、なければ拒否するパターンをリファレンス実装として公開。サーバー単位のOAuthスコープでは表現できない粒度をツール側のロジックで担保している
📄 一次ソース
Cloudflare Agents SDK(MCPサーバーのDurable Objects実装)
同一サーバー内でツールごとに公開条件を分岐
McpAgentクラスがWorkOS・Stytch・Auth0のいずれとも統合できる形で設計されており、addツールは全認証ユーザーに、image_generationツールはロールを持つユーザーにのみ公開する条件分岐をサンプルとして提示している
📄 一次ソース
示唆: 新規にMCPサーバーやツールを設計するなら、最初からツール単位でスコープを切る。サーバー単位のOAuthアプリとして権限設計を始めると、後からツールが増えるたびに権限体系を作り直すことになる。
📐 パターン 2: エージェントが自分でツールを見つけて要求する時代の同意設計

MCPエージェントは事前にどのツールを使うか人間が決めるのではなく、実行時にサーバーの提供するツール一覧を発見して呼び出す。この動的発見に対応するため、Dynamic Client Registration(DCR)でクライアント(エージェント)自身がサーバーへの登録とリダイレクトURIの申告を自律的に行う設計が広がった。StytchのConnected Appsはこの自己登録するクライアントを追跡し、権限ごとの同意画面でユーザーに「このエージェントが要求している権限」を提示する。

ただしDCRは登録済みクライアントのなりすましや、ユーザーが事前承認していない権限を実行時に要求されるリスクを伴う。Auth0はGA版のAuth for MCPでDCRの代わりにClient ID Metadata Document(CIMD)によるクライアント登録を採用し、あわせてdownstream API呼び出し用のOn-Behalf-Of(OBO)トークン交換を用意した。エージェントの自律的な発見と、なりすまし対策のバランスをどう取るかが実装ごとに割れている。

Stytch Connected Apps
DCRで自己登録するエージェントをライフサイクル管理し、要求権限ごとに同意画面を出す
Remote MCPサーバーが自己登録したクライアントの一覧を追跡し、なりすまし対策と、ロールに基づく同意画面の出し分けを提供する。CloudflareのRemote MCP実装と組み合わせた事例として公開されている
📄 一次ソース
Auth0 Auth for MCP(GA)
DCRをCIMDに置き換え、OBOトークン交換を追加
2026年5月にGAとなったAuth0のAuth for MCPは、動的クライアント登録の代替としてClient ID Metadata Documentを採用し、エージェントが自分の身元を偽装しにくい形でMCPリソース識別子とOBOトークン交換をサポートする
📄 一次ソース
示唆: エージェントに未知のツールを動的に発見させる設計を選ぶなら、同意UIとなりすまし対策は後付けできない。DCRをそのまま使うか、CIMDのような代替クライアント登録に寄せるかは、エージェントの実行環境(一般ユーザー向けか、社内基盤か)で判断が変わる。
📐 パターン 3: エンタープライズは同意画面そのものを無くす方向に進んだ

2026年6月18日、MCPの拡張仕様Enterprise-Managed Authorization(EMA)が安定版になった。ユーザーがIdP経由でログインすると、MCPクライアントがIdPに署名付きのアイデンティティ表明JWTを要求し、IdPが管理者設定のポリシーを適用してこのJWTを発行、MCPサーバーは既存のSSO信頼関係と同じ仕組みでこれを検証してスコープ済みアクセストークンを発行する。ユーザー操作も同意画面も一切発生しない。

これは前段の「ツールごとに同意を取る」設計とは逆方向で、権限判断をエンドユーザーの同意からIdP管理者の事前ポリシーへ完全に移す発想だ。ローンチ時点の対応IdPはOktaのみで、Asana・Atlassian・Canva・Figma・Granola・Linear・Supabaseがサーバー側で対応、クライアント側はAnthropic(Claude・Claude Code・Cowork)とMicrosoft(VS Code)が対応した。IdPが単一障害点かつ単一の信頼の起点になる設計であり、対応IdPを増やせるかが普及の鍵になる。

MCP Enterprise-Managed Authorization(EMA)
IdP発行の署名付きJWTでゼロタッチのOAuthを実現
2026年6月18日に安定版となったMCP拡張仕様。ユーザーの同意画面を廃し、管理者がIdP側で設定したポリシーに基づいてMCPサーバーへのアクセスを一括付与する。ローンチ対応はOktaのみ、Anthropic・Microsoftがクライアント側で採用した
📄 一次ソース
示唆: 社内向けに閉じたMCPサーバー群を配るならEMA相当のIdP委任モデルを検討する価値がある。逆に不特定多数のエンドユーザーに公開するMCPサーバーでは、同意画面を無くす設計はまだ選択肢にならない。対応IdPが少ない今は、EMAとユーザー同意ベースの両方を実装できる抽象化を挟んでおくのが安全だ。
✍️ 編集後記 この3つの実装が示すのは、「認可をどこに置くか」という設計判断がMCPの成熟とともにレイヤーごとに専門化してきたということだ。ツール単位のスコープはアプリ側のロジックで、動的発見への対応はIdPやAuth基盤の役割へ、エンタープライズ配布は仕様レベルのIdP委任へと、判断の置き場所が徐々に上のレイヤーへ移動している。自作のMCPサーバーを設計するなら、この3層のどこまでを自前で持ち、どこから既製の認可基盤に任せるかを最初に決めておくべきだ。
🔗 今号の動向ピックアップ
📚 過去号
2026-09-15
エージェント実行基盤のマネージド化 — 3社が同時に「実行環境を貸す側」に回ったOpenAIが9月10日、Codexハーネスをagents/environments/sessions/eventsの4プリミティブに集約した Agents API を公開ベータで公開。基盤自体の追加課金はなくトークン・ツール実費のみ。
2026-09-12
コンテキストは会話ログではない — Working Context / Session / Memory / Artifacts への分離が実装標準になったGoogle ADKは2026年9月、コンテキストを Working Context・Session・Memory・Artifacts の4層に分離し、閾値到達で非同期に要約するcompactionを実装したと公式ブログで説明した。
2026-09-10
Agent Skills という第3のレイヤー — プロンプトでもRAGでもなく「必要になるまで読まない」設計Agent Skillsは「メタデータ(~100トークン)→本文(<5000トークン推奨)→付随ファイル」の3段階でコンテキストに読み込む、プログレッシブディスクロージャー設計。
2026-09-08
エージェント評価の再設計 — テキスト一致から状態検証、そして「修正がテストになる」仕組みへAnthropicはテキスト一致の判定から、環境の状態が実際に変わったかを見る outcome/state チェックへの転換を公式に推奨している。
2026-09-03
長時間稼働エージェントの状態管理 — 「会話の保存」から「プロセスの永続化」へGoogle ADKやMastraは、ツール呼び出しなどステップの境界ごとに実行状態をシリアライズして外部ストレージに書き込み、コンテナが落ちても直前のステップから再開できる設計に収束している。
2026-09-01
コードレビューエージェントの設計 — 差別化は検出率ではなく、文脈の取り方と『直すところまで』の範囲に移ったGitHub Copilot・Qodo・Cursor Bugbot・Cloudflareの内製ツールが、diff単体の解析から脱却し、リポジトリ全体・PR履歴・過去の指摘への反応まで動的に文脈を取りに行く設計へ収束している
2026-08-29
構造化出力は「お願い」から「強制」へ — 3社がグラマー制約デコーディングで足並みを揃えた2026年OpenAI・Anthropic・Google の主要3社が、JSON Schema をトークン生成レベルで強制する「グラマー制約デコーディング」に共通で対応した
2026-08-27
マルチエージェント協調 — 割っていいのは「コンテキストの切れ目」だけAnthropic は Research 機能で並列サブエージェントを使い内部評価で90.2%の性能改善を報告するが、トークン消費は通常の約15倍になるとも明記している。
2026-08-25
エージェントのメモリ設計 — 生ログでも単一要約でもなく、書き換え可能な単位に分解するClaude は2026年7月、記憶を単一のローリング要約から個別の書き換え可能なエントリへ移行。ChatGPT は非同期の「Dreaming」処理で古い事実を時制ごと書き換える。
2026-08-22
プロンプトキャッシュはコスト最適化ではない — 「プレフィックス固定」というアーキテクチャ制約キャッシュ命中率はもはや副次指標ではなく、Manus はこれを「本番エージェントで最重要のメトリック」と明言している。
2026-08-20
接続ツールが増えるほど遅くなる問題 — コード実行と検索遅延ロードの2つの答えAnthropicは公式エンジニアリングブログで、MCPツールをコードAPIとして提示しファイルシステム越しにオンデマンドで読み込ませる方式により、あるタスクのトークン消費を150,000から2,000(98.7%減)に削減したと報告した
2026-08-15
エージェントの評価・観測性 — 「最終出力の一致」から「軌跡(トラジェクトリ)の妥当性」へAnthropic は Tasks/Graders/Transcripts の三要素でエージェント評価を構造化し、1回でも成功する確率 pass@k と毎回成功する確率 pass^k を分けて計測する運用を提示した。
2026-08-13
モデルルーティング — 1モデルに全部背負わせない設計が標準になったVercel AI GatewayやGitHub Copilot Autoは、ヒューリスティック分類→難易度ティア判定→プロバイダ違いのフォールバック、という二段構成のタスク別ルーティングをすでに標準実装にしている。
2026-08-11
コンテキスト圧縮はどこで行うべきか — API・モデル訓練・ハーネス、3層に割れた実装場所Anthropic は compaction をサーバーサイド API のオプションとして実装し、モデル本体は変更していない
2026-08-08
エージェントのコード実行基盤 — サンドボックスは「重い専用マシン」と「軽いアイソレート」に分かれ始めたCloudflare Sandboxes と Vercel Sandbox はどちらも「持続する専用マシン」型サンドボックスをGA化し、スナップショット復元でコールドブート30秒を2秒程度まで縮めた。
2026-08-06
RAG 構成パターンの現在地 — 二段構成の次は、検索そのものをエージェントに埋め込むPerplexity は Vespa 上で lexical・embedding のハイブリッド検索から cross-encoder rerank へ絞り込む多段構成を採り、Databricks は同じ構成を単一パラメータで追加できる機能として一般化した。
2026-08-04
ワークフロー型 vs エージェント型 — 複雑さを足す前に何を確かめるかAnthropic は「経路を誰が決めるか」で workflow と agent を定義し、単純な方から試すべきだと明言している。
2026-08-01
コンテキストエンジニアリング — 「何を見せるか」ではなく「何を見せないか」を設計する事前に全部読み込むのではなく、ファイルパスやURLなど軽量な参照を渡して実行時に取得する「Just-in-Time retrieval」がCursorやAnthropicの標準手法になった。
2026-07-30
マルチエージェント協調 — 「書き込みを一本化する」が唯一の合意点になった理由Cognition は2025年、複数エージェントの並行書き込みが矛盾した判断を生むとして「マルチエージェントを作るな」と主張したが、2026年4月に態度を転換し「書き込みは一本化し、エージェントは行動ではなく知性を提供する」構成に絞って実例を公開した
2026-07-28
エージェントのメモリ設計 — 保存容量ではなく「書き込みの境界線」を設計するAnthropic は Claude Managed Agents の記憶をファイルとして保存し、監査ログ・ロールバック・スコープ別パーミッションを標準機能として public beta で提供している
2026-W30
エージェントの評価・観測性 — 「良さそう」を数値にする前に何を測らないかを決めるAnthropic は Claude Code の品質劣化が6週間、内部の eval・コードレビュー・単体テストをすべてすり抜けていたと自ら公表し、変更ごとの広範な eval とソーク期間の導入を表明した