ClaudeとSalesforceの連携方法 — Hosted MCPで接続する手順
ClaudeとSalesforceの連携は、Hosted MCP Serversを有効にしてカスタムコネクタで接続します。管理者の設定からClaude側の登録までの手順を示します。
ClaudeからSalesforceを操作する経路は2つある
ClaudeとSalesforceの連携は、Salesforce管理者がHosted MCP Serversを有効にし、Claudeにカスタムコネクタとして登録すれば完了します。流れは3段階です。MCPサーバーの有効化、External Client Appの作成、Claudeでのコネクタ追加の順に進めます。
SalesforceにClaudeをつなぐ方法は2つあります。1つは、Salesforce自身が提供するHosted MCP Serversを自分の組織で有効にする経路です。もう1つは、Salesforceが配布するプラグイン「Salesforce in Claude」を使う経路です。
本稿が手順を追うのは前者で、Salesforce管理者が作業する部分と、Claude側でカスタムコネクタを追加する部分に分かれます。Salesforce上のイベント管理アプリを扱うならBlackthorn Eventsの連携も選べます。
どちらの経路でも、Claudeは接続したユーザー本人のSalesforce権限で動きます。管理者アカウントに権限を集約する仕組みではありません。Salesforce側の説明では、MCPのツール呼び出しはオブジェクト単位のCRUD権限、項目レベルセキュリティ、レコードのシェアリングルールをそのまま受け継ぎます。Lightning画面やREST APIで実行できない操作は、MCP経由でも実行できません。
どちらの経路を選ぶか
Hosted MCP Servers + カスタムコネクタ
Salesforceの管理者がサーバーを有効化し、External Client Appを自分で作ります。Claude側は「Add custom connector」で手動登録します。使うサーバー(読み取り専用、更新可、削除まで可など)を自分で選べます。
Salesforce in Claude プラグイン
Salesforceがベータ参加を承認した組織向けで、最新のSales Cloud enterprise editionが使えることが条件に挙がっています。営業向けの37スキルとSalesforce・Slackのコネクタがまとまって入ります。Claude側の入口はOrganization settingsのPluginsとConnectorsです。
プラグイン側の詳しい中身はSalesforce in Claudeとはで扱っています。プラグインの管理者手順でも、Salesforce管理者がSalesforceのMCPサーバーを有効にしてConsumer Keyとシークレットを渡す流れは同じで、下の手順の前半がそのまま前提になります。
連携前に確認する前提条件
MCPサーバーの有効化とExternal Client Appの作成には、System Administrator相当の権限が要ります。営業担当者が自分のアカウントだけで完結する作業ではありません。先に社内のSalesforce管理者へ許可を取り、どのオブジェクトの読み書きを許すかを決めます。
課金条件も先に確かめます。Hosted MCP ServersはFlex Creditsを持つ顧客向けの機能で、サーバーの利用に応じて課金される場合があります。
もう一つの前提が組織のエディションです。接続に失敗したときの確認項目として、Salesforceのトラブルシューティングは「組織のエディションがAPIアクセスに対応していること」を挙げています。DeveloperやEnterprise、またはAPIアクセスを有効にしたProfessionalが例示されています。
External Client Appの登録先はSetupのExternal Client App Managerです。Connected Appsは使えません。MCPクライアントの接続にはConnected Appsが対応していないと、Salesforceの公式ドキュメントが明記しています。スクラッチ組織ではSetup UIから直接External Client Appを作れないため、開発者ハブ組織で作ってパッケージに入れ、対象のスクラッチ組織へインストールします。
SalesforceでMCPサーバーを有効化する
MCPサーバーは既定で無効です。有効化しない限り、認証が正しくてもClaudeは接続できません。
- SetupのQuick Findボックスで「MCP Servers」と入力し、API Catalog配下の「MCP Servers」を開きます
- 利用可能なサーバーの一覧を見て、チームが使うものだけをトグルでオンにします
有効にしてからサーバーが使えるようになるまで、最大2分かかります。
どのサーバーをオンにするかは、Claudeに何をさせたいかで決めます。Salesforceのリファレンスでは、SObject系サーバーが次のように分かれています。
SObjectサーバーの選び分け
platform/sobject-reads
読み取り専用です。質問への回答やレポート、洞察の抽出には読み取りで足りるため、更新のリスクを最初から消したいときの出発点になります。
SObject Mutations
作成と更新はできて、削除はできません。商談の更新やタスクの一括作成のような書き込みが要る場面向けです。
SObject Deletes
削除を中心にしたワークフロー向けです。
platform/sobject-all
標準・カスタムを問わず全オブジェクトに、作成・参照・更新・削除・検索・リレーション参照までそろったフル機能のサーバーです。
サーバーごとの絞り込みに加えて、管理者は特定のSOQLをNamed Queryとして公開し、エージェントに見せるデータの範囲を細く保つこともできます。Apex Invocable ActionsやApex REST、Flowを使えば、標準の権限では表現できない条件付きのアクセスもツールとして作れます。
External Client Appを作成してOAuth認証を設定する
MCPクライアントをSalesforceに登録する本体の作業です。Setupで「external client」を検索してExternal Client App Managerを開き、新規作成します。
基本情報を入れたら、API(Enable OAuth Settings)セクションでOAuthを有効にし、コールバックURLにClaude用の値を入力します。
https://claude.ai/api/mcp/auth_callbackOAuth Scopesには「Access MCP servers」(mcp_api)と「Perform requests at any time」(refresh_token)を含めます。Securityセクションでは「Issue JSON Web Token(JWT)-based access tokens for named users」を選び、Salesforceサポートへの問い合わせなしで変えられるほかのオプションはオフにします。
作成後、External Client Appが実際に使えるようになるまで最大30分かかります。Setupの設定画面のOAuth Settingsにある「Consumer Key and Secret」から、Claudeに入力するコンシューマーキーを控えます。
Claude側でカスタムコネクタを追加して接続する
Salesforceの準備が整ったら、ClaudeでSalesforceのMCPサーバーをコネクタとして登録します。Salesforceの案内では、この手順はClaude.aiとClaude Desktopが対象で、追加したコネクタはClaude Codeからも使えるとされています。
Claudeでの接続手順
- 1
カスタムコネクタの追加画面を開く
左サイドバーの「Customize」から「Connectors」を開き、「Add」を押して「Add custom connector」を選びます。
- 2
名前とサーバーURLを入れる
一覧に表示される名前を付け、サーバーURLを入力します。本番組織は
https://api.salesforce.com/platform/mcp/v1/<SERVER-NAME>、サンドボックスやスクラッチ組織はhttps://api.salesforce.com/platform/mcp/v1/sandbox/<SERVER-NAME>です。<SERVER-NAME>はplatform/sobject-allのような、有効化したサーバーの名前に置き換えます。入力したら「Continue」を押します。 - 3
自前のOAuthクライアントを指定する
「OAuth client」で「Use your own OAuth client」を選び、OAuth Client IDにExternal Client Appのコンシューマーキーを貼ります。これは公開識別子であってAPIキーやトークンではありません。OAuth Client Secretは、認可サーバーが求めない限り空欄のままにします。
- 4
Connectを押してSalesforceにログインする
作ったコネクタの横の「Connect」を押すと、External Client Appを作ったSalesforce組織へリダイレクトされます。ログイン済みならユーザー認証は省かれ、アクセストークンを受け取ってClaudeへ戻ります。成功したら「Configure」からツールごとの権限を調整できます。
動作確認は、Salesforceのレコードを対象にした質問をClaudeに投げるのが手っ取り早い方法です。sobject-readsのリファレンスには、「What are the top 10 opportunities by amount currently in the pipeline?」というプロンプト例が載っています。日本語で「パイプラインにある金額上位10件の商談を教えて」と尋ねて期待した件数と内容が返れば、OAuthからツール呼び出しまでつながっています。
接続がうまくいかないときの切り分け
Salesforceのトラブルシューティングは、症状を接続、認証、実行の3つに分けています。どの層で止まっているかを先に決めると、見直す場所が絞れます。
| 症状 | まず見る場所 | 根拠 |
|---|---|---|
| サーバーに届かない | まず見る場所URLが組織の種類に合っているか。有効化の反映を待ったか。sobject-allなら通るか | 根拠接続失敗のページ |
| サインインが完了しない | まず見る場所コールバックURLがExternal Client Appの登録値と完全に一致しているか | 根拠認証エラーのページ |
| ツール実行が失敗する | まず見る場所ユーザーに必要な権限があるか。対象機能が組織で有効か。対象データにアクセスできるか | 根拠実行失敗のページ |
接続失敗の切り分けでSalesforceが勧める手順は具体的です。まずsobject-allに接続してみます。通れば、元のサーバー名か設定が誤っている可能性が高いです。通らなければ、同じマシンやネットワークからSalesforceのUIにログインできるかを確認します。
Postmanを使った切り分けも公式の手順に入っています。Postmanはツールを直接呼び出して、LLMの解釈を挟まない生のJSONを返します。認証、サーバー接続、ツール応答を先に確かめられるため、Salesforceは本格的なLLMクライアントをつなぐ前のテストに向くと説明しています。Postmanで通ってClaudeで通らない場合は、Claude側のコネクタ設定を疑う根拠になります。
同じExternal Client AppをClaude以外のクライアントにも使う場合は、コールバックURLの取り違えに注意が要ります。Claude用は上の1本で足りますが、Cursorはバージョンによってhttp://localhost:8787/callbackとcursor://anysphere.cursor-mcp/oauth/callbackの2種類が使われます。External Client Appのコールバック欄に複数入力できる場合は、両方を登録しておきます。
本番運用前に足しておきたいセキュリティ設定
Salesforceは、External Client Appの初期設定とは別に、本番投入前の追加強化策を独立した項目として並べています。どれも必須ではなく、組織の要件で選びます。
| 設定 | 効果 | 向くケース |
|---|---|---|
| Webサーバーフロー用シークレットの要求 | 効果クライアントIDに加えシークレットの提示を要求 | 向くケースWeb型のMCPクライアント。デスクトップアプリは、ベンダーが安全な保管を確認しない限り避ける |
| Permission Setによる事前認可 | 効果接続を許可するユーザーを絞り込む | 向くケース一部の部署だけにMCP接続を許可したい場合 |
| IPアドレス制限 | 効果許可した範囲以外からの接続を拒否 | 向くケースMCPクライアントの接続元が固定・予測可能な場合 |
| リフレッシュトークンの短縮とローテーション | 効果トークン漏洩時の影響範囲を限定 | 向くケース既定では無期限。30日以内への短縮が推奨値 |
| シングルログアウトの有効化 | 効果Salesforceセッションの失効でMCPセッションも切断 | 向くケース退職者のアクセスを即座に止めたい場合 |
IPアドレス制限には落とし穴があります。MCPクライアントによっては接続元のIP範囲がSalesforceのallowlistの容量を超えるため、有効化の前にクライアントのベンダーへ確認するよう公式が注意しています。
Claude側の事情もあります。Claudeのカスタムコネクタでは、OAuth Client Secretは空欄が既定です。一方でプラグイン経路の管理者手順は、Consumer Keyに加えてConsumer Secretを入力する形を取っています。「Webサーバーフロー用シークレットの要求」を有効にした組織では、カスタムコネクタでも「認可サーバーが求める場合」に当たるため、OAuth Client Secretの入力が必要になります。表の「デスクトップアプリは避ける」は、カスタムコネクタの対象であるClaude Desktopにも関わる条件です。
監査の面では、MCP経由の操作はSalesforceの標準APIログにユーザー名つきで残ります。MCPのトラフィックだけを抜き出すには、API_CLIENT_CATEGORY = SALESFORCE_HOSTED_MCPで絞ります。
全社展開の前に知っておく2つの制約
Claudeの管理画面には、Team・Enterpriseプラン向けにIDプロバイダー経由でコネクタを組織全体へ一括認可する「Enterprise-managed auth」があります。ただしサポート記事の対象コネクタ一覧はAsana、Atlassian、Canva、Datadog、Figma、Granola、Linear、Notion、Slack、Supabaseで、Salesforceは含まれていません。対応するIDプロバイダーも、この機能の立ち上げ時点ではOktaだけと書かれています。
Salesforce側にも同じ方向の制約があります。認証は認可コードフローに限られ、ブラウザーでのサインインが必要です。サービスアカウントやマシン間フローは無く、動的クライアント登録もサポートされません。すべてのOAuthフローでPKCEが必須という条件も付いています。管理者がExternal Client Appを明示的に作ることが、接続できるアプリを統制する仕組みになっています。
全社に広げるときは、メンバーが一人ずつSalesforceにサインインすることを前提にします。接続できるユーザーを絞りたい場合は、前節のPermission Setによる事前認可が用意されています。
他のSalesforce連携との違い
接続そのものの先にある使い方は、別の記事で扱っています。Coworkで週次の営業レポートを自動生成する手順はCowork Salesforce連携 — 週次営業レポートを自動生成する手順、商談分析にClaudeを使う具体例はSalesforce商談分析をClaudeに任せる方法です。HubSpotやmonday.comを含めた営業SaaSの比較はClaude営業連携ガイド — Salesforce・HubSpot・monday.com、Zoho CRMの接続はZoho CRM連携が扱います。
Salesforceのように既製のHosted MCP Serversが無いサービスは、社内システムを自前のMCPサーバーにする方法があります。手順はCoworkカスタムコネクタ自作ガイド — リモートMCPで社内システムに接続するにあります。
まとめ
導入できるかどうかは、Flex Creditsの契約とSystem Administrator権限の2つが社内でそろうかで決まります。そろったなら、最初は読み取り専用のサーバー1つから始め、書き込みは必要になった段階で足す進め方が取れます。