{servername}_get_tablesLABSCO SUMMARY
Three tools, any table in Salesforce Einstein.
The whole point is the shape of the tool surface: three generic tools instead of one tool per Salesforce Einstein object, so the context cost stays flat no matter how wide the schema is and the model discovers the schema by asking. The price is setup — a Maven build plus a licensed JDBC driver before anything runs — and read-only access. CData points anyone who wants writes, actions or a hosted endpoint at its commercial products.
What it is
A local, read-only MCP server that CData builds on top of its JDBC driver for Salesforce Einstein. The driver presents Salesforce Einstein as relational SQL models; this server wraps the driver and hands an assistant a small SQL interface over it, so questions get answered from live data instead of a stale export. It runs as a Java process over stdio on your own machine.
What you get
- Three tools, named with the Prefix you set in the .prp file: one lists the tables the driver exposes, one lists a table's columns, and one runs a SQL SELECT.
- Table and column output comes back as CSV with a header row, so the assistant can orient itself on an unfamiliar schema before it queries anything.
- Read access only — the query tool takes SELECT. Nothing in this server writes back to Salesforce Einstein.
- A
Tablessetting that only picks which tables also get a ready-made description (blank means none); it does not limit what the tools can list or query, so limit the connection or the account it signs in with.
Requirements
Java and Maven — clone the repo and run mvn clean install to produce CDataMCP-jar-with-dependencies.jar. Separately install the CData JDBC Driver for Salesforce Einstein and license it (run the driver jar with --license and enter your name, email and either TRIAL or a license key). Then build a connection string with the driver's connection-string utility and write a properties file naming the prefix, driver class, driver jar path and that JDBC URL — the template in this repo leaves those fields blank, so fill them from your driver install. The server speaks stdio, so the client has to run on the same machine. MIT licensed.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Answering a question about Salesforce Einstein without building a report
Ask in plain language; the assistant lists tables, checks the columns it needs, then runs one SELECT and reads the CSV back.
Exploring a schema you have never seen
Start from the table list, drill into columns for the two or three that look relevant, and only then write a query — much cheaper than guessing field names.
3 tools
Listed in project docs. Your client may show a different list.
{servername}_get_columns{servername}_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names are the Prefix you set in the .prp file followed by _get_tables, _get_columns and _run_query. All three only read; run_query executes SELECT queries.
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
Clone the repository, then point your client at the binary. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/cdatasoftware/salesforce-einstein-mcp-server-by-cdata.git
cd salesforce-einstein-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for Salesforce Einstein from https://www.cdata.com/drivers/einstein/download/jdbc
License the driver: from the driver install's lib folder run java -jar cdata.jdbc.tableaucrm.jar --license (older Salesforce Einstein Analytics builds name it cdata.jdbc.sfeinsteinanalytics.jar), then enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.tableaucrm.jar to open the Connection String utility, click "Test Connection" (browser OAuth if the source needs it), and copy the connection string
Create salesforce-einstein.prp with:
Prefix=<a prefix for the tool names>
ServerName=<a name for your server>
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.tableaucrm.TableauCRMDriver
JdbcUrl=<YOUR_JDBC_URL>
Tables=Tables only picks which tables also get a ready-made description for your assistant, and empty means none; the server can still list and query every table your connection string reaches, so to keep data out of reach, limit that connection or the account it signs in with.
Add the mcpServers entry below to claude_desktop_config.json and fully restart the client
MCP Clients
Claude Desktop — macOS / Linux, Windows
{
"mcpServers": {
"salesforce-einstein": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_SALESFORCE_EINSTEIN>"
]
}
}
}