/mcp-snowflake-service

MCP server implementation for Snowflake integration

Primary LanguagePythonMIT LicenseMIT

A Model Context Protocol (MCP) server that provides Claude access to Snowflake databases. / 一个为 Claude 提供 Snowflake 数据库访问能力的 MCP (模型上下文协议) 服务器。

GitHub Stars

This server implements the Model Context Protocol to allow Claude to:

  • Execute SQL queries on Snowflake databases
  • Automatically handle database connection lifecycle (connect, reconnect on timeout, close)
  • Handle query results and errors
  • Perform database operations safely

此服务器实现了模型上下文协议,使 Claude 能够:

  • 在 Snowflake 数据库上执行 SQL 查询
  • 自动管理数据库连接生命周期(连接创建、超时重连、连接关闭)
  • 处理查询结果和错误
  • 安全地执行数据库操作

Installation / 安装

  1. Clone this repository / 克隆此仓库
git clone https://github.com/datawiz168/mcp-snowflake-service.git
  1. Install dependencies / 安装依赖
pip install -r requirements.txt

Configuration / 配置说明

MCP Client Configuration Example / MCP 客户端配置示例

Add the following configuration to claude_desktop_config.json / 在 claude_desktop_config.json 中添加配置:

{
  "mcpServers": {
    "snowflake": {
      "command": "C:\\Users\\K\\anaconda3\\envs\\regular310\\python.exe",
      "args": ["D:\\tools\\mcp-snowflake\\server.py"]
    }
  }
}

Configuration parameters / 配置参数说明:

  • command: Full path to your Python interpreter. Please modify this according to your Python installation location. / Python 解释器的完整路径,请根据您的 Python 安装位置进行修改。
  • args: Full path to the server script. Please modify this according to where you cloned the repository. / 服务器脚本的完整路径,请根据您克隆仓库的位置进行修改。

Example paths for different operating systems / 不同操作系统的路径示例:

Windows:

{
  "mcpServers": {
    "snowflake": {
      "command": "C:\\Users\\YourUsername\\anaconda3\\python.exe",
      "args": ["C:\\Path\\To\\mcp-snowflake\\server.py"]
    }
  }
}

MacOS/Linux:

{
  "mcpServers": {
    "snowflake": {
      "command": "/usr/bin/python3",
      "args": ["/path/to/mcp-snowflake/server.py"]
    }
  }
}

Snowflake Configuration / Snowflake 配置

Create a .env file in the project root directory and add the following configuration / 在项目根目录下创建 .env 文件,添加以下配置:

SNOWFLAKE_USER=your_username      # Your username / 您的用户名
SNOWFLAKE_PASSWORD=your_password  # Your password / 您的密码
SNOWFLAKE_ACCOUNT=NRB18479.US-WEST-2    # Example: NRB18479.US-WEST-2 / 示例: NRB18479.US-WEST-2
SNOWFLAKE_DATABASE=your_database  # Your database / 您的数据库
SNOWFLAKE_WAREHOUSE=your_warehouse # Your warehouse / 您的数据仓库

Connection Management / 连接管理

The server provides automatic connection management features / 服务器提供以下自动连接管理功能:

  • Automatic connection initialization / 自动初始化连接

    • Creates connection when first query is received / 首次查询时自动创建连接
    • Validates connection parameters / 验证连接参数
  • Connection maintenance / 连接维护

    • Keeps track of connection state / 跟踪连接状态
    • Handles connection timeouts / 处理连接超时
    • Automatically reconnects if connection is lost / 连接断开时自动重连
  • Connection cleanup / 连接清理

    • Properly closes connections when server stops / 服务器停止时正确关闭连接
    • Releases resources appropriately / 适当释放资源

Usage / 使用说明

The server will start automatically with the Claude Desktop client. No manual startup is required. Once the server is running, Claude will be able to execute Snowflake queries. / 服务器会随 Claude Desktop 客户端自动启动,无需手动运行。服务器启动后,Claude 将能够执行 Snowflake 查询。

For development testing, you can start the server manually using / 如果需要单独启动服务器进行测试,可以使用以下命令:

python server.py

Note: Manual server startup is not needed for normal use. The Claude Desktop client will automatically manage server startup and shutdown based on the configuration. / 注意:正常使用时无需手动启动服务器,Claude Desktop 客户端会根据配置自动管理服务器的启动和停止。

Features / 功能

  • Secure Snowflake database access / 安全的 Snowflake 数据库访问
  • Robust error handling and reporting / 健壮的错误处理和报告机制
  • Automatic connection management / 自动连接管理
  • Query execution and result processing / 查询执行和结果处理

Development / 开发

To contribute code or report issues / 要贡献代码或报告问题,请:

  1. Fork this repository / Fork 此仓库
  2. Create your feature branch / 创建您的功能分支 (git checkout -b feature/AmazingFeature)
  3. Commit your changes / 提交您的更改 (git commit -m 'Add some AmazingFeature')
  4. Push to the branch / 推送到分支 (git push origin feature/AmazingFeature)
  5. Open a Pull Request / 开启一个 Pull Request

License / 许可

License: MIT

This project is licensed under the MIT License.

此项目采用 MIT 许可证