2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Desktop x Salesforce公式MCPによる業務アシスタントのサンプル

Last updated at Posted at 2025-12-01

はじめに

この記事ではSalesforce Hosted MCP Servers Are in Beta Todayで紹介されていたSalesforce Hosted MCP Servers (Beta)を利用して顧客情報を分析したり状況確認を行なってくれる業務アシスタントを作ってみた話を書きます。

この記事の対象読者:

  • Salesforceで顧客データを管理している方
  • AIエージェントをSalesforceに接続して業務効率化を実現したい方、など

技術的な前提知識:

  • Salesforceの基本的な操作(設定画面の操作程度)
  • 特別なプログラミング知識は不要です

この記事で試すこと

この記事では以下の内容を実践します:

  1. Hosted MCP Serversの基本的なセットアップと動作確認
  2. ClaudeのCustom Skillsを活用した業務アシスタントの構築
  3. サンプル顧客データを使った体験レコメンデーション

ClaudeにSalesforceの情報を送ることになるため、業務で使っているSalesforceをつなぐ場合には社内の情報セキュリティを確認しておくようにお願いします。

読了時間: 約15分

Salesforce公式MCPの種類

まずはじめに、Agentforce Developer GuideのMCP Solutionsを確認してSalesforceが提供しているMCPサーバの全体像を確認しておきましょう。

image.png

DX MCPは開発作業を支援するMCP、Hostedの方は他のAIエージェントなどと協業した利用を想定した棲み分けになっています。例えばData 360(旧Data CloudでSalesforceの提供するCDP)へのクエリを実行できるようです。今回紹介するHosted MCP ServersはリモートMCPサーバなので開発者以外でも宣言的な設定で利用可能になる点も扱いやすいのではないかと思います。

Hosted MCP Servers

Hosted MCPは記事の日付から10月頃に公開されたものの様です。
テストで利用するMCP ClientはClaude Desktopを利用しました。
githubページにはClaudeやPostman、Cursorなどの設定例が記載されておりましたが、mcp-remoteを利用することで他のクライアントからも接続できるものと思われます。

ClaudeDesktopのバージョン
Claude 1.0.1217 (0cb4a3) 2025-11-24T06:07:45.000Z

Setup

GitHubのWikiに丁寧に記載してくれているので基本的にはこの通りに進めていくだけで設定までは完了すると思いますが、この記事ではキャプチャも載せておきますのでご参考ください。

MCPの有効化

Salesforceの設定>ユーザーインターフェース>ユーザーインターフェースから以下をチェックしてください。
image.png

外部クライアントアプリケーションの作成

従来の接続アプリケーションではなく、新規外部クライアントアプリケーションというボタンから外部クライアントアプリケーションを作成してください。

image.png

設定値

項目 設定内容
コールバックURL https://claude.ai/api/mcp/auth_callback
OAuth範囲 API を使用してユーザーデータを管理 (api)
いつでも要求を実行 (refresh_token, offline_access)
Salesforce API プラットフォームにアクセス (sfap_api)
Einstein GPT サービスにアクセス (einstein_gpt_api)
セキュリティ サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求
指名ユーザーの JSON Web トークン (JWT) ベースのアクセストークンを発行

セキュリティについては選択肢以外はOFFにするようにとのことでした。
image.png

対象の組織にログイン

直近でログインしている組織に対してアクセスを試みるので、他の組織からはログアウトしておくと良いかと思います。
sf org open

MCP Client側の設定

設定>コネクタ>カスタムコネクタを追加から入力画面を開きます。
image.png

名前、リモートURL、コンシューマーキーを入力してください。
※画像ではapi-contextサーバですが、後続の確認手順では platform/sobject-all サーバを利用しています

image.png

追加を押すと成功メッセージで確認できます。
image.png

リモートURLはAvailable Tools and Serversに色々とあるので試したい SERVER-NAME を選択してみてください。SandboxやDeveloper Editionによってエンドポイントが異なるのでご注意ください。

For a Developer org, use https://api.salesforce.com/platform/mcp/v1-beta.2/<SERVER-NAME>.
For scratch or sandbox orgs, use https://api.salesforce.com/platform/mcp/v1-beta.2/sandbox/<SERVER-NAME>.

詳細は https://github.com/forcedotcom/mcp-hosted/wiki/Configure-Your-MCP-Client にてご確認ください。

確認はしていませんが、複数の組織で利用したい場合はそれぞれ外部アプリケーションとコネクタを作っておくと使い勝手が良いかもしれないです。

Test Your MCP Client

以上で連携は完了です。複雑なコマンドとか引数とか設定しなくて良いので簡単ですね。

動作確認用の環境について

