Labsco
CDataSoftware logo

CData Salesforce MCP Server

from CDataSoftware

A read-only MCP server by CData that allows LLMs to query live Salesforce data. Requires the CData JDBC Driver for Salesforce.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeAdvanced setup

salesforce-mcp-server-by-cdata

CData's Model Context Protocol (MCP) Server for Salesforce

:heavy_exclamation_mark: This project builds a local, read-only MCP server. For fully remote MCP access, check out the first managed MCP platform: CData Connect AI. For locally hosted, full read, write, update, delete, and action capabilities and a simplified setup, check out our CData MCP Server for Salesforce.

Purpose

We created this read-only MCP Server to allow LLMs (like Claude Desktop) to query live data Salesforce supported by the CData JDBC Driver for Salesforce.

CData JDBC Driver connects to Salesforce by exposing them as relational SQL models.

This server wraps that driver and makes Salesforce data available through a simple MCP interface, so LLMs can retrieve live information by asking natural language questions โ€” no SQL required.

Alternative: Using Environment Variables

Instead of using a .prp file, you can configure the server using environment variables. This is useful for containerized deployments or when you want to bundle the CData JAR inside the compiled JAR.

Environment Variables

  • CDATA_JDBC_URL - Required - The JDBC connection string
  • CDATA_PREFIX - (Optional) The prefix for exposed tools (defaults to "salesforce")
  • CDATA_DRIVER_CLASS - (Optional) The JDBC driver class name (defaults to "cdata.jdbc.salesforce.SalesforceDriver" when using bundled JAR)
  • CDATA_DRIVER_PATH - (Optional) Path to the CData JAR file (if not specified, uses bundled classes)
  • CDATA_TABLES - (Optional) Comma-separated list of tables to expose
  • CDATA_LOG_FILE - (Optional) Path to log file

Bundling the CData JAR

To include the CData JAR in your compiled JAR:

  1. Create a lib directory in your project root
  2. Copy the CData JDBC driver JAR (e.g., cdata.jdbc.salesforce.jar) into the lib directory
  3. Build the project with mvn clean install
  4. The CData JDBC driver classes will be unpacked and included directly in CDataMCP-jar-with-dependencies.jar

Note: The maven-shade-plugin will automatically extract and include all classes from the CData JAR during the build process.

Running with Environment Variables

# 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

Using the Server with Claude Desktop

  1. Create the config file for Claude Desktop ( claude_desktop_config.json) to add the new MCP server, using the format below. If the file already exists, add the entry to the mcpServers in the config file.

    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"
          ]
        },
        ...
      }
    }

    Using Environment Variables (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;"
          }
        }
      }
    }

    Using Environment Variables (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;"
          }
        }
      }
    }

    If needed, copy the config file to the appropriate directory (Claude Desktop as the example). Windows

    cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json

    Linux/Mac

    cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json'
  2. Run or refresh your client (Claude Desktop).

Note: You may need to fully exit or quit your Claude Desktop client and re-open it for the MCP Servers to appear.

JSON-RPC Request Examples

If you are scripting out the requests sent to the MCP Server instead of using an AI Client (e.g. Claude), then you can refer to the JSON payload examples below โ€“ following the JSON-RPC 2.0 specification - when calling the available tools.

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

All Supported Sources

AccessAct CRMAct-OnActive Directory
ActiveCampaignAcumaticaAdobe AnalyticsAdobe Commerce
ADPAirtableAlloyDBAmazon Athena
Amazon DynamoDBAmazon MarketplaceAmazon S3Asana
Authorize.NetAvalara AvaTaxAvroAzure Active Directory
Azure Analysis ServicesAzure Data CatalogAzure Data Lake StorageAzure DevOps
Azure SynapseAzure TableBasecampBigCommerce
BigQueryBing AdsBing SearchBitbucket
Blackbaud FE NXTBoxBullhorn CRMCassandra
CertiniaCloudantCockroachDBConfluence
Cosmos DBCouchbaseCouchDBCSV
CventDatabricksDB2DocuSign
DropboxDynamics 365Dynamics 365 Business CentralDynamics CRM
Dynamics GPDynamics NAVeBayeBay Analytics
ElasticsearchEmailEnterpriseDBEpicor Kinetic
Exact OnlineExcelExcel OnlineFacebook
Facebook AdsFHIRFreshdeskFTP
GitHubGmailGoogle Ad ManagerGoogle Ads
Google AnalyticsGoogle CalendarGoogle Campaign Manager 360Google Cloud Storage
Google ContactsGoogle Data CatalogGoogle DirectoryGoogle Drive
Google SearchGoogle SheetsGoogle SpannerGraphQL
GreenhouseGreenplumHarperDBHBase
HCL DominoHDFSHighriseHive
HubDBHubSpotIBM Cloud Data EngineIBM Cloud Object Storage
IBM InformixImpalaInstagramJDBC-ODBC Bridge
JiraJira AssetsJira Service ManagementJSON
KafkaKintoneLDAPLinkedIn
LinkedIn AdsMailChimpMariaDBMarketo
MarkLogicMicrosoft DataverseMicrosoft Entra IDMicrosoft Exchange
Microsoft OneDriveMicrosoft PlannerMicrosoft ProjectMicrosoft Teams
Monday.comMongoDBMYOB AccountRightMySQL
nCinoNeo4JNetSuiteOData
OdooOffice 365OktaOneNote
OracleOracle EloquaOracle Financials CloudOracle HCM Cloud
Oracle SalesOracle SCMOracle Service CloudOutreach.io
ParquetPaylocityPayPalPhoenix
PingOnePinterestPipedrivePostgreSQL
Power BI XMLAPrestoQuickbaseQuickBooks
QuickBooks OnlineQuickBooks TimeRaisers Edge NXTReckon
Reckon Accounts HostedRedisRedshiftREST
RSSSage 200Sage 300Sage 50 UK
Sage Cloud AccountingSage IntacctSalesforceSalesforce Data Cloud
Salesforce Financial Service CloudSalesforce MarketingSalesforce Marketing Cloud Account EngagementSalesforce Pardot
SalesloftSAPSAP Ariba ProcurementSAP Ariba Source
SAP Business OneSAP BusinessObjects BISAP ByDesignSAP Concur
SAP FieldglassSAP HANASAP HANA XS AdvancedSAP Hybris C4C
SAP Netweaver GatewaySAP SuccessFactorsSAS Data SetsSAS xpt
SendGridServiceNowSFTPSharePoint
SharePoint Excel ServicesShipStationShopifySingleStore
SlackSmartsheetSnapchat AdsSnowflake
SparkSplunkSQL Analysis ServicesSQL Server
SquareStripeSugar CRMSuiteCRM
SurveyMonkeySybaseSybase IQTableau CRM Analytics
TallyTaxJarTeradataTier1
TigerGraphTrelloTrinoTwilio
TwitterTwitter AdsVeeva CRMVeeva Vault
Wave FinancialWooCommerceWordPressWorkday
xBaseXeroXMLYouTube Analytics
ZendeskZoho BooksZoho CreatorZoho CRM
Zoho InventoryZoho ProjectsZuora... Dozens More