Alternative Architecture DOJO

オルターブースのクラウドネイティブ特化型ブログです。

Copilot StudioでSalesforce Headless 360のMCPサーバーを利用する

こんにちは、MLBお兄さんこと松村です。
福岡は梅雨明け前からセミが泣き始め、いよいよ夏が近づいてきた様子がします。


当社では商談管理ツールとして Salesforce を利用しています。
また、Salesforce AppExchange にも登録しており、Salesforce に関する支援も行っております。

www.alterbooth.com

Salesforce には Agentforce という AI プラットフォームがありますが、個人的には Salesforce Headless 360 という Salesforce 上のデータを AI 活用するためのプラットフォームの方が興味深いです。
Salesforce Headless 360 では MCP サーバーが提供されており、LLM のモデルと組み合わせて、自然言語で Salesforce のデータを活用することができます。

www.salesforce.com

今回は Salesforce Headless 360 の MCP サーバーのセットアップ手順および、Microsoft Copilot Studio からの接続方法について紹介します。


MCP サーバーのセットアップ

Salesforce Headless 360 の MCP サーバーのセットアップ手順は、Salesforce の稲葉さんが公開されている記事がとても分かりやすいので紹介します。

developer.salesforce.com

公式ドキュメントも。

developer.salesforce.com

外部クライアントアプリケーションの登録

まず Salesforce 外のツールから接続できるよう、外部クライアントアプリケーションを登録します。
基本は上記の記事に従えば問題ありませんが、注意点としては以下の通りです。

💡セキュリティ設定の PKCE 要求をオフにする
Salesforce Headless 360 MCP サーバーのドキュメントでは、 「サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求」 をオンにすると記載されています。
しかし Copilot Studio では PKCE をサポートしていないためオフにする必要があります。(オンでは接続できません)

また、 「指名ユーザーの JSON Web トークン (JWT) ベースのアクセストークンを発行」 のチェックはオンにする必要があります。

💡コールバック URL は、Microsoft Copilot Studio 側で発行される URL を使用する
最初はダミーで問題ありません。後ほど Copilot Studio で発行される URL を設定します。
例えば Postman で接続確認を行う場合は、https://oauth.pstmn.io/v1/callback の設定が必要です。

💡コンシューマーキーを控えておく
同じ OAuth 設定の欄に 「コンシューマー鍵と秘密」 というボタンがあります。
これを押し、アカウント認証を行うと、外部クライアントアプリケーションに接続するための公開鍵と秘密鍵を入手できます。

MCP サーバーの有効化

次に MCP サーバーを有効化します。Salesforce が提供する MCP サーバーはいくつかありますが、最初は無効化されています。

今回は以下の2つの MCP サーバーを有効にし、試しました。
それぞれの MCP サーバーのページには、サーバーの URL が表示されているため控えておきます。

# MCP サーバー名 データ参照 データ更新
1 sobject-reads 不可
2 sobject-mutations

MCP サーバーの詳細についてはドキュメントを参照してください。

developer.salesforce.com

Copilot Studio からの接続

有効にした Salesforce Headless 360 MCP サーバーに、Copilot Studio のエージェントから接続します。

MCP サーバーの登録

Copilot Studio のツール画面に進み、新しいツールとして MCP サーバーを登録します。

項目 設定値
サーバー名 任意の名前
サーバーの記述 任意の説明
サーバー URL Salesforce Headless 360 MCP サーバーの URL
認証 OAuth 2.0
種類 手動
クライアント ID 外部クライアントアプリケーションのコンシューマー公開鍵
クライアントシークレット 外部クライアントアプリケーションのコンシューマー秘密鍵
認証 URL 本番環境:https://login.salesforce.com/services/oauth2/authorize
サンドボックス環境:https://test.salesforce.com/services/oauth2/authorize
トークン URL テンプレート 本番環境:https://login.salesforce.com/services/oauth2/token
サンドボックス環境:https://test.salesforce.com/services/oauth2/token
更新 URL 同上
スコープ mcp_api refresh_token

※ Postman から MCP サーバーに接続するためのドキュメントを参考にしてください。
developer.salesforce.com

上記のように設定するとカスタムコネクタが作成され、 リダイレクト URL が発行されます。
この URL を Salesforce 外部クライアントアプリケーションのコールバック URL に設定します。

learn.microsoft.com

エージェントの作成

最後に MCP サーバー経由で Salesforce のデータを利用するエージェントを作成します。
エージェントのツールとして、作成した MCP サーバーを追加します。このときアクセス許可を求められるので、許可します。

learn.microsoft.com

正しく接続できると MCP サーバーのツール一覧が表示されます。使用するツールのみ許可しましょう。

エージェントのテスト

正しく構成できたことを確認するために、エージェントのテストを行いましょう。
Copilot Studio ではエージェントをテストするためのチャット欄があるため、ここで Salesforce のデータを参照する質問を投げてみます。


以上で Copilot Studio のエージェントから Salesforce のデータを扱えるようになりました。
Copilot Studio で作るということは、Microsoft 365 Copilot や Teams 上で利用できるエージェントを発行できるということです。ぜひ活用してみましょう。


サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com