Salesforce Hosted MCPサーバー

Salesforce Hosted MCPサーバーがGAになったということで、Claudeから使えるか試してみる。
https://github.com/forcedotcom/mcp-hosted

(なお、大体のところはwikiを見ながら進めていけるので以下もご参考に。)
https://github.com/forcedotcom/mcp-hosted/wiki


主な作業としてはこんなところ

  1. 外部クライアントアプリケーションを作成
  2. MCPサーバーを有効化
  3. 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)
  • セキュリティ
    • 以下2つだけチェックを入れた状態にする。
      • 指名ユーザーの JSON Web トークン (JWT) ベースのアクセストークンを発行
      • サポートされる認証フローに Proof Key for Code Exchange (PKCE) 拡張を要求
    • (他のチェックは外す)

作成した後は、「コンシューマー鍵と秘密」を取得しておく(後で使う)。

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を使ったのはマックスプランを会社支給されているためである。
とてもナイス。
改めて言うけれども、とてもナイス。

Read more

heroku

Dancing with Heroku AppLink / 2

(ローカルアプリと組み合わせる...?) 構成の概要 Heroku AppLinkの活用例として、こんな構成を試してみた。 * 個別に作成したElectronアプリケーションがあって、そのアプリケーションはSalesforceのデータを参照したり、データを作成する。 * Electronアプリケーションに、Salesforceのアクセストークンを持たせてアクセスできるようにしたい。 * しかし、Electronアプリケーション内にSalesforceのアカウント情報を持たせたくないし、個別のログイン機能なんて作りたくない。 * Electronアプリケーションに渡す情報にはSalesforce外の情報もあり、その諸々の情報をまとめるためにHerokuアプリケーションを設置した。 * (Apexコードを書くのがやや面倒...) といったあたりで、上のような構成を試してみた。 Heroku AppLinkの活用ポイント など ※主に②で大活躍するので、そこに絞った話をしてみよう。 まず、Heroku側の実装としては以下を前提として、Node.jsアプリケ

By Takahiro Yonei

heroku

Dancing with Heroku AppLink / 1

(まずはよくありそうなパターンでも) 構成の概要 Heroku AppLinkの活用例として、こんな構成を試しているところ。 * HerokuとSalesforceを組み合わせて上のようなWebシステムを構築してる。 * HerokuはFrontend(Next.js)とBackend(Medusa.js)を使ってアプリケーションを作成している。 * Salesforceで作成したデータをHeroku Backendに連携する。BackendのAPIを外部サービスとしてSalesforceに登録しておいて、SalesforceからはFlowを使って連携する。 * Fronendから送信されたデータは、Backendを介してSalesforceに連携する。Heroku AppLinkを使ってSalesforceへのアクセストークンを取得してSalesforceにデータを書き込む。 構成としては、よくありそうなパターンではなかろうか。 しかし、Heroku BackendにAppLinkを組み込むことで、BackendとSalesforceの実装工数を削減で

By Takahiro Yonei

Dancing with Heroku vibes / 2

heroku vibesの画面操作を見るに、プロンプトを入力しつつ1つのherokuアプリを自動生成していくように見える。 1つのアプリで完結するようなものであれば、それでも良さそうに思える。 しかし、複数のherokuアプリを組み合わせてシステムを構築することもあるので、その場合はどうサポートしてくれるだろうか? プログラマの視点からすると、アプリの自動生成については...あまり優位性が見出せない。 pipelineを使いたいとかgithubとの連携とかあるので、自分でやった方が良いかなぁと思う。その辺りはむしろheroku MCPサーバの方がやりやすいかもしれない。 ボンヤリとしたアイディアから、構成や使用するadd onをいい感じに提案してくれる壁打ち相手として使えそうだろうか?と思う。 プログラマでない人からすれば、herokuアプリを自動生成してくれるのは助かる場面はありそうだ。 ただの想像だけど、salesforceを拡張する機能としてheroku applinkを使ったherokuアプリを自動生成する...みたいな場面であれば、プログラマでない人には有益かもしれない

By Takahiro Yonei