CData Salesforce MCP Server
Un servidor MCP de solo lectura de CData que permite a los LLMs consultar datos en vivo de Salesforce. Requiere el controlador JDBC de CData para Salesforce.
Documentación
salesforce-mcp-server-by-cdata
Servidor de Protocolo de Contexto de Modelo (MCP) de CData para Salesforce
:heavy_exclamation_mark: Este proyecto construye un servidor MCP local de solo lectura. Para acceso MCP totalmente remoto, consulte la primera plataforma MCP gestionada: CData Connect AI. Para capacidades completas de lectura, escritura, actualización, eliminación y acciones alojadas localmente, y una configuración simplificada, consulte nuestro Servidor MCP de CData para Salesforce.
Propósito
Creamos este servidor MCP de solo lectura para permitir que los LLM (como Claude Desktop) consulten datos en vivo de Salesforce compatibles con el Controlador JDBC de CData para Salesforce.
El controlador JDBC de CData se conecta a Salesforce exponiéndolos como modelos SQL relacionales.
Este servidor envuelve ese controlador y hace que los datos de Salesforce estén disponibles a través de una interfaz MCP simple, para que los LLM puedan recuperar información en vivo haciendo preguntas en lenguaje natural, sin necesidad de SQL.
Guía de Configuración
- Clone el repositorio:
git clone https://github.com/cdatasoftware/salesforce-mcp-server-by-cdata.git cd salesforce-mcp-server-by-cdata - Compile el servidor:
Esto crea el archivo JAR: CDataMCP-jar-with-dependencies.jarmvn clean install - Descargue e instale el controlador JDBC de CData para {source}: https://www.cdata.com/drivers/salesforce/download/jdbc
- Licencie el controlador JDBC de CData:
- Navegue a la carpeta
liben el directorio de instalación, típicamente:- (Windows)
C:\Program Files\CData\CData JDBC Driver for Salesforce\ - (Mac/Linux)
/Applications/CData JDBC Driver for Salesforce/
- (Windows)
- Ejecute el comando
java -jar cdata.jdbc.salesforce.jar --license - Ingrese su nombre, correo electrónico y "TRIAL" (o su clave de licencia).
- Navegue a la carpeta
- Configure su conexión a la fuente de datos (Salesforce como ejemplo):
-
Ejecute el comando
java -jar cdata.jdbc.salesforce.jarpara abrir la utilidad de cadena de conexión. -
Configure la cadena de conexión y haga clic en "Probar conexión"
Nota: Si la fuente de datos utiliza OAuth, deberá autenticarse en su navegador.
-
Una vez que sea exitoso, copie la cadena de conexión para usarla más tarde.
-
- Cree un archivo
.prppara su conexión JDBC (por ejemplo,salesforce.prp) usando las siguientes propiedades y formato:- Prefix - un prefijo para usar con las herramientas expuestas
- ServerName - un nombre para su servidor
- ServerVersion - una versión para su servidor
- DriverPath - la ruta completa al archivo JAR de su controlador JDBC
- DriverClass - el nombre de la clase del controlador JDBC (por ejemplo, cdata.jdbc.salesforce.SalesforceDriver)
- JdbcUrl - la cadena de conexión JDBC para usar con el controlador JDBC de CData para conectarse a sus datos (copiada de arriba)
- Tables - déjelo en blanco para acceder a todos los datos; de lo contrario, puede declarar explícitamente las tablas a las que desea crear acceso
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=
Alternativa: Uso de Variables de Entorno
En lugar de usar un archivo .prp, puede configurar el servidor usando variables de entorno. Esto es útil para implementaciones en contenedores o cuando desea incluir el JAR de CData dentro del JAR compilado.
Variables de Entorno
CDATA_JDBC_URL- Requerido - La cadena de conexión JDBCCDATA_PREFIX- (Opcional) El prefijo para las herramientas expuestas (por defecto "salesforce")CDATA_DRIVER_CLASS- (Opcional) El nombre de la clase del controlador JDBC (por defecto "cdata.jdbc.salesforce.SalesforceDriver" cuando se usa el JAR incluido)CDATA_DRIVER_PATH- (Opcional) Ruta al archivo JAR de CData (si no se especifica, usa las clases incluidas)CDATA_TABLES- (Opcional) Lista separada por comas de tablas a exponerCDATA_LOG_FILE- (Opcional) Ruta al archivo de registro
Incluir el JAR de CData
Para incluir el JAR de CData en su JAR compilado:
- Cree un directorio
liben la raíz de su proyecto - Copie el JAR del controlador JDBC de CData (por ejemplo,
cdata.jdbc.salesforce.jar) en el directoriolib - Compile el proyecto con
mvn clean install - Las clases del controlador JDBC de CData se desempaquetarán e incluirán directamente en
CDataMCP-jar-with-dependencies.jar
Nota: El maven-shade-plugin extraerá e incluirá automáticamente todas las clases del JAR de CData durante el proceso de compilación.
Ejecución con Variables de Entorno
# 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
Uso del Servidor con Claude Desktop
-
Cree el archivo de configuración para Claude Desktop (claude_desktop_config.json) para agregar el nuevo servidor MCP, usando el formato a continuación. Si el archivo ya existe, agregue la entrada a
mcpServersen el archivo de configuración.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" ] }, ... } }Uso de Variables de Entorno (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;" } } } }Uso de Variables de Entorno (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;" } } } }Si es necesario, copie el archivo de configuración al directorio apropiado (Claude Desktop como ejemplo). 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' -
Ejecute o actualice su cliente (Claude Desktop).
Nota: Es posible que deba salir o cerrar completamente su cliente de Claude Desktop y volver a abrirlo para que aparezcan los servidores MCP.
Ejecución del Servidor
- Ejecute el siguiente comando para ejecutar el servidor MCP por sí solo
java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp
Note: The server uses
stdioso can only be used with clients that run on the same machine as the server.
Usage Details
Once the MCP Server is configured, the AI client will be able to use the built-in tools to read, write, update, and delete the underlying data. In general, you do not need to call the tools explicitly. Simply ask the client to answer questions about the underlying data system. For example:
- "What is the correlation between my closed won opportunities and the account industry?"
- "How many open tickets do I have in the SUPPORT project?"
- "Can you tell me what calendar events I have today?"
The list of tools available and their descriptions follow:
Tools & Descriptions
In the definitions below, {servername} refers to the name of the MCP Server in the config file (e.g. {classname_dash} above).
{servername}_get_tables- Retrieves a list of tables available in the data source. Use the{servername}_get_columnstool to list available columns on a table. The output of the tool will be returned in CSV format, with the first line containing column headers.{servername}_get_columns- Retrieves a list of columns for a table. Use the{servername}_get_tablestool to get a list of available tables. The output of the tool will be returned in CSV format, with the first line containing column headers.{servername}_run_query- Execute a SQL SELECT query
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"
}
}
}
Solución de Problemas
- Si no puede ver su servidor MCP de CData en Claude Desktop, asegúrese de haber cerrado completamente Claude Desktop (Windows: use el Administrador de tareas, Mac: use el Monitor de actividad)
- Si Claude Desktop no puede recuperar datos, asegúrese de haber configurado su conexión correctamente. Use el generador de cadenas de conexión para crear la cadena de conexión (ver arriba) y copie la cadena de conexión en el archivo de propiedades (.prp).
- Si tiene problemas para conectarse a su fuente de datos, contacte al Equipo de Soporte de CData.
- Si tiene problemas para usar el servidor MCP, o tiene cualquier otro comentario, únase a la Comunidad de CData.
Licencia
Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que es libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulte el archivo LICENSE en el repositorio del proyecto.
Todas las fuentes compatibles
| 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 | ... Docenas más |