home / mcp / snowflake mcp server
This read-only MCP Server allows you to connect to Snowflake data from Claude Desktop through CData JDBC Drivers. For full CRUD support, check out the first managed MCP platform: CData Connect AI (https://www.cdata.com/ai/).
Configuration
View docs{
"mcpServers": {
"cdatasoftware-snowflake-mcp-server-by-cdata": {
"command": "java",
"args": [
"-jar",
"/PATH/TO/CDataMCP-jar-with-dependencies.jar",
"/PATH/TO/Salesforce.prp"
]
}
}
}You can query live Snowflake data through a read-only MCP server that exposes Snowflake data via a simple MCP interface. This lets you ask natural-language questions and receive data-driven answers without writing SQL, while keeping the data access securely read-only.
Use an MCP client to connect to the Snowflake MCP Server you run locally. The server provides tools that let you list available tables and columns, and run read-only queries. You don’t manually invoke SQL against Snowflake; instead you request data through the MCP tools and the client handles the interaction.
Prerequisites you need before installation: a Java runtime and Maven for building the MCP server.
Clone the MCP server repository and build the project.
git clone https://github.com/cdatasoftware/snowflake-mcp-server-by-cdata.git
cd snowflake-mcp-server-by-cdata
mvn clean installThis build step creates the MCP server JAR: CDataMCP-jar-with-dependencies.jar.
Download and install the CData JDBC Driver for Snowflake.
License the CData JDBC Driver by running the license command from the driver’s lib folder. You will enter your name, email, and a license key.
Configure your connection to Snowflake using the driver’s Connection String utility and test the connection. Copy the connection string for use in the MCP configuration.
Create a JDBC connection profile file (for example snowflake.prp) with the required properties. An example is below.
Prefix=snowflake
ServerName=CDataSnowflake
ServerVersion=1.0
DriverPath=PATH\TO\cdata.jdbc.snowflake.jar
DriverClass=cdata.jdbc.snowflake.SnowflakeDriver
JdbcUrl=jdbc:snowflake:InitiateOAuth=GETANDREFRESH;
Tables=Create Claude Desktop configuration to register the MCP server. Add an entry that launches the MCP JAR with the prp file.
{
"mcpServers": {
"snowflake_mcp": {
"command": "PATH\\TO\\java.exe",
"args": [
"-jar",
"PATH\\TO\\CDataMCP-jar-with-dependencies.jar",
"PATH\\TO\\snowflake.prp"
]
},
...
}
}To run the MCP server on this machine, execute the runtime command shown below. This starts the server using the prepared prp configuration.
java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prpThe MCP server is described as a local, read-only server. It exposes tools to retrieve table lists, column lists, and to run read-only queries. You can ask questions like which tables exist, which columns are available in a table, and what data a particular query would return.
Security and access: since the server is configured to read data, ensure your Snowflake credentials and connections are securely managed in the JDBC driver and prp file.
If you deploy Claude Desktop or another MCP client, refresh or restart the client after adding a new MCP server so the server appears in the client’s list.
If you cannot see the MCP server in your client, fully quit the client and reopen it so the new MCP server entries are loaded.
If data cannot be retrieved, verify the connection string is correct and that the Snowflake credentials used by the JDBC driver have the necessary access. Recreate the connection string if needed.
If you run into issues with the MCP server, contact support channels provided with the driver and consult community resources for guidance.
This MCP server is licensed under the MIT License. You may use, modify, and distribute it in accordance with the MIT terms.
The MCP server supports a wide range of data sources through compatible drivers. See driver documentation for the full list and capabilities.
Retrieves a list of tables available in the Snowflake data source. The output is in CSV format with a header row.
Retrieves a list of columns for a specified table. The output is in CSV format with a header row.
Executes a SQL SELECT query against Snowflake and returns the results.