salesforce-mcp-server-by-cdata について
salesforce-mcp-server-by-cdata は、CData JDBC Driver 経由で Salesforce のライブデータを照会する、ローカルの読み取り専用 MCP サーバーです。LLM は自然言語でレコードを検索でき、公開するテーブルはプロパティファイルまたは環境変数で設定できます。
主な機能
- 01Salesforce のライブデータを照会
- 02JDBC データを MCP 経由で公開
- 03アクセス可能なテーブルを選択
- 04プロパティまたは環境変数で設定
活用シーン
- 01自然言語で Salesforce レコードを質問
- 02利用可能なテーブルと列を確認
- 03Salesforce データに SQL クエリを実行
MCP 対応
stdio 経由でローカルの MCP クライアントに、テーブル一覧、列の確認、クエリ実行のツールを公開します。CData JDBC Driver を通じて Salesforce への読み取り専用アクセスを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
salesforce-mcp-server-by-cdata
CData の Salesforce 用 Model Context Protocol(MCP)サーバー
:heavy_exclamation_mark: このプロジェクトでは、ローカルで動作する読み取り専用の MCP サーバーを構築します。完全にリモートで MCP にアクセスするには、初のマネージド MCP プラットフォームである CData Connect AI をご覧ください。ローカルでホストでき、読み取り、書き込み、更新、削除、アクションのすべてに対応し、セットアップも簡単なものをお探しの場合は、CData MCP Server for Salesforce をご覧ください。
目的
LLM(Claude Desktop など)が、CData JDBC Driver for Salesforce でサポートされている Salesforce のライブデータを照会できるように、この読み取り専用 MCP サーバーを作成しました。
CData JDBC Driver は、Salesforce をリレーショナル SQL モデルとして公開することで、Salesforce に接続します。
このサーバーはそのドライバーをラップし、シンプルな MCP インターフェースを通じて Salesforce データを利用できるようにします。そのため、LLM は SQL を使わず、自然言語で質問するだけでライブ情報を取得できます。
セットアップガイド
- リポジトリをクローンします:
git clone https://github.com/cdatasoftware/salesforce-mcp-server-by-cdata.git cd salesforce-mcp-server-by-cdata - サーバーをビルドします:
これにより、JAR ファイル CDataMCP-jar-with-dependencies.jar が作成されます。mvn clean install - CData JDBC Driver for {source} をダウンロードしてインストールします:https://www.cdata.com/drivers/salesforce/download/jdbc
- CData JDBC Driver のライセンスを取得します:
- インストールディレクトリにある
libフォルダーに移動します。通常は以下の場所にあります:- (Windows)
C:\Program Files\CData\CData JDBC Driver for Salesforce\ - (Mac/Linux)
/Applications/CData JDBC Driver for Salesforce/
- (Windows)
- コマンド
java -jar cdata.jdbc.salesforce.jar --licenseを実行します。 - 名前、メールアドレス、「TRIAL」(またはライセンスキー)を入力します。
- インストールディレクトリにある
- データソースへの接続を設定します(例:Salesforce):
-
コマンド
java -jar cdata.jdbc.salesforce.jarを実行して、Connection String ユーティリティを開きます。 -
接続文字列を設定し、「Test Connection」をクリックします。
注: データソースが OAuth を使用する場合は、ブラウザーで認証する必要があります。
-
接続に成功したら、後で使用するために接続文字列をコピーします。
-
- 次のプロパティと形式を使用して、JDBC 接続用の
.prpファイル(例:salesforce.prp)を作成します:- Prefix - 公開するツールで使用するプレフィックス
- ServerName - サーバー名
- ServerVersion - サーバーのバージョン
- DriverPath - JDBC ドライバーの JAR ファイルのフルパス
- DriverClass - JDBC ドライバークラスの名前(例:cdata.jdbc.salesforce.SalesforceDriver)
- JdbcUrl - データに接続するために CData JDBC Driver で使用する JDBC 接続文字列(上記からコピー)
- Tables - すべてのデータにアクセスする場合は空欄にします。それ以外の場合は、アクセスを作成するテーブルを明示的に指定できます。
Prefix=salesforce ServerName=CDataSalesforce ServerVersion=1.0 DriverPath=PATH\TO\cdata.jdbc.salesforce.jar DriverClass=cdata.jdbc.salesforce.SalesforceDriver JdbcUrl=jdbc:salesforce:InitiateOAuth=GETANDREFRESH; Tables=
代替方法:環境変数を使用する
.prp ファイルの代わりに、環境変数を使ってサーバーを設定できます。これは、コンテナー化されたデプロイや、コンパイル済み JAR に CData JAR を同梱する場合に便利です。
環境変数
CDATA_JDBC_URL- 必須 - JDBC 接続文字列CDATA_PREFIX- (任意)公開するツールのプレフィックス(デフォルトは "salesforce")CDATA_DRIVER_CLASS- (任意)JDBC ドライバーのクラス名(バンドルされた JAR を使用する場合のデフォルトは "cdata.jdbc.salesforce.SalesforceDriver")CDATA_DRIVER_PATH- (任意)CData JAR ファイルへのパス(指定されていない場合は、バンドルされたクラスを使用します)CDATA_TABLES- (任意)公開するテーブルをカンマ区切りで指定したリストCDATA_LOG_FILE- (任意)ログファイルへのパス
CData JAR のバンドル
コンパイル済みの JAR に CData JAR を含めるには、次の手順に従います。
- プロジェクトのルートに
libディレクトリを作成します - CData JDBC ドライバー JAR(例:
cdata.jdbc.salesforce.jar)をlibディレクトリにコピーします mvn clean installでプロジェクトをビルドします- CData JDBC ドライバーのクラスが展開され、
CDataMCP-jar-with-dependencies.jarに直接含まれます
注:maven-shade-plugin はビルドプロセス中に CData JAR のすべてのクラスを自動的に展開して含めます。
環境変数を使用して実行する
# Minimal configuration - only JDBC URL is required
export CDATA_JDBC_URL="jdbc:salesforce:InitiateOAuth=GETANDREFRESH;"
java -jar CDataMCP-jar-with-dependencies.jar
# Or with custom configuration
export CDATA_PREFIX="myprefix"
export CDATA_DRIVER_PATH="/path/to/cdata.jdbc.salesforce.jar" # Only needed if not using bundled JAR
export CDATA_DRIVER_CLASS="cdata.jdbc.salesforce.SalesforceDriver" # Only needed if not using bundled JAR
export CDATA_JDBC_URL="jdbc:salesforce:InitiateOAuth=GETANDREFRESH;"
java -jar CDataMCP-jar-with-dependencies.jar
Claude Desktop でサーバーを使用する
-
以下の形式を使用して、新しい MCP サーバーを追加するための Claude Desktop の設定ファイル( claude_desktop_config.json)を作成します。ファイルがすでに存在する場合は、設定ファイルの
mcpServersにエントリを追加します。Windows
{ "mcpServers": { "{classname_dash}": { "command": "PATH\\TO\\java.exe", "args": [ "-jar", "PATH\\TO\\CDataMCP-jar-with-dependencies.jar", "PATH\\TO\\salesforce.prp" ] }, ... } }Linux/Mac
{ "mcpServers": { "{classname_dash}": { "command": "/PATH/TO/java", "args": [ "-jar", "/PATH/TO/CDataMCP-jar-with-dependencies.jar", "/PATH/TO/salesforce.prp" ] }, ... } }環境変数を使用する場合(Windows)
{ "mcpServers": { "salesforce": { "command": "PATH\\TO\\java.exe", "args": [ "-jar", "PATH\\TO\\CDataMCP-jar-with-dependencies.jar" ], "env": { "CDATA_JDBC_URL": "jdbc:salesforce:InitiateOAuth=GETANDREFRESH;" } } } }環境変数を使用する場合(Linux/Mac)
{ "mcpServers": { "salesforce": { "command": "/PATH/TO/java", "args": [ "-jar", "/PATH/TO/CDataMCP-jar-with-dependencies.jar" ], "env": { "CDATA_JDBC_URL": "jdbc:salesforce:InitiateOAuth=GETANDREFRESH;" } } } }必要に応じて、設定ファイルを適切なディレクトリにコピーします(ここでは Claude Desktop を例にしています)。 Windows
cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.jsonLinux/Mac
cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json' -
クライアント(Claude Desktop)を起動するか、再読み込みします。
注: MCP サーバーを表示するには、Claude Desktop クライアントを完全に終了または停止してから、再度開く必要がある場合があります。
サーバーの実行
- MCP サーバーを単独で実行するには、次のコマンドを実行します
java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp
注: サーバーは
stdioを使用するため、サーバーと同じマシン上で動作するクライアントでのみ使用できます。
使用方法の詳細
MCP サーバーを設定すると、AI クライアントは組み込みツールを使って、基盤となるデータの読み取り、書き込み、更新、削除ができるようになります。通常、ツールを明示的に呼び出す必要はありません。基盤となるデータシステムについて質問するだけで、クライアントが回答します。たとえば、次のように尋ねます。
- 「クローズ済みの受注案件と取引先の業種には、どのような相関関係がありますか?」
- 「SUPPORT プロジェクトで未解決のチケットはいくつありますか?」
- 「今日のカレンダーの予定を教えてもらえますか?」
利用できるツールとその説明は以下のとおりです。
ツールと説明
以下の定義では、{servername} は設定ファイル内の MCP サーバーの名前を指します(上記の {classname_dash} など)。
{servername}_get_tables- データソースで利用できるテーブルの一覧を取得します。テーブルで利用できる列の一覧を取得するには、{servername}_get_columnsツールを使用します。ツールの出力は CSV 形式で返され、1 行目には列ヘッダーが含まれます。{servername}_get_columns- テーブルの列の一覧を取得します。利用できるテーブルの一覧を取得するには、{servername}_get_tablesツールを使用します。ツールの出力は CSV 形式で返され、1 行目には列ヘッダーが含まれます。{servername}_run_query- SQL SELECT クエリを実行します
JSON-RPC リクエストの例
AI クライアント(例:Claude)を使わずに、MCP サーバーに送信するリクエストをスクリプトで作成する場合は、利用可能なツールの呼び出しに際して、JSON-RPC 2.0 仕様に準拠した以下の JSON ペイロードの例を参照できます。
salesforce_get_tables
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "salesforce_get_tables",
"arguments": {}
}
}
salesforce_get_columns
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "salesforce_get_columns",
"arguments": {
"table": "Account"
}
}
}
salesforce_run_query
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "salesforce_run_query",
"arguments": {
"sql": "SELECT * FROM [Account] WHERE [IsDeleted] = true"
}
}
}
トラブルシューティング
- Claude Desktop に CData MCP サーバーが表示されない場合は、Claude Desktop を完全に終了してください(Windows:タスク マネージャーを使用、Mac:アクティビティモニタを使用)。
- Claude Desktop がデータを取得できない場合は、接続が正しく設定されていることを確認してください。Connection String ビルダーを使って接続文字列を作成し(上記を参照)、その接続文字列をプロパティ(.prp)ファイルにコピーしてください。
- データソースへの接続に問題がある場合は、CData Support Team にお問い合わせください。
- MCP サーバーの使用に問題がある場合、またはその他のフィードバックがある場合は、CData Community にご参加ください。
ライセンス
この MCP サーバーは MIT License のもとでライセンスされています。つまり、MIT License の利用規約に従う限り、ソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリの LICENSE ファイルをご覧ください。
すべての対応ソース
| Access | Act CRM | Act-On | Active Directory |
| ActiveCampaign | Acumatica | Adobe Analytics | Adobe Commerce |
| ADP | Airtable | AlloyDB | Amazon Athena |
| Amazon DynamoDB | Amazon Marketplace | Amazon S3 | Asana |
| Authorize.Net | Avalara AvaTax | Avro | Azure Active Directory |
| Azure Analysis Services | Azure Data Catalog | Azure Data Lake Storage | Azure DevOps |
| Azure Synapse | Azure Table | Basecamp | BigCommerce |
| BigQuery | Bing Ads | Bing Search | Bitbucket |
| Blackbaud FE NXT | Box | Bullhorn CRM | Cassandra |
| Certinia | Cloudant | CockroachDB | Confluence |
| Cosmos DB | Couchbase | CouchDB | CSV |
| Cvent | Databricks | DB2 | DocuSign |
| Dropbox | Dynamics 365 | Dynamics 365 Business Central | Dynamics CRM |
| Dynamics GP | Dynamics NAV | eBay | eBay Analytics |
| Elasticsearch | メール | EnterpriseDB | Epicor Kinetic |
| Exact Online | Excel | Excel Online | |
| Facebook Ads | FHIR | Freshdesk | FTP |
| GitHub | Gmail | Google Ad Manager | Google Ads |
| Google Analytics | Google Calendar | Google Campaign Manager 360 | Google Cloud Storage |
| Google Contacts | Google Data Catalog | Google Directory | Google Drive |
| Google Search | Google Sheets | Google Spanner | GraphQL |
| Greenhouse | Greenplum | HarperDB | HBase |
| HCL Domino | HDFS | Highrise | Hive |
| HubDB | HubSpot | IBM Cloud Data Engine | IBM Cloud Object Storage |
| IBM Informix | Impala | JDBC-ODBC Bridge | |
| Jira | Jira Assets | Jira Service Management | JSON |
| Kafka | Kintone | LDAP | |
| LinkedIn Ads | MailChimp | MariaDB | Marketo |
| MarkLogic | Microsoft Dataverse | Microsoft Entra ID | Microsoft Exchange |
| Microsoft OneDrive | Microsoft Planner | Microsoft Project | Microsoft Teams |
| Monday.com | MongoDB | MYOB AccountRight | MySQL |
| nCino | Neo4J | NetSuite | OData |
| Odoo | Office 365 | Okta | OneNote |
| Oracle | Oracle Eloqua | Oracle Financials Cloud | Oracle HCM Cloud |
| Oracle Sales | Oracle SCM | Oracle Service Cloud | Outreach.io |
| Parquet | Paylocity | PayPal | Phoenix |
| PingOne | Pipedrive | PostgreSQL | |
| Power BI XMLA | Presto | Quickbase | QuickBooks |
| QuickBooks Online | QuickBooks Time | Raisers Edge NXT | Reckon |
| Reckon Accounts Hosted | Redis | Redshift | REST |
| RSS | Sage 200 | Sage 300 | Sage 50 UK |
| Sage Cloud Accounting | Sage Intacct | Salesforce | Salesforce Data Cloud |
| Salesforce Financial Service Cloud | Salesforce Marketing | Salesforce Marketing Cloud Account Engagement | Salesforce Pardot |
| Salesloft | SAP | SAP Ariba Procurement | SAP Ariba Source |
| SAP Business One | SAP BusinessObjects BI | SAP ByDesign | SAP Concur |
| SAP Fieldglass | SAP HANA | SAP HANA XS Advanced | SAP Hybris C4C |
| SAP Netweaver Gateway | SAP SuccessFactors | SAS Data Sets | SAS xpt |
| SendGrid | ServiceNow | SFTP | SharePoint |
| SharePoint Excel Services | ShipStation | Shopify | SingleStore |
| Slack | Smartsheet | Snapchat Ads | Snowflake |
| Spark | Splunk | SQL Analysis Services | SQL Server |
| Square | Stripe | Sugar CRM | SuiteCRM |
| SurveyMonkey | Sybase | Sybase IQ | Tableau CRM Analytics |
| Tally | TaxJar | Teradata | Tier1 |
| TigerGraph | Trello | Trino | Twilio |
| Twitter Ads | Veeva CRM | Veeva Vault | |
| Wave Financial | WooCommerce | WordPress | Workday |
| xBase | Xero | XML | YouTube Analytics |
| Zendesk | Zoho Books | Zoho Creator | Zoho CRM |
| Zoho Inventory | Zoho Projects | Zuora | ... ほか数十種類 |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。