テストにはCoral Cloudという架空のリゾート施設の体験や予約状況を管理するアプリケーションがインストールされている環境を使っていきます。

データモデル
/platform/sobject-allは右側のSalesforceの情報を取得することができるツールとなっています。
image.png

まずはシンプルな問い合わせから

まずは単純な問い合わせを行ってみました。

image.png

問題なくHosted MCP Serversを利用できているようです!

より複雑な問い合わせでの課題

それではより複雑なオブジェクトのリレーションを含む調査が必要な問い合わせを行ってみました。
プロンプトに入力後、DescribeGlobalで全体のデータモデルを取得しようとしたみたいですが、データが大きすぎて処理することが出来ませんでした。
※GlobalDescribeは全体のモデルを取得するものなので通常の利用はあまりイメージがつきませんでした。

image.png

そこで問い合わせ内容の回答に必要なデータモデルの概要を会話の中で与えてみたところ、なんとか取得することができました。

image.png

ただし、毎回細かい指示を行うのは現実的ではありません。
そこで次のセクションでは、Custom Skillsを使ってこの課題を解決していきたいと思います。

Custom Skillsの活用

課題の整理
リモートのMCPサーバからSalesforceにデータを取得することは可能でしたが、
実際のビジネス利用では以下の課題があります:

  • AIエージェントがデータモデルの知識を持っていない
  • 毎回Describeツールで確認する必要がある
  • 複雑な業務ワークフローを実行できない

解決策: Custom Skills
Custom Skillsを利用することで、
データモデルの定義や業務ワークフローを予め組み込むことができます。

Claude Desktopに予め用意されている skill-creator というスキルを利用することでインタラクティブにSkillsを作成することが出来ます。

Skillsの内部構造

Skillsの構造は以下となります。
image.png

referencesの方に、data_mode.mdとしてデータ構造を置いておきます。
以下の様なイメージです。
image.png

Skillsで高度な加工が必要な場合はコードを予め定義しておくこともできます。

今回は以下の主要なワークフローを組み込んでみました。
Experience Recommendations は既存のこれまでの予約状況から体験タイプ、価格、レビュー内容を総合的に見ながらスコアリングを行うことでマッチ度を計算するため、Pythonによる分析コードを用意しています。

  1. Guest Booking History - 顧客の予約履歴を確認
  2. Experience Recommendations - 既存の予約から好みを分析し、体験をレコメンド
  3. Available Experiences by Date - 日付指定で利用可能な体験を検索
  4. Create Booking - 新規予約の作成

AIがこれらの中から適切なワークフローを選択し、
必要に応じてMCP Server経由でSalesforceからデータを取得して分析します。

SkillsからMCPを利用してみる

この中からExperience Recommendationsというワークフローを利用して、既存の予約状況からとある顧客の好みを分析→類似する体験をピックアップしてお勧めしてみたいと思います。

今回はサンプルデータで Rose Gonzalez さんという顧客に提案していきます。

データの取得の様子です。最初はフィールド名の誤りでエラーが発生しましたが、その後、Skillsのリソースを参照して自動的に修正しています。この辺りはSkill.mdのチューニングで解消出来るかと思います。

image.png

既存の予約データを取得したらそのまま分析スクリプトに渡して分析を開始してくれます。
image.png

この様な形でレポーティングしてくれました :tada::tada::tada:
1回の入力でここまでアシストしてくれるのは感動ですね!!

image.png

まとめ

AI関連の情報について、
開発者という立場上コーディングへの活用にフォーカスしがちだったのですが、
ビジネス活用に対する期待感がこれまで以上に高くなりました。

ユーザの意図を汲んでAIが必要な機能(今回でいうとSkill)に接続してくれる点が従来のアプリには実現できなかった点で、大きくユーザの体験を変える可能性があると感じます。

例えば、
「おすすめを教えて」という曖昧な問いかけから、AIが

  • 既存の予約履歴を分析する必要があると判断
  • 適切な機能(Experience Recommendations)を選択
  • データ取得→分析→レポートまでを一気通貫で実行

といった流れです。

それと同時に事業や組織として "何を重要視するか” といったコアを抑えておく事が本質的な価値に繋がっていくと再認識できました。
今回でいうと、Experience Recommendations(既存の予約から好みを分析し、体験をレコメンド)という機能ではどのユーザ属性をスコアリングの計算に含めると良いか?といった事を試行錯誤したり、予約日は平日がいいのか週末が良いのか?といった後工程への接続や次回提案も意識しながら組み込む事でUX向上につながりそうです。

今後もドメインの理解を深めながら試行錯誤していきたいと思います!
来年もみなさまにとって素晴らしい年になりますように!! :congratulations:

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?