返回市场
mcp-雪花服务

mcp-雪花服务

作者:datawiz16842 星标更新:2025-04-22

项目介绍

一个实现了模型上下文协议(MCP)的服务器,提供Claude访问Snowflake数据库的功能。

GitHub Stars Smithery Badge

此服务器实现了模型上下文协议,允许Claude:

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

安装

通过Smithery安装

要通过Smithery自动安装mcp-service-snowflake给Claude Desktop:

npx -y @smithery/cli install @datawiz168/mcp-service-snowflake --client claude

手动安装

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

配置描述

MCP客户端配置示例

claude_desktop_config.json中添加以下配置:

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

配置参数说明:

  • command:Python解释器的完整路径。请根据您的Python安装位置进行修改。
  • args:服务器脚本的完整路径。请根据您克隆仓库的位置进行修改。

不同操作系统下的示例路径:

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配置

在项目根目录下创建.env文件,并添加以下配置:

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

连接管理

服务器提供了以下自动连接管理功能:

  • 自动连接初始化

    • 接收到第一个查询时自动创建连接
    • 验证连接参数
  • 连接维护

    • 跟踪连接状态
    • 处理连接超时
    • 如果连接丢失则自动重新连接
  • 连接清理

    • 当服务器停止时正确关闭连接
    • 合适地释放资源

使用说明

服务器会随着Claude Desktop客户端自动启动,无需手动启动。一旦服务器运行起来,Claude就可以执行Snowflake查询。

对于开发测试,您可以使用以下命令单独启动服务器:

python server.py

注意:正常情况下不需要手动启动服务器。Claude Desktop客户端会根据配置自动管理服务器的启动和关闭。

功能

  • 安全的Snowflake数据库访问
  • 坚固的错误处理和报告机制
  • 自动连接管理
  • 查询执行和结果处理

开发

要贡献代码或报告问题,请:

  1. 分叉此仓库
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开拉取请求

备注

MCP Server Snowflake通过数据库用户精确控制数据库访问权限。如果您只需要读取数据,只需分配一个只有读取数据库权限的用户。

许可证

License: MIT

此项目采用MIT许可证