A server for Snowflake providing tools for its Cortex AI features, including Search, Analyst, and Complete.
This Snowflake MCP server provides tooling for Snowflake Cortex AI features, bringing these capabilities to the MCP ecosystem. When connected to an MCP Client (e.g. Claude for Desktop, fast-agent, Agentic Orchestration Framework), users can leverage these Cortex AI features.
The MCP server currently supports the below Cortex AI capabilities:
A simple configuration file is used to create tooling for the various Cortex AI features. An example can be seen at services/tools_config.yaml and a template is below. Many Cortex Search and Cortex Analyst services can be added. Ideal descriptions are both highly descriptive and mutually exclusive. The path to this configuration file will be passed to the server and the contents used to create MCP server tools at startup.
search_services: # List all Cortex Search services
- service_name: "<service_name>"
description: > # Should start with "Search service that ..."
"<Search services that ...>"
database_name: "<database_name>"
schema_name: "<schema_name>"
columns: [] # Optional: List of columns to return for each relevant result (default: [])
limit: 10 # Optional: Limit on the number of results to return (default: 10)
- service_name: "<service_name>"
description: > # Should start with "Search service that ..."
"<Search services that ...>"
database_name: "<database_name>"
schema_name: "<schema_name>"
columns: [] # Optional: List of columns to return for each relevant result (default: [])
limit: 10 # Optional: Limit on the number of results to return (default: 10)
analyst_services: # List all Cortex Analyst semantic models/views
- service_name: "<service_name>" # Create descriptive name for the service
semantic_model: "<semantic_yaml_or_view>" # Fully-qualify semantic YAML model or Semantic View
description: > # Should start with "Analyst service that ..."
"<Analyst service that ...>"
- service_name: "<service_name>" # Create descriptive name for the service
semantic_model: "<semantic_yaml_or_view>" # Fully-qualify semantic YAML model or Semantic View
description: > # Should start with "Analyst service that ..."
"<Analyst service that ...>"
The MCP server uses the Snowflake Python Connector for all authentication and connection methods. Please refer to the official Snowflake documentation for comprehensive authentication options and best practices.
Connection parameters can be passed as CLI arguments and/or environment variables. The server supports all authentication methods available in the Snowflake Python Connector, including:
Connection parameters can be passed as CLI arguments and/or environment variables:
Parameter | CLI Arguments | Environment Variable | Description |
---|---|---|---|
Account | --account | SNOWFLAKE_ACCOUNT | Account identifier (e.g. xy12345.us-east-1) |
Host | --host | SNOWFLAKE_HOST | Snowflake host URL |
User | --user, --username | SNOWFLAKE_USER | Username for authentication |
Password | --password | SNOWFLAKE_PASSWORD | Password or programmatic access token |
Role | --role | SNOWFLAKE_ROLE | Role to use for connection |
Warehouse | --warehouse | SNOWFLAKE_WAREHOUSE | Warehouse to use for queries |
Passcode in Password | --passcode-in-password | - | Whether passcode is embedded in password |
Passcode | --passcode | SNOWFLAKE_PASSCODE | MFA passcode for authentication |
Private Key | --private-key | SNOWFLAKE_PRIVATE_KEY | Private key for key pair authentication |
Private Key File | --private-key-file | SNOWFLAKE_PRIVATE_KEY_FILE | Path to private key file |
Private Key Password | --private-key-pwd | SNOWFLAKE_PRIVATE_KEY_PWD | Password for encrypted private key |
Authenticator | --authenticator | - | Authentication type (default: snowflake) |
Connection Name | --connection-name | - | Name of connection from connections.toml (or config.toml) file |
[!WARNING] Deprecation Notice: The CLI arguments
--account-identifier
and--pat
, as well as the environment variableSNOWFLAKE_PAT
, are deprecated and will be removed in a future release. Please use--account
and--password
(orSNOWFLAKE_ACCOUNT
andSNOWFLAKE_PASSWORD
) instead.
The MCP server is client-agnostic and will work with most MCP Clients that support basic functionality for MCP tools and (optionally) resources. Below are some examples.
To integrate this server with Claude Desktop as the MCP Client, add the following to your app's server configuration. By default, this is located at
Set the path to the service configuration file and configure your connection method.
{
"mcpServers": {
"mcp-server-snowflake": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Snowflake-Labs/mcp",
"mcp-server-snowflake",
"--service-config-file",
"<path to file>/tools_config.yaml",
"--connection-name",
"default"
]
}
}
}
Register the MCP server in cursor by opening Cursor and navigating to Settings -> Cursor Settings -> MCP. Add the below.
{
"mcpServers": {
"mcp-server-snowflake": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Snowflake-Labs/mcp",
"mcp-server-snowflake",
"--service-config-file",
"<path to file>/tools_config.yaml",
"--connection-name",
"default"
]
}
}
}
Add the MCP server as context in the chat.
For troubleshooting Cursor server issues, view the logs by opening the Output panel and selecting Cursor MCP from the dropdown menu.
Update the fastagent.config.yaml
mcp server section with the configuration file path and connection name.
# MCP Servers
mcp:
servers:
mcp-server-snowflake:
command: "uvx"
args: ["--from", "git+https://github.com/Snowflake-Labs/mcp", "mcp-server-snowflake", "--service-config-file", "<path to file>/tools_config.yaml", "--connection-name", "default"]
For prerequisites, environment setup, step-by-step guide and instructions, please refer to this blog.
The MCP Inspector is suggested for troubleshooting the MCP server. Run the below to launch the inspector.
npx @modelcontextprotocol/inspector uvx --from "git+https://github.com/Snowflake-Labs/mcp" mcp-server-snowflake --service-config-file "<path_to_file>/tools_config.yaml" --connection-name "default"
acme-marketing_test_account
acme-marketing-test-account
Please add issues to the GitHub repository.
A template for deploying a remote, authentication-free MCP server on Cloudflare Workers. Tools are defined directly in the source code.
A remote MCP server deployable on Cloudflare Workers with OAuth login support, using Cloudflare KV for data storage.
Analyzes images using the GPT-4o-mini model via the OpenAI API.
Analyze files and extract Indicators of Compromise (IOCs) by interacting with the Joe Sandbox Cloud service.
Integrates with Alibaba Cloud APIs to manage resources like ECS, Cloud Monitor, and OOS.
An MCP server for accessing YouTube Analytics data, powered by the CData JDBC Driver.
Manage virtual machines across multiple cloud providers, including AWS EC2, Azure Virtual Machines, and GCP Compute Engine.
An unofficial server for interacting with the Yandex Cloud API.
Connects Cloudglue to AI assistants, turning video collections into structured data for LLMs. Requires a Cloudglue API Key.
Retrieve logs from the Mezmo observability platform.