みなさんこんにちは。エンジニアの竹田です。
6月にAgentforce3の一部として、AgentforceのMCP対応が発表されました。 MCPはAIが他のシステムとやり取りするための標準(今のところ)プロトコルであり、AgentforceがMCPで色んなシステムと繋がったら面白いなと夢を膨らませたものでした。
ただ... 2025年9月17日現在。AgentforceのMCP対応はまだGAされておりません。 Winter'26 のRelease Notesにもないみたい。悲しい...
そこで、AgentforceのMCP対応を心待ちにしながら、弊社内でMCPサーバを独自で構築したときの知見を元にMCPで課題になり得ることを洗い出して、AgentforceのMCP対応がされた日に確認すべき機能チェックポイントを考えてみましょう。
このチェックポイントをしっかり理解すれば、MCPそのものの理解も深まるし、AgentforceとMCPサーバを組み合わせて使うときのヒントにもなるはず。
■MCPサーバの形態
最初に検討しなければいけないのは、MCPサーバの形態が2種類あるということです。 つまりローカルMCPサーバと、リモートMCPサーバです。
サーバなのにローカルというのは、ちょっと不思議な気持ちになるかもしれませんが、ここでのローカルというのは、MCPクライアントと同じコンピュータ上で動作するということです。
今のところ、各種サービスのMCPサーバの提供形式としてはローカルMCPサーバのほうが多いようですね。 チケット管理サービスのBacklogはローカルMCPサーバのみ、githubは両方、AtlassianはリモートMCPサーバを提供しています。
さて、Agentforceですが、ローカルMCPサーバとリモートMCPサーバのどちらに対応するのでしょうか?もちろん両方となってほしいところです。 Agentforceがローカル/リモートMCPサーバに対応したとすると、おそらくこんな構成になるのではないでしょうか?
さてここまでは素直な議論なのですが、ここからMCPサーバというものをもうちょっとよく考えてくると疑問が沸いてきます。
■ローカルMCPサーバのインストール
2種類のMCPサーバの形態のうち、リモートのほうはなんとなく自然な構成な気がします。 一方、ローカルのほうは1つのコンピュータ上でMCPクライアントもMCPサーバも両方動くわけでちょっと不思議な気がしますね。
Agentforceの場合にはさらに不思議さが増します。 何故なら、ローカルMCPサーバはMCPクライアントと同じ場所にインストールして使うものだからです。
たとえばBacklogのローカルMCPサーバだと、MCPサーバがdockerかnodeの形式で配布されていいて、MCPクライアントと同じコンピュータ上にインストールして動かすことになります。
同じように考えると、Agentforceの場合にはAgentforceと同じコンピュータ(Hyperforce上の仮想マシン??)にローカルMCPサーバをインストールするということになりますね。おそらく。
Salesforce自体は、1つのマシン(インスタンス)上にアプリケーションレベルで区画を分けてマルチテナントにするアーキテクチャだったはずで、そう考えるとローカルMCPサーバをインストールするというところはどのような構成になるのでしょうか?技術的な難易度が高そうですね。
この辺り、AgentforceのMCP対応が完成したら、どの様な仕組みで実装したのかSalesforceの中の人にぜひ伺ってみたいところです。
■ローカルMCPサーバでの認証・認可
次に気になるのは認証・認可です。 ローカルMCPサーバだと、クレデンシャル情報MCPサーバの設定情報として登録し、そしてMCPサーバがそのクレデンシャルを使ってその先の対象システムにアクセスしにいくことになります。 たとえばBacklogローカルMCPサーバの場合だと、図のようにユーザのPC上でクレデンシャル(自分のAPIキー)を設定します。
こうすることでMCPクライアント-サーバはユーザの権限の範囲でその先の対象システム(この場合はBacklog)を使うことになり、権限のないデータの閲覧やシステム操作はできないということになります。
設定ファイル(またはそれに類するもの)にクレデンシャルを記載することになるところがセキュリティ的にはやや気になりますが、ローカルPC内に閉じているら大丈夫だろうというところでしょうか。
このクレデンシャル情報と、それを使った対象システムへの(セキュアな)アクセスについて、AgentforceのMCPの場合はどうなるのでしょうか? 単純にAgentforceからMCPサーバの先にある対象システムに常に管理者権限(つまり何でもできるスーパーユーザとして)でアクセスさせてOKというならいいのです。それならば、AgentforceのMCP設定でクレデンシャルを設定するような仕掛けにすればいいだけです。
問題は、Agentforceにアクセスするユーザに応じて、MCPサーバの先のシステムの権限を変えなければいけない場合です。 Agentforceにアクセスしてくるユーザに応じて、MCPサーバとその先のシステムへ渡すクレデンシャルを切り替える...それができればいいのですが、技術的には難しい設計が必要そうですね。
恐らくユーザがAgentforceと対話するときに、MCPを使う必要が出るときにはAgentforceがユーザに認証と許可を求めてクレデンシャルを入力してもらい、かつそれをローカルMCPサーバの設定に渡す...みたいな仕組みが必要になりそうです。
この辺りもAgentforceでどの様に対応するのか注目したいところです。
■リモートMCPサーバでの認証・認可
リモートMCPサーバの認証・認可の場合には、もう少し素直にできそうです。 MCPの仕様では、リモートMCPサーバの場合にはOAuth2.1を使うことが定められています。
この場合も問題になるのはAgentforceにアクセスしてくるユーザに応じて権限を切り替える場合です。
MCPサーバで接続したい対象システムが複数あり、それぞれにMCPサーバがあり、またそれぞれIdPが異なる、なんてこともあるわけで..
その場合、Agentforceと対話しながら必要に応じてブラウザで認証が促されたりするということになるのだろうか?? この辺り気持ちよく認証・認可ができるといいのですが。
というわけで、技術的にはAgentforceのMCP対応は結構難しいところもありそうです。 その課題解決のためにGAが遅れている...なんてことがもしかしてあるのかもしれないですが、是非ともMCPサーバ対応を一日も早く完成させてほしいところ。
みなさん期待して待ちましょう。