Salesforce MCP Server について
Salesforce MCP Serverは、営業、マーケティング、経営チームが自然言語でSalesforce CRMのデータや操作にアクセスできるサーバーです。検索やレコード参照に対応し、初期状態は読み取り専用です。
主な機能
- 01オブジェクト検索とSOQLクエリ
- 02レコードと関連レコードの参照
- 03レコード項目履歴の表示
- 04OAuth 2.0認証
- 05初期状態は読み取り専用、書き込み設定可能
活用シーン
- 01商談や営業パイプラインの確認
- 02リードやキャンペーンデータの検索
- 03顧客の活動状況とレコード履歴の確認
- 04有効化後のCRMレコード作成・更新・削除
MCP 対応
AIエージェント向けに、Salesforceの検索、クエリ、読み取り、レコード書き込みツールを公開します。書き込みにはSALESFORCE_READ_ONLY_MODEをfalseに設定する必要があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Salesforce MCP Server
AI エージェントが Salesforce のデータや操作に安全にアクセスできるようにする、Model Context Protocol(MCP)サーバーです。営業、マーケティング、経営チームが自然言語を通じて Salesforce CRM を操作できるように構築されています。
機能
主な機能
- 🔍 検索とクエリ:複数のオブジェクトにまたがるレコードの検索、SOQL クエリの実行、グローバル検索を行います
- 📖 読み取り操作:特定のレコードを取得し、関連レコードをたどります
- 🔒 セキュリティ優先:安全にテストできるよう、デフォルトで読み取り専用モードで起動します
- 🔐 安全な認証:適切なトークン管理を備えた OAuth 2.0 統合
- ⚡ エラー処理:詳細なフィードバックを伴う包括的なエラー処理
安全機能
- デフォルトで読み取り専用:サーバーは安全な読み取り専用モードで起動します
- 書き込みアクセスの設定:
SALESFORCE_READ_ONLY_MODE=falseを設定すると、準備ができたときにのみ書き込み操作を有効にできます - 操作を明確に表示:書き込みツールは説明内で明確に示されます
サポート対象の Salesforce オブジェクト
- Accounts:企業や組織のレコード
- Contacts:個人の連絡先情報
- Leads:見込み顧客のレコード
- Opportunities:営業案件と商談
- Cases:カスタマーサービスとサポートのチケット
- Activities:タスクとイベント
クイックスタート
🚀 詳細なセットアップ手順については、SETUP.md をご覧ください
以下が含まれます:
- Salesforce Connected App の設定
- Claude Desktop との連携
- スクリーンショット付きの手順とトラブルシューティング
インストール方法
オプション 1:GitHub から NPX
npx github:tomnagengast/mcp-server-salesforce
オプション 2:クローンしてビルド
git clone https://github.com/tomnagengast/mcp-server-salesforce.git
cd mcp-server-salesforce
npm install
npm run build
設定: Salesforce Connected App の設定を含む詳細なセットアップ手順については、SETUP.md をご覧ください。
設定
環境変数
以下の設定を記述した .env ファイルを作成します:
# Salesforce Configuration
SALESFORCE_LOGIN_URL=https://login.salesforce.com
SALESFORCE_CLIENT_ID=your_connected_app_client_id
SALESFORCE_CLIENT_SECRET=your_connected_app_client_secret
SALESFORCE_USERNAME=your_salesforce_username
SALESFORCE_PASSWORD=your_salesforce_password
SALESFORCE_SECURITY_TOKEN=your_security_token
# For Sandbox (optional)
# SALESFORCE_LOGIN_URL=https://test.salesforce.com
# Server Configuration
PORT=3000
LOG_LEVEL=info
# Security - Server starts in READ-ONLY mode by default
SALESFORCE_READ_ONLY_MODE=true
🔒 セキュリティに関する注意: サーバーはデフォルトで読み取り専用モードで起動します。書き込み操作を問題なく利用できる場合にのみ、
SALESFORCE_READ_ONLY_MODE=falseを設定してください。
Claude Desktop との連携
Claude Desktop の設定(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json)に以下を追加します:
NPX でインストールする場合:
{
"mcpServers": {
"salesforce": {
"command": "npx",
"args": ["github:tomnagengast/mcp-server-salesforce"],
"env": {
"SALESFORCE_CLIENT_ID": "your_client_id",
"SALESFORCE_CLIENT_SECRET": "your_client_secret",
"SALESFORCE_USERNAME": "your_username",
"SALESFORCE_PASSWORD": "your_password",
"SALESFORCE_SECURITY_TOKEN": "your_token",
"SALESFORCE_READ_ONLY_MODE": "true"
}
}
}
}
ローカルにインストールする場合:
{
"mcpServers": {
"salesforce": {
"command": "node",
"args": ["/path/to/your/mcp-server-salesforce/dist/index.js"],
"cwd": "/path/to/your/mcp-server-salesforce"
}
}
}
連携の詳細な手順については、SETUP.md をご覧ください。
使用方法
サーバーの実行
# Development mode with hot reload
npm run dev
# Production mode
npm run start
使用可能なツール
検索ツール
search_records - 複数の Salesforce オブジェクトにまたがって検索します
{
"query": "Acme Corp",
"objects": ["Account", "Contact", "Lead"],
"limit": 20
}
soql_query - カスタム SOQL クエリを実行します
{
"query": "SELECT Id, Name, Email FROM Contact WHERE Account.Name = 'Acme Corp'"
}
global_search - すべてのオブジェクトを対象にグローバル検索します
{
"searchTerm": "[email protected]",
"limit": 20
}
読み取り操作(常に使用可能)
get_record - 特定のレコードを取得します
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"fields": ["Name", "Type", "Industry"]
}
get_related_records - 関連レコードを取得します
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"relationship": "Contacts",
"limit": 20
}
get_record_history - 項目の履歴を表示します
{
"objectType": "Opportunity",
"recordId": "006XXXXXXXXXX",
"limit": 20
}
書き込み操作(SALESFORCE_READ_ONLY_MODE=false が必要)
⚠️ これらの操作は Salesforce のデータを変更します。サーバーの動作に問題がないと確認できた場合にのみ有効にしてください。
create_record - 新しいレコードを作成します
{
"objectType": "Contact",
"data": {
"FirstName": "John",
"LastName": "Doe",
"Email": "[email protected]"
}
}
update_record - 既存のレコードを更新します
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"data": {
"Phone": "+1-555-0123"
}
}
delete_record - レコードを削除します
{
"objectType": "Lead",
"recordId": "00QXXXXXXXXXX"
}
書き込み操作を有効にする
書き込み操作を有効にする準備ができたら、以下を行います:
-
環境設定を更新します:
# In your .env file SALESFORCE_READ_ONLY_MODE=false -
または、Claude Desktop の設定で:
{ "mcpServers": { "salesforce": { "command": "node", "args": ["/path/to/your/mcp-server-salesforce/dist/index.js"], "env": { "SALESFORCE_READ_ONLY_MODE": "false", // ... other env vars } } } } -
サーバーと Claude Desktop を再起動します
使用例
営業チーム
- 営業パイプライン管理:「今四半期に成約予定の商談をすべて表示して」
- アカウント調査:「Acme Corp の連絡先を、最近の活動とあわせてすべて検索して」
- リードのフォローアップ:「昨日の展示会からのリードをすべて検索して」(読み取り専用)、または「昨日の展示会からのリードすべてにタスクを作成して」(書き込みモード)
マーケティングチーム
- キャンペーン分析:「第 4 四半期のデジタルキャンペーンの ROI を表示して」
- リードスコアリング:「スコアが高く、まだ連絡していないリードを検索して」
- コンテンツの成果:「最も多くの有望なリードを獲得したキャンペーンはどれ?」
経営チーム
- 収益予測:「来四半期の地域別の商談パイプラインはどうなっていますか?」
- パフォーマンス指標:「今月の成約収益上位の担当者を表示してください」
- 顧客の健全性:「上位20社のアカウントと最近のエンゲージメントを一覧表示してください」
開発
スクリプト
npm run build # Build TypeScript
npm run dev # Development with hot reload
npm run start # Start production server
npm run lint # Run ESLint
npm run test # Run tests (when implemented)
プロジェクト構成
src/
├── auth/ # Salesforce authentication
├── tools/ # MCP tool implementations
│ ├── search-tools.ts # Search and query tools
│ ├── crud-tools.ts # CRUD operations
│ └── relationship-tools.ts # Relationship navigation
├── types/ # TypeScript type definitions
├── utils/ # Utilities and helpers
│ ├── config.ts # Configuration management
│ ├── logger.ts # Logging utilities
│ └── error-handler.ts # Error handling
└── index.ts # Main server entry point
セキュリティ
- OAuth 2.0:Salesforce に対する安全な認証
- 権限の遵守:すべての操作で Salesforce ユーザーの権限を遵守します
- 入力検証:SOQL インジェクションの防止と入力のサニタイズ
- エラー処理:機密データを漏えいさせない安全なエラーメッセージ
トラブルシューティング
よくある問題
認証に失敗する
- Salesforce の認証情報を確認してください
- Salesforce で IP アドレスが許可リストに登録されているか確認してください
- セキュリティトークンが最新であることを確認してください
権限が拒否される
- ユーザーに適切なオブジェクト権限があることを確認してください
- 項目レベルのセキュリティ設定を確認してください
- プロファイルで API アクセスが有効になっていることを確認してください
API 制限
- Salesforce Setup で API の使用状況を監視してください
- 必要に応じてレート制限を実装してください
- 大規模なデータセットには一括操作の使用を検討してください
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- テストとリンティングを実行します
- プルリクエストを送信します
ライセンス
MIT License — 詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。