Salesforce MCP Server について
Salesforce MCP Server は、Salesforce に接続する MCP サーバーです。Claude Desktop や Cline などの MCP 対応クライアントから利用できます。SOQL・SOSL クエリ、レコード操作、Apex の実行とテスト、メタデータのデプロイなど、17 のツールを提供します。
主な機能
- 01SOQL・SOSL クエリツール
- 02単一および一括のレコード操作
- 03Apex の匿名実行とテスト実行
- 04メタデータコンポーネントのデプロイと取得
- 05OAuth2 およびユーザー名・パスワード認証
- 06SObject メタデータの 1 時間キャッシュ
活用シーン
- 01AI 開発ツールから Salesforce データを照会
- 02エージェントによるレコードの一括作成・更新
- 03Apex クラスや LWC バンドルの組織へのデプロイ
MCP 対応
本プロジェクトは MCP サーバーとして、17 の Salesforce ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Salesforce MCP Server
Claude Desktop、Cline、その他のMCP互換クライアントなどのAI開発ツールに、Salesforceとのシームレスな連携を提供する包括的なModel Context Protocol(MCP)サーバーです。
🚀 機能
17種類の包括的なツール
🔍 クエリと検索ツール
execute-soql- 自動バルク切り替えとページネーションに対応したSOQLクエリの実行execute-sosl- 複数オブジェクトを検索し、結果を集約describe-sobject- インテリジェントなキャッシュ機能を備えたSObjectメタデータ
⚡ Apex開発ツール
execute-apex- デバッグログの取得に対応した匿名Apexの実行run-apex-tests- カバレッジレポート付きのApexテスト実行get-apex-logs- フィルタリング機能付きのデバッグログ取得
📊 データ管理ツール
create-record- 自動バルク切り替えに対応した単一/一括レコード作成get-record- フィールド選択に対応したレコード取得update-record- 検証機能付きの単一/一括レコード更新delete-record- 単一/一括レコード削除upsert-record- 外部IDに基づくアップサート操作
🔧 メタデータツール(コンポーネント単位)
list-metadata-types- メタデータタイプの確認deploy-metadata- ファイルまたはJSONから個々のメタデータコンポーネント(例:ApexClass、CustomObject)をデプロイdeploy-bundle- ディレクトリパスからメタデータバンドル(例:LWC)をデプロイretrieve-metadata- 個々のメタデータコンポーネントを取得し、ファイルへの保存も選択可能check-deploy-status- デプロイのステータスを確認
🔗 接続ツール
test-connection- 接続の検証とヘルスモニタリング
主な機能
- 🔄 自動バルク切り替え - パフォーマンスを最適化するためのインテリジェントなAPI選択
- 🔐 2種類の認証方式 - OAuth2とユーザー名/パスワードに対応
- ⚡ スマートキャッシュ - SObjectメタデータを1時間のTTLでキャッシュ
- 🛡️ 型安全性 - 実行時検証を備えたTypeScriptによる完全な実装
- 📝 包括的なログ記録 - 詳細なデバッグとモニタリング
- 🔍 エラーの詳細表示 - デバッグ用にSalesforceのエラーをそのまま保持
🚀 インストール
Claude Desktop、Cline、Cursorなどのデスクトップアプリで使用するには、以下のMCPサーバー設定を追加してください。
macOS/Linuxの場合:
ユーザー名/パスワード認証
{
"mcp.servers": {
"salesforce": {
"command": "npx",
"args": [
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_USERNAME": "[email protected]",
"SF_PASSWORD": "your-password",
"SF_SECURITY_TOKEN": "",
"SF_LOGIN_URL": "https://login.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
OAuth 2.0認証
{
"mcp.servers": {
"salesforce": {
"command": "npx",
"args": [
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_CLIENT_ID": "your-oauth2-client-id",
"SF_CLIENT_SECRET": "your-oauth2-client-secret",
"SF_REFRESH_TOKEN": "your-refresh-token",
"SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
Windowsの場合:
ユーザー名/パスワード認証
{
"mcp.servers": {
"salesforce": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_USERNAME": "[email protected]",
"SF_PASSWORD": "your-password",
"SF_SECURITY_TOKEN": "",
"SF_LOGIN_URL": "https://login.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
OAuth 2.0認証
{
"mcp.servers": {
"salesforce": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_CLIENT_ID": "your-oauth2-client-id",
"SF_CLIENT_SECRET": "your-oauth2-client-secret",
"SF_REFRESH_TOKEN": "your-refresh-token",
"SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
設定ファイルの場所
Claude Desktop
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Cline(VS Code)
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
⚠️ 重要: MCPサーバーの設定を追加または変更した後、変更を反映するにはVS Codeを再起動する必要があります。
Cursor
- Windows:
%USERPROFILE%\.cursor\mcp.json - macOS:
~/.cursor/mcp.json - Linux:
~/.cursor/mcp.json
✅ 自動承認しても安全(alwaysAllow)
test-connection- 接続の検証(読み取り専用)execute-soql- SOQL クエリ(読み取り専用)describe-sobject- メタデータの検査(読み取り専用)get-record- 単一レコードの取得(読み取り専用)get-apex-logs- デバッグログへのアクセス(読み取り専用)list-metadata-types- メタデータタイプの検出(読み取り専用)
⚠️ 手動承認が必要
create-record、update-record、delete-record、upsert-record- データの変更deploy-metadata- メタデータのデプロイexecute-apex、run-apex-tests- コードの実行execute-sosl- 検索操作(リソースを大量に消費する場合があります)retrieve-metadata- メタデータの取得(大量になる場合があります)
認証
ユーザー名/パスワード認証
- Salesforce Setup → Personal Information → Reset Security Token からセキュリティトークンを取得します(IP が信頼されていない場合のみ必要です)
- 設定セクションに記載されているとおりに環境変数を設定します
- 本番環境では
https://login.salesforce.com、サンドボックスではhttps://test.salesforce.comを使用します
💡 セキュリティトークン:接続に Salesforce から求められる場合のみ、セキュリティトークンを追加してください。求められない場合は、
SF_SECURITY_TOKENを空のままにします。
OAuth2 認証
- Salesforce Setup で Connected App を作成します
- OAuth 設定を行い、クライアント認証情報を取得します
- OAuth2 フローを使用して更新トークンを生成します
- 設定セクションに記載されているとおりに環境変数を設定します
🏗️ アーキテクチャ
コアコンポーネント
- 認証マネージャー - OAuth2 とユーザー名/パスワードの両方をサポート
- 接続マネージャー - ヘルスモニタリングを備えたシングルトンパターン
- ツールクラス - 機能別に整理(クエリ、Apex、データ、メタデータ)
- エラーハンドラー - コンテキストを含む包括的なエラー整形
- キャッシュマネージャー - パフォーマンス最適化のための TTL ベースのキャッシュ
パフォーマンス機能
- 自動バルク切り替え - 大規模な操作では Bulk API を自動的に使用
- インテリジェントキャッシュ - SObject メタデータを 1 時間キャッシュ
- 接続の再利用 - すべての操作で単一の接続を使用
- ポーリングの最適化 - 長時間実行される操作を効率的に監視
🧪 テスト
# Test individual tools
node tests/test-query-tools.js
node tests/test-data-tools.js
node tests/test-apex-tools.js
node tests/test-metadata-tools.js
🤝 貢献
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
🔗 関連プロジェクト
- Model Context Protocol - このサーバーが実装するプロトコル
- jsforce - このプロジェクトで使用されている Salesforce API ライブラリ
- Claude Desktop - MCP サーバーをサポートする AI アシスタント
- Cline - AI 支援開発のための VS Code 拡張機能
👨💻 作者
Jarosław Jaworski
🤖 開発クレジット
この実装の一部は、Cline VS Code 拡張機能を使用して Claude Sonnet 4 の支援を受けて開発されました。これは、包括的な開発者ツールの作成における AI 支援開発の力を示しています。
📄 ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。