Snowflake MCP Service 使用说明
项目简介
Snowflake MCP Service 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为 Claude 等大型语言模型 (LLM) 提供访问 Snowflake 数据库的能力。通过此服务,Claude 可以执行 SQL 查询,获取 Snowflake 中的数据,从而扩展其知识范围和数据分析能力。
主要功能点
- 安全地执行 Snowflake SQL 查询: 允许 Claude 通过工具调用执行 SQL 查询,获取 Snowflake 数据库中的数据。
- 自动数据库连接管理: 服务器自动处理与 Snowflake 数据库的连接,包括首次查询时建立连接、连接保活、超时重连和服务器停止时关闭连接,无需手动管理数据库连接的生命周期。
- 支持密码和密钥对认证: 支持 Snowflake 的密码认证和更安全的密钥对认证方式,用户可以根据安全需求选择合适的认证方式。
- 详细的日志记录: 提供全面的日志记录,方便开发者监控服务器运行状态和排查问题。
- 错误处理和报告: 能够捕获和报告 SQL 查询执行过程中的错误,并将错误信息返回给客户端。
安装步骤
- 克隆仓库: 首先,你需要将 GitHub 仓库 'snowflake-mcp' 克隆到本地:
git clone https://github.com/davidamom/snowflake-mcp.git - 安装依赖: 进入克隆的仓库目录,并使用 pip 安装项目依赖:
cd snowflake-mcp pip install -r requirements.txt
服务器配置
为了让 MCP 客户端(例如 Claude)能够连接到 Snowflake MCP Service,你需要在客户端的配置文件中添加服务器配置信息。以 'claude_desktop_config.json' 为例,你需要配置 'mcpServers' 字段,指定服务器名称、启动命令和参数。
MCP 客户端配置示例 (JSON 格式):
{ "mcpServers": { "snowflake": { "command": "/path/to/python3", // Python 解释器路径,请替换为你实际的 Python 3 解释器路径 "args": ["/path/to/snowflake-mcp/server.py"] // 服务器脚本路径,请替换为你克隆的 snowflake-mcp 仓库中 server.py 脚本的路径 } } }
参数说明:
- '"snowflake"': 服务器名称,可以自定义,用于在客户端中标识该服务器。
- '"command"': 必填。Python 3 解释器的完整路径。你需要根据你的操作系统和 Python 安装位置进行修改。
- 例如,在 macOS 或 Linux 上,通常为 '/usr/bin/python3' 或 '/usr/local/bin/python3'。
- 在 Windows 上,可能是 'C:\Users\YourUsername\anaconda3\python.exe' 或 'C:\Python39\python.exe'。
- '"args"': 必填。一个字符串数组,包含服务器启动脚本的路径。这里需要填写你克隆的 'snowflake-mcp' 仓库中 'server.py' 脚本的完整路径。
Snowflake 数据库配置:
Snowflake MCP Service 需要连接到你的 Snowflake 数据库才能工作。数据库连接信息通过 '.env' 文件配置。在克隆的 'snowflake-mcp' 仓库根目录下,创建名为 '.env' 的文件,并按照以下格式填写你的 Snowflake 数据库连接信息:
# Snowflake Configuration - Basic Info SNOWFLAKE_USER=your_snowflake_username # 你的 Snowflake 用户名 SNOWFLAKE_ACCOUNT=YourAccount.Region # 你的 Snowflake Account,例如: MyOrg.US-WEST-2 SNOWFLAKE_DATABASE=your_snowflake_database # 你要连接的 Snowflake 数据库名 SNOWFLAKE_WAREHOUSE=your_snowflake_warehouse # 你要使用的 Snowflake Warehouse 名称 # Authentication - 选择一种认证方式 # 方式 1: 密码认证 (不推荐生产环境使用) # SNOWFLAKE_PASSWORD=your_snowflake_password # 你的 Snowflake 密码 # 方式 2: 密钥对认证 (推荐) # SNOWFLAKE_PRIVATE_KEY_FILE=/path/to/rsa_key.p8 # RSA 私钥文件路径,请替换为你实际的私钥文件路径 # SNOWFLAKE_PRIVATE_KEY_PASSPHRASE=your_key_passphrase # (可选) 私钥密码,如果你的私钥文件设置了密码,请填写
配置说明:
- 'SNOWFLAKE_USER': 你的 Snowflake 用户名。
- 'SNOWFLAKE_ACCOUNT': 你的 Snowflake Account 标识符,可以在 Snowflake Web UI 的 URL 中找到。
- 'SNOWFLAKE_DATABASE': 你要连接的 Snowflake 数据库名称。
- 'SNOWFLAKE_WAREHOUSE': 你要使用的 Snowflake Warehouse 名称,用于执行 SQL 查询。
- 'SNOWFLAKE_PASSWORD': (密码认证) 你的 Snowflake 密码。不推荐在生产环境中使用密码认证,密钥对认证更安全。
- 'SNOWFLAKE_PRIVATE_KEY_FILE': (密钥对认证) 你的 RSA 私钥文件 ( '.p8' 文件) 的完整路径。你需要先在 Snowflake 中配置密钥对认证。
- 'SNOWFLAKE_PRIVATE_KEY_PASSPHRASE': (密钥对认证) 如果你的私钥文件设置了密码,请填写私钥密码。
请务必根据你的 Snowflake 账号信息和选择的认证方式,正确配置 '.env' 文件。
基本使用方法
Snowflake MCP Service 设计为与 MCP 客户端自动协同工作。一旦你完成了客户端和服务器的配置,并在客户端中启用了 "snowflake" 服务器,客户端就能自动启动和管理 Snowflake MCP Service。
通常情况下,你不需要手动启动 'server.py' 脚本。MCP 客户端会在需要时自动启动服务器。
如果你需要进行开发测试,可以手动运行 'server.py' 脚本来启动服务器:
python server.py
但这仅用于开发测试,正常使用时应由 MCP 客户端自动管理服务器的生命周期。
启动后,当 Claude 等 MCP 客户端需要访问 Snowflake 数据时,它会通过 "execute_query" 工具调用 Snowflake MCP Service,服务会将 SQL 查询发送到 Snowflake 数据库执行,并将结果返回给客户端。
信息
分类
数据库与文件