关于 Mcp Snowflake Service
Mcp Snowflake Service 是一个 MCP 服务,让 Claude 能够访问 Snowflake 数据库并执行 SQL 查询。它会自动管理数据库连接的创建、超时重连与关闭,适合需要通过 Claude 查询 Snowflake 数据的用户。
主要功能
- 01执行 Snowflake SQL 查询
- 02自动管理连接生命周期
- 03超时后自动重连
- 04处理查询结果与错误
- 05通过 .env 文件配置连接参数
适用场景
- 01让 Claude 直接查询 Snowflake 数据仓库
- 02通过只读数据库用户限制数据访问范围
MCP 相关
这是一个 MCP 服务,向 Claude Desktop 等 MCP 客户端提供 Snowflake 查询能力,由客户端根据配置自动启动和停止。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
一种 Model Context Protocol(MCP)服务器,可让 Claude 访问 Snowflake 数据库。 / 一个为 Claude 提供 Snowflake 数据库访问能力的 MCP (模型上下文协议) 服务器。
此服务器实现了 Model Context Protocol,使 Claude 能够:
- 在 Snowflake 数据库上执行 SQL 查询
- 自动管理数据库连接生命周期(连接、超时后重连、关闭)
- 处理查询结果和错误
- 安全地执行数据库操作
此服务器实现了模型上下文协议,使 Claude 能够:
- 在 Snowflake 数据库上执行 SQL 查询
- 自动管理数据库连接生命周期(连接创建、超时重连、连接关闭)
- 处理查询结果和错误
- 安全地执行数据库操作
安装 / 安装
通过 Smithery 安装
要通过 Smithery 为 Claude Desktop 自动安装 mcp-service-snowflake:
npx -y @smithery/cli install @datawiz168/mcp-service-snowflake --client claude
手动安装
- 克隆此仓库 / 克隆此仓库
git clone https://github.com/datawiz168/mcp-snowflake-service.git
- 安装依赖 / 安装依赖
pip install -r requirements.txt
配置 / 配置说明
MCP 客户端配置示例 / MCP 客户端配置示例
在 claude_desktop_config.json 中添加以下配置 / 在 claude_desktop_config.json 中添加配置:
{
"mcpServers": {
"snowflake": {
"command": "C:\\Users\\K\\anaconda3\\envs\\regular310\\python.exe",
"args": ["D:\\tools\\mcp-snowflake\\server.py"]
}
}
}
配置参数 / 配置参数说明:
command:Python 解释器的完整路径。请根据 Python 的安装位置进行修改。 / Python 解释器的完整路径,请根据您的 Python 安装位置进行修改。args:服务器脚本的完整路径。请根据仓库克隆位置进行修改。 / 服务器脚本的完整路径,请根据您克隆仓库的位置进行修改。
不同操作系统的路径示例 / 不同操作系统的路径示例:
Windows:
{
"mcpServers": {
"snowflake": {
"command": "C:\\Users\\YourUsername\\anaconda3\\python.exe",
"args": ["C:\\Path\\To\\mcp-snowflake\\server.py"]
}
}
}
MacOS/Linux:
{
"mcpServers": {
"snowflake": {
"command": "/usr/bin/python3",
"args": ["/path/to/mcp-snowflake/server.py"]
}
}
}
Snowflake 配置 / Snowflake 配置
在项目根目录下创建 .env 文件,并添加以下配置 / 在项目根目录下创建 .env 文件,添加以下配置:
SNOWFLAKE_USER=your_username # Your username / 您的用户名
SNOWFLAKE_PASSWORD=your_password # Your password / 您的密码
SNOWFLAKE_ACCOUNT=NRB18479.US-WEST-2 # Example: NRB18479.US-WEST-2 / 示例: NRB18479.US-WEST-2
SNOWFLAKE_DATABASE=your_database # Your database / 您的数据库
SNOWFLAKE_WAREHOUSE=your_warehouse # Your warehouse / 您的数据仓库
连接管理 / 连接管理
服务器提供自动连接管理功能 / 服务器提供以下自动连接管理功能:
-
自动初始化连接 / 自动初始化连接
- 收到首次查询时创建连接 / 首次查询时自动创建连接
- 验证连接参数 / 验证连接参数
-
连接维护 / 连接维护
- 跟踪连接状态 / 跟踪连接状态
- 处理连接超时 / 处理连接超时
- 连接断开时自动重连 / 连接断开时自动重连
-
连接清理 / 连接清理
- 服务器停止时正确关闭连接 / 服务器停止时正确关闭连接
- 适当释放资源 / 适当释放资源
使用说明 / 使用说明
服务器会随 Claude Desktop 客户端自动启动,无需手动启动。服务器运行后,Claude 即可执行 Snowflake 查询。 / 服务器会随 Claude Desktop 客户端自动启动,无需手动运行。服务器启动后,Claude 将能够执行 Snowflake 查询。
如需进行开发测试,可使用以下命令手动启动服务器 / 如果需要单独启动服务器进行测试,可以使用以下命令:
python server.py
注意:正常使用时无需手动启动服务器。Claude Desktop 客户端会根据配置自动管理服务器的启动和关闭。 / 注意:正常使用时无需手动启动服务器,Claude Desktop 客户端会根据配置自动管理服务器的启动和停止。
功能 / 功能
- 安全访问 Snowflake 数据库 / 安全的 Snowflake 数据库访问
- 稳健的错误处理与报告 / 健壮的错误处理和报告机制
- 自动连接管理 / 自动连接管理
- 查询执行与结果处理 / 查询执行和结果处理
开发 / 开发
如需贡献代码或报告问题 / 要贡献代码或报告问题,请:
- Fork 此仓库 / Fork 此仓库
- 创建功能分支 / 创建您的功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 / 提交您的更改 (
git commit -m 'Add some AmazingFeature') - 将更改推送到分支 / 推送到分支 (
git push origin feature/AmazingFeature) - 发起 Pull Request / 开启一个 Pull Request
备注 / 备注
mcp‑server‑snowflake 通过数据库用户精确控制数据库访问权限。如果只需读取数据,只需分配一个具有只读数据库权限的用户。/ mcp-server-snowflake 控制数据库访问权限,是通过数据库用户来精准实现的。如果你只想读取数据,给个只有读取数据库权限的用户就行了。
许可证
本项目采用 MIT 许可证。
此项目采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。