Overview
Execute SQL queries and manage Snowflake data warehouse for analytics.
Setup
Run with npx:
npx -y @modelcontextprotocol/server-snowflakeConfiguration
SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD, SNOWFLAKE_WAREHOUSE, SNOWFLAKE_DATABASE, SNOWFLAKE_SCHEMADocumentation
Snowflake MCP
Overview
Snowflake MCP 是一个模型上下文协议服务器,允许 AI 代理直接与 Snowflake 数据仓库进行交互。通过此 MCP 服务器,AI 可以执行 SQL 查询、分析数据、创建视图、管理表结构和用户权限。这对于数据分析、商业智能和数据工程场景非常有用。
Snowflake MCP 使得 AI 代理能够成为智能数据分析师,自动编写和运行 SQL、生成洞察报告、识别数据模式、创建可视化建议。它特别适合处理大规模数据分析、自动化报表和数据库管理。
Features
- SQL 执行:运行任意 SQL 查询
- 数据探索:浏览表结构、列信息、样本数据
- 性能分析:分析查询执行计划
- 对象管理:创建、修改、删除表、视图、管道
- 用户权限:管理角色和权限
- 数据质量:运行数据质量检查
- 结果导出:导出查询结果为多种格式
Installation
# 使用 npx 运行
npx -y @modelcontextprotocol/server-snowflake
# 或使用 uvx
uvx mcp-server-snowflake
Configuration
添加以下配置到 claude_desktop_config.json:
{
"mcpServers": {
"snowflake": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-snowflake"],
"env": {
"SNOWFLAKE_ACCOUNT": "your-account",
"SNOWFLAKE_USER": "your-username",
"SNOWFLAKE_PASSWORD": "your-password",
"SNOWFLAKE_WAREHOUSE": "your-warehouse",
"SNOWFLAKE_DATABASE": "your-database",
"SNOWFLAKE_SCHEMA": "your-schema"
}
}
}
}
Available Tools
| Tool | Description |
|---|---|
snowflake_list_databases | 列出所有数据库 |
snowflake_list_tables | 列出数据库中的表 |
snowflake_describe_table | 获取表结构详情 |
snowflake_query | 执行 SQL 查询 |
snowflake_get_query_result | 获取查询结果 |
snowflake_explain_query | 分析查询执行计划 |
Usage Examples
示例 1:探索数据
AI: 查看 sales 数据库中有哪些表,以及每个表的结构
Snowflake MCP:
- 调用 snowflake_list_tables
- 对每个表调用 snowflake_describe_table
- 返回表结构和列信息
示例 2:数据分析
AI: 分析过去 30 天的销售趋势,按产品类别分组
Snowflake MCP:
- 编写 SQL:
SELECT category, SUM(amount), COUNT(*)
FROM sales
WHERE sale_date >= DATEADD(day, -30, CURRENT_DATE())
GROUP BY category
ORDER BY SUM(amount) DESC
- 执行查询并返回结果
示例 3:性能优化
AI: 这个查询运行很慢,帮我分析原因
Snowflake MCP:
- 调用 snowflake_explain_query
- 分析执行计划
- 提供优化建议(索引、分区、查询重写)
Pros
- ✅ 完整的 Snowflake API 覆盖
- ✅ 支持大规模数据分析
- ✅ 适合数据驱动决策
- ✅ 开源免费
- ✅ 与 Snowflake 生态深度集成
Cons
- ❌ 需要 Snowflake 账户和权限
- ❌ 配置较复杂(需要多个连接参数)
- ❌ 查询结果大小有限制
- ❌ Snowflake 使用成本较高
When to Use
- 需要 AI 辅助数据分析时
- 想要自动化 SQL 查询时
- 需要生成数据洞察报告时
- 想要优化查询性能时
