Salesforce Hosted MCPサーバー
Salesforce Hosted MCPサーバーがGAになったということで、Claudeから使えるか試してみる。
https://github.com/forcedotcom/mcp-hosted
(なお、大体のところはwikiを見ながら進めていけるので以下もご参考に。)
https://github.com/forcedotcom/mcp-hosted/wiki
主な作業としてはこんなところ
- 外部クライアントアプリケーションを作成
- MCPサーバーを有効化
- MCPクライアントから接続して試行
※以下、Salesforce環境はDeveloper Editionを利用してます。
では早速↓
1. 外部クライアントアプリケーションを作成
セットアップ
> アプリケーション
> 外部クライアントアプリケーション
> 外部クライアントアプリケーションマネージャー
から、新規外部クライアントアプリケーションを作成する。
基本情報
アプリケーション名、API参照名などいつも通り好きに指定する。
API (OAuth設定の有効化)
OAuthを有効化したのち、「アプリケーション設定」と「セキュリティ」を変更する。
- アプリケーション設定
- コールバックURL: 今回はClaudeで試すので
https://claude.ai/api/mcp/auth_callbackを入力する。 - OAuth範囲: 以下を選択する。
- いつでも要求を実行 (refresh_token, offline_access)
- SalesforceでホストされているMCPサーバーにアクセス (mcp_api)
- コールバックURL: 今回はClaudeで試すので

- セキュリティ
- 以下2つだけチェックを入れた状態にする。
- 指名ユーザーの JSON Web トークン (JWT) ベースのアクセストークンを発行
- サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求
- (他のチェックは外す)
- 以下2つだけチェックを入れた状態にする。

作成した後は、「コンシューマー鍵と秘密」を取得しておく(後で使う)。
2. MCPサーバーを有効化
セットアップ
> インテグレーション
> APIカタログ
> MCPサーバー
で、MCPサーバーの設定画面を開く。標準で8個のMCPサーバーが用意されている。

この中で、試してみたいものを有効化しておく。
今回は sobject-all を試してみる。(「有効化」ボタンから有効化する)

3. Claudeから連携
(Claude Desktop でお試し)
カスタマイズ > コネクタ > カスタムコネクタを追加

- 名前: 自分で識別できれば何でも
- リモートMCPサーバーURL: SalesforceのMCPサーバーの詳細画面にあったServer URLを転記
- 詳細設定
- OAuth Client ID: 外部クライアントアプリケーションのコンシューマー鍵
- OAuthクライアントシークレット: 外部クライアントアプリケーションのコンシューマーの秘密
追加したのちに、作成されたコネクタを連携させる。
この時、接続先以外のSalesforce環境からはログアウトしておく。(でないと、間違った組織に接続しようとしてエラーになったりするので注意)

正常に接続できると、設定画面が表示される。(ツールの権限は「承認が必要」がデフォルトなので適宜変更しておく)

以上で完了!
Claudeから試してみる
では見せてもらおうか、と。

他にも入れたものもあるけど、ちゃんとSalesforce(sobject-all)も含まれていることを確認できる。

取引先でも作らせてみると、途中何かエラーもあったみたいだけれども、作成してくれた。(ただ、待ち時間が長いのが気になる...数分待った気がする)

csvファイルを読み込ませてみる。これもやや時間がかかった(5分くらい待った気がする)けれどもちゃんとインポートしてくれた。
ちなみに、実はこの前にインポート用のcsvファイルを作成させておいて、そのcsvファイルを編集して読み込ませてみた。
「Descriptionフィールドが問題だったようです。」が気になるところだけども、一応データを作成した。この問題は後でもう少し調べてみよう。

テスト用に作成したので名前とかホント適当。これもまた返ってくるまで4分近く待った。ナゾ。
実際には商談の売り上げ状況とか尋ねると勝手にグラフを作ってくれたりすると思う。
補足
Known Limitationsは、目を通しておいても良さげ。
https://github.com/forcedotcom/mcp-hosted/wiki/Known-Limitations
また、外部クライアントアプリケーションには適切なアクセス権をつけておくことをおすすめ。(本筋とはズレるので今回は割愛)
おわりに
Salesforce Hosted MCPサーバーは、どちらかといえばSalesforceにデータを入力・参照するユーザ向けと言える。(開発者向けには、Claude Code + sf cli の方が良いからね)
ただ、開発者側もどんなことができるのか把握するためにも、やはり試してみるのが一番である。(もしかしたら、面倒な要求も「あ、MCPサーバー入れたらすぐにできますよ?」みたいな回避?が可能かもしれない)
ぜひ一度試してみてください。
Claudeのモデルが良くなっていけば、取得したデータを元により深い、あるいはより興味深い考察を入れてくれたりするだろう。そういったところはマネージャ向け、経営者向け、という観点で様々な活用事例が世に出てきて欲しい。
Salesforce Hosted MCPサーバーに、さらにアレやコレやも追加して、Claudeでこんなことができるんだぜ?みたいな。
また、今回のようにデータ作成/更新も可能なMCPサーバーにすれば、Claudeからデータ入力することも可能になる...だろうと思う。
みんなが一度はお世話になったDataLoaderはまだまだ現役で頑張れると思うが、Claudeからデータ入力するケースもあるだろう。
DataLoaderのセットアップって意外に面倒だからね。
なお、Claudeを使ったのはマックスプランを会社支給されているためである。
とてもナイス。
改めて言うけれども、とてもナイス。