代理框架與安全
Forge 0.18.1、MCPにユーザー単位のOAuthを導入、ツール呼び出しは認可完了を待って再開可能に
オープンソースのエージェント実行環境Forgeは、MCP接続と認証情報をユーザーごとに分離し、OAuth 2.1のメタデータディスカバリーと動的クライアント登録を自動化できるようになった。新版では、きめ細かなアウトバウンド制御と承認監査も追加されたが、現時点のMCPサポートは依然として主にHTTPトランスポートに限られる。

Apache 2.0ライセンスのエージェント実行環境Forgeは8月20日、バージョン0.18.1をリリースした。主眼は、複数人が同じエージェントを共有する際、MCPツールが共有サービスアカウントや長期有効な認証情報を引き継ぎやすい問題の解消にある。新しい設定`auth.type: user`は、リクエストしたユーザーごとに独立したMCP接続を作成し、ルーティングする。呼び出し時にまだ認可が得られていない場合、実行環境はジョブをauth-required gateで一時停止し、ユーザーがconsentを完了した後、`POST /mcp/consent`によって再開する。即座に失敗させたり、エージェント自身にtokenの処理を求めたりすることはない。このフローはプラットフォームホスト型とスタンドアロンモードの両方で利用でき、Slack Socket Modeでは新たなインバウンドwebhookを公開せずに、ダイレクトメッセージで接続プロンプトを送信できる。
OAuthについては、RFC 9728のprotected-resource metadata、RFC 8414のauthorization-server metadataを順に取得し、初回の`forge mcp login`時にRFC 7591を使用してクライアントを動的登録する。ユーザー委任に加えて、Forgeは`client_credentials`もサポートし、エージェントが自身のprincipalとしてマシン間処理を実行できる。同じフローの中で、プラットフォームIDを使って読み取り、個人IDを使って書き込むことも可能だ。ユーザー単位の接続プール、委任tokenのTTL上限、organizationおよびworkspace header、さらにinvocation単位でMCP、アウトバウンドプロキシ、subprocessの監査上の帰属を記録する仕組みにより、運用者は「誰がどのエージェントに何を実行する権限を与えたのか」を把握しやすくなる。
0.18.1ではセキュリティ境界も拡張された。SOCKS5によるraw TCPのアウトバウンド通信はポート単位でallowlistに登録でき、`allowed_private_cidrs`では必要なプライベートネットワークだけを許可できる。機密性の高いツールにはfail-closed方式の承認者リストを設定でき、organizationからコマンドdenylistを配布することも可能だ。開発者体験の面では、`forge try`によりビルド不要のデモエージェントを直接作成できる。`forge skills import`は、スクリプト、リファレンスファイル、`requirements.txt`を含むスキルフォルダーをエージェントへ変換できる。モデル側には、オプションとしてOpenAI Responses API providerが追加された。
これらの機能はいずれもopt-inで、公式によればアップグレード自体には後方互換性がある。ただし、プロジェクトはまだ第三者によるセキュリティ監査や負荷ベンチマークを提供しておらず、MCPドキュメントでもstdio serverは未サポートと明記されている。多数のローカルMCPツールでは、引き続き追加のブリッジが必要になる。今後は、企業向けIdP、認可の取り消し、マルチテナント環境の負荷において、動的登録が実際にどのように機能するかを注視すべきだ。