article
README
🚀 Snowflake MCP 服务器
Snowflake MCP 服务器是一个基于 Model Context Protocol (MCP) 的工具,可对 Snowflake 数据库执行只读操作。它让 Claude 能够安全查询 Snowflake 数据,且不会对数据进行任何修改。
🚀 快速开始
在使用 Snowflake MCP 服务器前,你需要完成环境变量配置,并运行服务器。具体步骤如下:
- 在项目根目录创建一个
.env文件,并添加以下内容:
SNOWFLAKE_AUTH_TYPE=private_key 或 external_browser
SNOWFLAKE_PRIVATE_KEY_PATH=私钥路径(如使用 private_key 身份验证)
SNOWFLAKE_ACCOUNT_NAME=账户名称
- 运行服务器:
python mcp_server_snowflake/main.py
✨ 主要特性
- 灵活的身份验证:可通过服务账户和私有密钥进行身份验证,也能使用外部浏览器进行交互式会话身份验证,从而方便地连接到 Snowflake。
- 连接池自动刷新:带有自动背景刷新的连接池,能保持持久连接,确保服务的稳定性。
- 多视图和数据库查询:支持在单个会话中查询多个视图和数据库,满足多样化的数据查询需求。
- 多类型 SQL 语句支持:支持多种 SQL 语句类型,包括 SELECT、SHOW、DESCRIBE、EXPLAIN、WITH。
- MCP 兼容处理器:具备 MCP 兼容的处理器,可用于查询 Snowflake 数据。
- 只读操作与安全检查:仅支持只读操作,并带有安全检查,有效防止数据被修改。
- Python 版本适配:支持 Python 3.12 及以上版本。
- 便于集成:基于标准输入输出 (stdio) 的 MCP 服务器,便于与 Claude Desktop 集成。
📦 安装指南
安装要求
python-dotenv
mypy
ruff
pytest
pydantic
snowflake-connector-python
安装步骤
pip install python-dotenv mypy ruff pytest pydantic snowflake-connector-python
📚 详细文档
功能模块
mcp_server_snowflake.mcp_server:MCP 服务器主逻辑。mcp_server_snowflake.models:数据模型和验证。mcp_server_snowflake.auth:身份验证处理。mcp_server_snowflake.utils:工具函数和配置管理。
安全注意事项
- 所有查询都会自动添加 LIMIT 子句,以防止处理大数据集带来的风险。
- 禁止执行任何写入操作,如 INSERT、UPDATE、DELETE。
- 输入验证严格过滤 SQL 注入风险。
- 私钥和凭据不会持久化到磁盘。
- 使用 HTTPS 进行与 Snowflake 的通信。
开发信息
代码检查工具
# 静态类型检查
mypy mcp_server_snowflake/
# 代码格式检查
ruff check .
# 代码自动格式化
ruff format .
# 单元测试
pytest
贡献指南
欢迎贡献!请随意提交 Pull Request。
🔧 技术细节
- 使用 Snowflake Python 连接器 实现与 Snowflake 的连接。
- 基于 MCP 协议 与 Claude 进行交互。
- 使用 Pydantic 进行数据验证。
- 使用 python-dotenv 管理环境变量。
微信扫一扫