Mcp Server Snowflake

Mcp Server Snowflake

🚀 Snowflake MCP 服务器

Snowflake MCP 服务器是一款用于对 Snowflake 数据库执行只读操作的模型上下文协议(MCP)服务器。它能让 Claude 在不修改任何信息的情况下,安全地查询 Snowflake 数据。

🚀 快速开始

Snowflake MCP 服务器可让 Claude 安全地对 Snowflake 数据库进行只读查询。以下为你介绍如何快速开启使用之旅:

安装

先决条件

  • Python 3.12+
  • Snowflake 账户(需具备只读权限)

安装步骤

  1. 复制 .env.example 文件并重命名为 .env
  2. 配置环境变量:
cp .env.example .env
# 配置以下内容到.env文件中
SNOWFLAKE_AUTH_TYPE=private_key  # 或 external_browser
SNOWFLAKE_ACCOUNT_NAME=your_account_name
SNOWFLAKE_USER_NAME=your_user_name
SNOWFLAKE_PRIVATE_KEY_PATH=path_to_your_private_key  # 如果使用 private_key 认证
  1. 安装依赖:
pip install -r requirements.txt

运行服务器

python mcp_server_snowflake.py

与 Claude 桌面集成

  1. 在终端中运行服务器。
  2. 打开 Claude 桌面并连接到运行中的 MCP 服务器即可开始交互。

✨ 主要特性

  • 灵活的身份验证:可通过以下方式连接到 Snowflake:
    • 使用服务账户和私有密钥进行身份验证。
    • 使用外部浏览器进行交互式会话身份验证。
  • 连接池管理:带自动后台刷新,以保持长时间运行的连接。
  • 丰富的操作支持:支持查询数据、显示数据库结构、描述查询计划、解释执行计划以及限制结果集大小等操作。
  • 自动添加限制:自动添加 LIMIT 子句以防止大数据集的返回。
  • 输入验证:使用 Pydantic 进行输入验证以防止 SQL 注入。

📦 安装指南

先决条件

  • Python 3.12+
  • Snowflake 账户(需具备只读权限)

安装步骤

  1. 复制 .env.example 文件并重命名为 .env
  2. 配置环境变量如下:
cp .env.example .env
# 配置以下内容到.env文件中
SNOWFLAKE_AUTH_TYPE=private_key  # 或 external_browser
SNOWFLAKE_ACCOUNT_NAME=your_account_name
SNOWFLAKE_USER_NAME=your_user_name
SNOWFLAKE_PRIVATE_KEY_PATH=path_to_your_private_key  # 如果使用 private_key 认证
  1. 安装依赖:
pip install -r requirements.txt

💻 使用示例

基础用法

运行服务器

python mcp_server_snowflake.py

与 Claude 桌面集成

  1. 在终端中运行服务器。
  2. 打开 Claude 桌面并连接到运行中的 MCP 服务器即可开始交互。

📚 详细文档

配置选项

环境变量配置

  • SNOWFLAKE_CONN_REFRESH_HOURS:设置连接的自动刷新间隔(默认为 24)。
SNOWFLAKE_CONN_REFRESH_HOURS=4  # 设置为4小时

认证方式

私有密钥认证

  1. 在 Snowflake 中创建用户并生成密钥对,具体操作请参考 Snowflake 文档
  2. 配置环境变量:
SNOWFLAKE_AUTH_TYPE=private_key
SNOWFLAKE_PRIVATE_KEY_PATH=/path/to/your/private-key.pem

外部浏览器认证

  1. 配置环境变量:
SNOWFLAKE_AUTH_TYPE=external_browser
  1. 启动服务器后,浏览器会自动打开进行身份验证。

安全注意事项

  • 仅允许执行读取操作(SELECT、SHOW、DESCRIBE、EXPLAIN 和 WITH 语句)。
  • 输入经过严格验证以防止 SQL 注入攻击。
  • 确保 .env 文件的安全性,避免泄露敏感信息。
  • 使用 HTTPS 进行通信以确保数据传输安全。

开发细节

静态类型检查

mypy mcp_server_snowflake/

代码格式化

ruff format .

执行测试

pytest

🔧 技术细节

  • 0 关注
  • 0 收藏,26 浏览
  • system 提出于 2025-09-24 00:39

相似服务问题

相关AI产品