mcpField
S
Salesforce MCP Server

Salesforce MCP Server

ローカル
github.com/tomnagengastデータ・分析573 週間前に更新

Salesforce MCP Server について

Salesforce MCP Serverは、営業、マーケティング、経営チームが自然言語でSalesforce CRMのデータや操作にアクセスできるサーバーです。検索やレコード参照に対応し、初期状態は読み取り専用です。

主な機能

  1. 01オブジェクト検索とSOQLクエリ
  2. 02レコードと関連レコードの参照
  3. 03レコード項目履歴の表示
  4. 04OAuth 2.0認証
  5. 05初期状態は読み取り専用、書き込み設定可能

活用シーン

  1. 01商談や営業パイプラインの確認
  2. 02リードやキャンペーンデータの検索
  3. 03顧客の活動状況とレコード履歴の確認
  4. 04有効化後のCRMレコード作成・更新・削除

MCP 対応

AIエージェント向けに、Salesforceの検索、クエリ、読み取り、レコード書き込みツールを公開します。書き込みにはSALESFORCE_READ_ONLY_MODEをfalseに設定する必要があります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"salesforce-tomnagengast": {
"command": "npx",
"args": [
"-y",
"github:tomnagengast/mcp-server-salesforce"
]
}
}
}
起動コマンドnpx -y github:tomnagengast/mcp-server-salesforce

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmgithub:tomnagengast/mcp-server-salesforce

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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"
}

書き込み操作を有効にする

書き込み操作を有効にする準備ができたら、以下を行います:

  1. 環境設定を更新します:

    # In your .env file
    SALESFORCE_READ_ONLY_MODE=false
    
  2. または、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
          }
        }
      }
    }
    
  3. サーバーと 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 の使用状況を監視してください
  • 必要に応じてレート制限を実装してください
  • 大規模なデータセットには一括操作の使用を検討してください

コントリビューション

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を加えます
  4. テストとリンティングを実行します
  5. プルリクエストを送信します

ライセンス

MIT License — 詳細は LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。