sendgrid_get_tablesLABSCO SUMMARY
A read-only SQL window onto SendGrid, opened by a driver you license separately.
The server itself is thin: it lists tables, lists columns, and runs SELECT statements. What makes it useful is the CData JDBC Driver for SendGrid underneath, which turns campaigns, contacts and delivery statistics into relational tables the model can join. That driver is a separate download and a separate licence, and it is the piece that decides which SendGrid data you can see.
What it is
A Java MCP server that puts CData's JDBC Driver for SendGrid behind three read-only tools: list the tables, list a table's columns, and run a SQL SELECT. The driver is what does the work — it exposes SendGrid as relational SQL models — and the server hands those models to your client so you can ask questions in plain language instead of writing SQL yourself.
What you get
get_tablesreturns the tables available in the data source, as CSV with a header rowget_columnsreturns the columns of one table, in the same CSV shaperun_queryexecutes a SQL SELECT and returns the rows- Every tool name starts with the
Prefixvalue from your.prpfile, so several CData servers can run side by side without colliding - You ask about your SendGrid data in plain language and the client picks the tools and writes the SQL — no need to know the table names first
Requirements
Build the server with mvn clean install, which produces CDataMCP-jar-with-dependencies.jar. Separately download the CData JDBC Driver for SendGrid and license it: run java -jar cdata.jdbc.sendgrid.jar --license and enter your name, email and either TRIAL or a licence key. Then write a .prp file naming DriverClass=cdata.jdbc.sendgrid.SendGridDriver plus the JdbcUrl you build in the driver's connection-string utility, and point your client at java -jar with the jar and that file. Transport is stdio, so the server has to run on the same machine as the client.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Checking how a send performed
Ask about bounces or opens for a recent campaign and let the client find the right table before it queries it.
Exploring the schema before you write anything
List the tables, then the columns of the one you want, so you know what SendGrid actually exposes.
Pulling a one-off list without a report builder
Describe the rows you want; the client writes the SELECT and hands back CSV.
3 tools
Listed in project docs. Your client may show a different list.
sendgrid_get_columnssendgrid_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names take the Prefix= value from the .prp file, such as sendgrid_get_tables. All tools are read-only; writes need CData's paid MCP Server. The Tables setting does not limit what the tools reach; your connection's access does.
Where it runs
The documented client runs 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/sendgrid-mcp-server-by-cdata.git
cd sendgrid-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for SendGrid from https://www.cdata.com/drivers/sendgrid/download/jdbc
License the driver: from the driver install's lib folder run java -jar cdata.jdbc.sendgrid.jar --license, then enter your name, email, and "TRIAL" (or your license key)
Build the connection string: run java -jar cdata.jdbc.sendgrid.jar to open the Connection String utility, click "Test Connection" (browser OAuth if the source needs it), and copy the connection string
Create sendgrid.prp with:
Prefix=sendgrid
ServerName=CDataSendGrid
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.sendgrid.SendGridDriver
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 — Linux, macOS
{
"mcpServers": {
"sendgrid": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_SENDGRID>"
]
}
}
}