项目简介
该项目是一个 Model Context Protocol (MCP) 服务器,旨在让 Claude 等大型语言模型 (LLM) 安全便捷地访问 Snowflake 数据库。通过实现 MCP 协议,它允许 LLM 通过标准化的方式执行 SQL 查询,从而获取和利用 Snowflake 中的数据,扩展 LLM 的上下文信息来源和能力边界。
主要功能点
- SQL 查询执行: 提供 'execute_query' 工具,允许 LLM 在 Snowflake 数据库上执行 SQL 查询,检索数据或进行数据操作。
- 自动连接管理: 服务器自动处理 Snowflake 数据库连接的生命周期,包括首次查询时建立连接、处理连接超时并自动重连、以及在服务器停止时安全关闭连接,无需手动管理数据库连接。
- 安全访问: 通过读取 '.env' 文件中的环境变量来配置 Snowflake 数据库的连接凭据,避免敏感信息硬编码在代码中,提高安全性。
- 错误处理和报告: 具备完善的错误处理机制,能够捕获并记录 SQL 查询执行过程中的错误,并将错误信息返回给 LLM 客户端。
安装步骤
- 克隆仓库: 使用 Git 命令克隆该仓库到本地:
git clone https://github.com/MCP-Mirror/datawiz168_mcp-snowflake-service.git - 安装依赖: 进入克隆的仓库目录,并使用 pip 安装项目所需的 Python 依赖包:
cd datawiz168_mcp-snowflake-service pip install -r requirements.txt - 配置 Snowflake 数据库连接信息: 在项目根目录下创建名为 '.env' 的文件,并根据您的 Snowflake 数据库信息,按照以下格式填写连接配置:
请替换 'your_username', 'your_password', 'your_account_identifier', 'your_database_name', 'your_warehouse_name' 为您实际的 Snowflake 数据库连接信息。SNOWFLAKE_USER=your_username SNOWFLAKE_PASSWORD=your_password SNOWFLAKE_ACCOUNT=your_account_identifier # 例如: NRB18479.US-WEST-2 SNOWFLAKE_DATABASE=your_database_name SNOWFLAKE_WAREHOUSE=your_warehouse_name
服务器配置 (MCP 客户端配置)
要将此 MCP 服务器与 MCP 客户端(例如 Claude)连接,您需要在 MCP 客户端的配置文件中添加服务器配置信息。以 'claude_desktop_config.json' 文件为例,您需要在 'mcpServers' 字段下添加一个新的配置项,配置信息如下:
{ "mcpServers": { "snowflake": { // "snowflake" 为自定义的服务名称,在 Claude 中使用 @snowflake.tool_name 调用工具 "command": "/path/to/python", // **[必填]** Python 解释器的完整路径。例如: // Windows: "C:\\Users\\YourUsername\\anaconda3\\python.exe" // macOS/Linux: "/usr/bin/python3" 或 "/usr/local/bin/python3" "args": ["/path/to/mcp-snowflake-service/server.py"] // **[必填]** 服务器脚本 'server.py' 的完整路径。请根据您克隆仓库的实际路径进行修改。 } } }
请根据您的 Python 安装路径和仓库克隆路径,修改 'command' 和 'args' 字段的值。 'command' 指定了运行服务器脚本的 Python 解释器路径,'args' 指定了服务器脚本 'server.py' 的路径。 'snowflake' 是您为该服务器自定义的名称,在 Claude 等 MCP 客户端中,您将使用这个名称来调用服务器提供的工具,例如 '@snowflake.execute_query'。
基本使用方法
完成上述配置后,当您启动配置了 MCP 的客户端(如 Claude 桌面应用)时,该 MCP 服务器将自动启动并与客户端建立连接。在 Claude 中,您可以使用 '@snowflake.execute_query' 工具,并提供 SQL 查询语句作为参数,即可指示 Claude 通过此 MCP 服务器在 Snowflake 数据库上执行 SQL 查询并获取结果。 例如,您可以向 Claude 提问:
'@snowflake.execute_query query="SELECT * FROM your_table LIMIT 10"'
Claude 将调用 'snowflake' 服务器的 'execute_query' 工具,执行您提供的 SQL 查询,并将查询结果返回给您。
信息
分类
数据库与文件