项目简介
'snowflake-mcp-server' 仓库包含两个独立的 Model Context Protocol (MCP) 服务器实现,旨在作为 AI 应用程序与 Snowflake 数据仓库之间的桥梁。
- Snowflake MCP 服务器: 主要用于提供与 Snowflake 数据库的通用交互能力,包括数据查询、元数据探索、性能分析和数据质量检查。
- 错误日志 MCP 服务器: 专注于记录、查询和管理 Snowflake 中的错误消息及其解决方案,帮助追踪和解决常见的错误。
通过这些服务器,AI 模型能够以标准化的方式直接与 Snowflake 数据库进行交互,执行 SQL 操作、获取信息,从而极大地简化 AI 应用与数据集成的工作流。
主要功能点
Snowflake MCP 服务器
- SQL 查询执行: 直接在 Snowflake 上运行 SQL 查询,支持数据读取和写入操作。
- 数据库元数据探索: 列出所有可访问的数据库、模式 (Schemas) 和表,并获取表的详细结构信息(包括列名、数据类型等)。
- 数据抽样: 从指定表中快速获取少量数据样本,方便AI模型理解数据内容。
- 列统计信息: 提供特定列的基本统计数据,如总数、非空数、唯一值数、最大/最小值、平均值和标准差等。
- 表和列搜索: 允许用户根据名称或注释搜索 Snowflake 中的表和列。
- 数据仓库监控: 获取 Snowflake 数据仓库的详细信息,包括使用统计、性能指标和负载情况。
- 存储过程管理: 支持从 SQL 文件创建或替换 Snowflake 存储过程。
- 模式检查: 对指定的表或模式进行结构检查。
- 性能分析: 分析 SQL 查询的执行计划和性能指标,帮助识别和优化低效查询。
- 数据质量检查: 对表执行常见的数据质量检查,如空值和重复值检测。
错误日志 MCP 服务器
- 错误记录: 能够记录错误消息、尝试的解决方案及其成功与否,并支持添加备注和错误类型分类。
- 解决方案检索: 根据错误消息查找所有已知的解决方案,并按成功次数排序,提供最佳解决方案。
- 错误类型获取: 获取特定错误消息的分类类型。
- 所有错误概览: 获取所有已记录的错误及其解决方案的完整列表。
安装步骤
在您的本地机器上安装和设置这些 MCP 服务器需要以下步骤:
- 克隆仓库:
打开终端或命令行,执行以下命令将 'snowflake-mcp-server' 仓库克隆到您的本地:
git clone https://github.com/snowflake-mcp/snowflake-mcp-server.git cd snowflake-mcp-server - 创建并激活虚拟环境:
建议使用 Python 虚拟环境来管理项目依赖。
python -m venv venv # 对于 macOS 或 Linux 系统: source venv/bin/activate # 对于 Windows 系统: venv\Scripts\activate - 安装依赖:
激活虚拟环境后,安装项目所需的 Python 包:
pip install -r requirements.txt - 配置 Snowflake 连接:
在 'snowflake-mcp-server' 仓库的根目录下创建一个名为 '.env' 的文件,并根据您的 Snowflake 账户信息填写以下环境变量。请根据您的认证方式选择保留 'SNOWFLAKE_PASSWORD' 或 'SNOWFLAKE_AUTHENTICATOR'。
SNOWFLAKE_USER="your_snowflake_username" SNOWFLAKE_ACCOUNT="your_snowflake_account_identifier" SNOWFLAKE_DATABASE="your_snowflake_database" SNOWFLAKE_WAREHOUSE="your_snowflake_warehouse" # 密码认证 (如果使用此方式,请设置密码) SNOWFLAKE_PASSWORD="your_snowflake_password" # SSO认证 (如果使用此方式,请设置 authenticator,并移除 SNOWFLAKE_PASSWORD) # SNOWFLAKE_AUTHENTICATOR="externalbrowser"
服务器配置 (为 MCP 客户端准备)
MCP 客户端(例如 Cursor IDE)需要配置服务器的启动命令和参数才能与其建立连接。以下是两个 MCP 服务器的配置示例,您需要将其添加到您的 MCP 客户端的设置中(例如在 Cursor IDE 的 MCP 工具设置中)。
1. Snowflake MCP 服务器配置
此配置用于连接主要的 Snowflake 交互服务器。
{ "mcpServers": { "snowflake": { "command": "您的仓库路径/venv/bin/python3.13", "args": ["您的仓库路径/snowflake_mcp/main.py"] } } }
- 'snowflake': 这是 MCP 客户端中该服务器的名称标识符。
- 'command': 指向您虚拟环境中的 Python 解释器路径。请将 '"您的仓库路径"' 替换为 'snowflake-mcp-server' 仓库在您系统中的绝对路径。
- 'args': 启动 'snowflake_mcp' 主服务器脚本的路径。请将 '"您的仓库路径"' 替换为 'snowflake-mcp-server' 仓库在您系统中的绝对路径。
2. 错误日志 MCP 服务器配置 (可选)
此配置用于连接独立的错误日志管理服务器。
{ "mcpServers": { "error_log": { "command": "您的仓库路径/venv/bin/python3.13", "args": ["您的仓库路径/error_log_mcp/main.py"] } } }
- 'error_log': 这是 MCP 客户端中该服务器的名称标识符。
- 'command': 指向您虚拟环境中的 Python 解释器路径。请将 '"您的仓库路径"' 替换为 'snowflake-mcp-server' 仓库在您系统中的绝对路径。
- 'args': 启动 'error_log_mcp' 主服务器脚本的路径。请将 '"您的仓库路径"' 替换为 'snowflake-mcp-server' 仓库在您系统中的绝对路径。
基本使用方法
在 MCP 客户端中正确配置并启动上述服务器后,连接到该客户端的 AI 模型就能够通过调用这些服务器提供的工具来与 Snowflake 数据库进行交互。
例如:
- AI 模型可以通过调用 'snowflake' 服务器的 'process_req' 工具,并提供一个 SQL 查询字符串(如 'query: "SELECT * FROM sales_data LIMIT 5;"')来获取数据。
- AI 模型可以调用 'snowflake' 服务器的 'list_tables' 工具来获取指定数据库和模式下的所有表列表。
- 如果 AI 模型遇到一个错误,它可以通过调用 'error_log' 服务器的 'log_error' 工具来记录错误消息和尝试的解决方案。
- 当 AI 模型需要查找某个错误的解决方案时,它可以调用 'error_log' 服务器的 'get_best_resolution' 工具,传入错误消息来获取最佳建议。
具体的工具调用和参数传递将由 MCP 客户端根据 AI 模型的需求和上下文自动完成。
信息
分类
数据库与文件