雪花MCP服务器
一种模型上下文协议(MCP)服务器,提供对Snowflake数据库的安全访问,使AI助手能够执行SQL查询和检索数据。
特性
- 安全连接管理:具有保持活动和超时设置的自动连接处理
- SQL查询执行:通过事务管理支持读写操作
- 错误处理:全面的错误处理和详细的日志记录
- 资料序列化:查询结果(包括日期时间对象)的安全JSON序列化
设置
先决条件
- Python 3.8+
- 具有适当权限的Snowflake帐户
安装
- 安装所需的依赖项:
pip install snowflake-connector-python python-dotenv mcp- 创建一个
.env使用Snowflake凭据创建文件:
SNOWFLAKE_USER=your_username
SNOWFLAKE_PASSWORD=your_password
SNOWFLAKE_ACCOUNT=your_account_identifier
SNOWFLAKE_WAREHOUSE=your_warehouse- 使脚本可执行:
chmod +x snowflake_server.py配置
服务器连接到 ATHENAHEALTH.ATHENAONE 默认情况下,数据库。修改 config 字典在 SnowflakeConnection 类来更改目标数据库/模式。
用法
运行服务器
启动MCP服务器:
python snowflake_server.py可用工具
execute_query
在Snowflake数据库上执行SQL查询。
参数:
query(string):要执行的SQL语句
示例:
SELECT * FROM users LIMIT 10INSERT INTO logs (message, timestamp) VALUES ('test', CURRENT_TIMESTAMP())UPDATE settings SET value = 'new_value' WHERE key = 'config'
安全说明
- 凭据仅从环境变量加载
- 写入操作使用具有错误自动回滚功能的事务
- 连接超时可防止挂起连接
- 查询日志记录不包括敏感数据
错误处理
服务器提供详细的错误信息,包括:
- 带有错误代码的SQL语法错误
- 具有重试逻辑的连接失败
- 查询执行超时
- 数据序列化问题
日志记录
默认情况下启用调试级日志记录,跟踪:
- 连接建立和健康
- 查询执行次数
- 行数和受影响的记录
- 错误详细信息和堆栈跟踪
