snowflake_get_tablesLABSCO SUMMARY
Read-only by construction.
Three tools and no write path is the whole design: the model discovers tables, reads columns and runs SELECTs, so a badly framed question produces a wrong answer rather than a changed record. Two things decide whether it fits. The CData JDBC driver is a separate licensed product, with a trial key to start on. And the Tables field in the connection profile is where you choose how much of Snowflake is reachable — left blank, everything the connection can see is in scope.
What it is
A read-only MCP server built on CData's JDBC Driver for Snowflake. The driver exposes Snowflake as relational tables; the server puts three tools over it, so a client can discover what tables exist, read a table's columns, and run a SELECT — without anyone writing SQL by hand.
What you get
- The tables the driver exposes for Snowflake, returned as CSV with a header row —
snowflake_get_tables - The columns of one of those tables, also as CSV, so a query can be composed against real field names —
snowflake_get_columns - A SQL SELECT executed against live Snowflake data —
snowflake_run_query - Tool names that carry the prefix you set in the connection profile — the sample uses
Prefix=snowflake— so several CData servers can run side by side without colliding - A
Tablesfield in the profile that decides how much of Snowflake is visible at all: leave it blank for everything the connection can reach, or list the tables you want exposed
Requirements
Java and Maven to build — mvn clean install produces CDataMCP-jar-with-dependencies.jar. The CData JDBC Driver for Snowflake is a separate download and needs licensing: run java -jar cdata.jdbc.snowflake.jar --license and enter a name, an email and either TRIAL or a licence key. Connection settings go in a .prp file carrying Prefix, ServerName (the sample uses CDataSnowflake), ServerVersion, DriverPath, DriverClass (cdata.jdbc.snowflake.SnowflakeDriver), the JdbcUrl produced by the driver's connection-string utility, and the optional Tables list. The client then launches java -jar CDataMCP-jar-with-dependencies.jar snowflake.prp. Transport is stdio, so the server has to run on the same machine as the client. If the data source authenticates over OAuth, you approve it in a browser while building the connection string.
Setup effort
Build from source — git clone https://github.com/cdatasoftware/snowflake-mcp-server-by-cdata.git
USE CASES
Asking a warehouse question without writing SQL
The client lists the tables, reads the columns it needs, and composes the SELECT from the question you asked.
Exploring a warehouse you did not build
Walk tables and columns to work out what Snowflake actually holds before committing to a reporting query.
Quoting a live figure mid-conversation
Every answer runs a fresh SELECT, so the number in the conversation is the number in the warehouse.
Keeping a model away from tables it should not read
Declare the table list in the connection profile rather than leaving everything the login can reach in scope.
3 tools
Listed in project docs. Your client may show a different list.
snowflake_get_columnssnowflake_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. The documentation gives two answers for the tool-name prefix: the config file's server name (CDataSnowflake in the example) or the .prp Prefix (snowflake). The build is read-only: the _run_query tool runs SQL SELECT only, although one README line says the client can also write, update and delete.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/cdatasoftware/snowflake-mcp-server-by-cdata.git
cd snowflake-mcp-server-by-cdata
mvn clean installThis creates the JAR file CDataMCP-jar-with-dependencies.jar. Next, download and install the CData JDBC Driver for Snowflake from https://www.cdata.com/drivers/snowflake/download/jdbc/
License the driver. In the lib folder of the driver's installation directory (typically /Applications/CData JDBC Driver for Snowflake/ on Mac/Linux, C:\Program Files\CData\CData JDBC Driver for Snowflake\ on Windows), run the command below and enter your name, email, and "TRIAL" (or your license key).
java -jar cdata.jdbc.snowflake.jar --licenseOpen the Connection String utility with the command below, configure the connection string and click "Test Connection" (if the source uses OAuth, you authenticate in your browser), then copy the connection string.
java -jar cdata.jdbc.snowflake.jarIn the file below, DriverPath is the full path to cdata.jdbc.snowflake.jar, JdbcUrl is the connection string you copied, and a blank Tables gives access to all data.
Create snowflake.prp containing:
Prefix=snowflake
ServerName=CDataSnowflake
ServerVersion=1.0
DriverPath=<YOUR_DRIVER_PATH>
DriverClass=cdata.jdbc.snowflake.SnowflakeDriver
JdbcUrl=jdbc:snowflake:InitiateOAuth=GETANDREFRESH;
Tables=Add the configuration under MCP Clients to claude_desktop_config.json and restart the client.
MCP Clients
Claude Desktop — macOS, Linux
{
"mcpServers": {
"snowflake-mcp-server": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_SNOWFLAKE>"
]
}
}
}