数据库查询服务

Snowflake MCP Server 是一个提供安全访问 Snowflake 数据库的服务,支持 AI 助手执行 SQL 查询并检索数据。

  • by iamdhariot
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 iamdhariot/claudie-snowflake-mcp-server

使用说明

雪花MCP服务器

一种模型上下文协议(MCP)服务器,提供对Snowflake数据库的安全访问,使AI助手能够执行SQL查询和检索数据。

特性

  • 安全连接管理:具有保持活动和超时设置的自动连接处理
  • SQL查询执行:通过事务管理支持读写操作
  • 错误处理:全面的错误处理和详细的日志记录
  • 资料序列化:查询结果(包括日期时间对象)的安全JSON序列化

设置

先决条件

  • Python 3.8+
  • 具有适当权限的Snowflake帐户

安装

  1. 安装所需的依赖项:
pip install snowflake-connector-python python-dotenv mcp
  1. 创建一个 .env 使用Snowflake凭据创建文件:
SNOWFLAKE_USER=your_username
SNOWFLAKE_PASSWORD=your_password
SNOWFLAKE_ACCOUNT=your_account_identifier
SNOWFLAKE_WAREHOUSE=your_warehouse
  1. 使脚本可执行:
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 10
  • INSERT INTO logs (message, timestamp) VALUES ('test', CURRENT_TIMESTAMP())
  • UPDATE settings SET value = 'new_value' WHERE key = 'config'

安全说明

  • 凭据仅从环境变量加载
  • 写入操作使用具有错误自动回滚功能的事务
  • 连接超时可防止挂起连接
  • 查询日志记录不包括敏感数据

错误处理

服务器提供详细的错误信息,包括:

  • 带有错误代码的SQL语法错误
  • 具有重试逻辑的连接失败
  • 查询执行超时
  • 数据序列化问题

日志记录

默认情况下启用调试级日志记录,跟踪:

  • 连接建立和健康
  • 查询执行次数
  • 行数和受影响的记录
  • 错误详细信息和堆栈跟踪