自然语言数据库查询服务

Snowflake MCP服务器是一个实现模型上下文协议(MCP)的服务,允许AI助手通过自然语言查询与Snowflake数据库交互。

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

使用说明

雪花MCP(模型上下文协议)服务器

一种模型上下文协议(MCP)服务器实现,允许像Claude这样的人工智能助手通过自然语言查询与Snowflake数据库进行交互。

特性

  • 通过自然语言在Snowflake数据库上执行SQL查询
  • 自动数据库连接生命周期管理(连接、重新连接、关闭)
  • 与Claude、Cursor IDE和其他MCP兼容客户端集成
  • 使用语义理解将自然语言转换为SQL
  • 处理查询结果并格式化以便于阅读
  • 通过适当的身份验证保护数据库操作

先决条件

  • Python 3.8+
  • 具有适当访问权限的Snowflake帐户
  • MCP兼容客户端(Claude、Cursor IDE等)

安装

  1. 克隆此存储库:
git clone https://github.com/yourusername/snowflake-mcp.git
cd snowflake-mcp
  1. 安装所需的依赖项:
pip install -r requirements.txt
  1. 复制示例环境文件并添加Snowflake凭据:
cp .env.sample .env
# Edit .env with your Snowflake credentials

配置

环境变量

创建一个 .env 使用Snowflake凭据创建文件:

SNOWFLAKE_USER=your_username
SNOWFLAKE_PASSWORD=your_password
SNOWFLAKE_ACCOUNT=your_account_locator  # e.g., xy12345.us-east-2
SNOWFLAKE_DATABASE=your_database
SNOWFLAKE_WAREHOUSE=your_warehouse
SNOWFLAKE_SCHEMA=your_schema  # Optional, defaults to PUBLIC
SNOWFLAKE_ROLE=your_role  # Optional, defaults to user's default role

MCP客户端配置

对于游标IDE:

Cursor会自动发现并与MCP服务器集成。只需确保服务器正在运行。

对于Claude Desktop:

将以下内容添加到您的 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "snowflake": {
      "command": "/path/to/python",
      "args": ["/path/to/snowflake-mcp/src/server.py"]
    }
  }
}

替换 /path/to/python 使用Python解释器的路径,以及 /path/to/snowflake-mcp 包含克隆此存储库的完整路径。

用法

Snowflake MCP服务器实现了模型上下文协议(MCP)规范,允许像Claude这样的AI系统通过自然语言连接到Snowflake数据库。

使用MCP CLI(推荐)

MCP Python SDK包括一个命令行界面,可以轻松运行和管理MCP服务器:

  1. 带有Inspector UI的开发模式:
mcp dev src/server.py

这将启动服务器,并在浏览器中打开一个检查器界面,您可以在其中测试工具。

  1. 在Claude桌面中安装:
mcp install src/server.py

这将在Claude Desktop中安装服务器,使其可供Claude使用。

  1. 标准模式:
mcp run src/server.py

这将在没有检查器界面的情况下以标准模式运行服务器。

可用工具

Snowflake MCP服务器提供以下工具:

  1. 查询数据库 -在Snowflake上执行SQL或自然语言查询
  2. list_tables -列出数据库中的所有表
  3. get_table_schema -获取特定表的架构

有关更多示例和详细参数信息,请查看 示例/README.md 文件。

手动运行

您也可以直接运行服务器,这对调试很有用:

python src/server.py

这将使用stdio传输以独立模式启动服务器。

部署

托管在Smithery

此服务器可以托管在Smithery.ai上,以便其他用户轻松访问:

  1. 在上创建帐户 Smithery.ai
  2. 将您的服务器添加到Smithery注册表
  3. 使用此存储库中的Dockerfile配置部署
  4. 在服务器页面的“部署”选项卡上单击“部署”

Dockerfile已配置为正确构建和运行服务器,支持Smithery托管的WebSocket传输。

安全考虑

公开托管Snowflake MCP服务器时:

  • 考虑使用只读Snowflake帐户
  • 限制对特定架构/表的访问
  • 使用环境变量进行安全凭据管理

发展

为该项目做出贡献:

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/new-feature
  3. 进行更改
  4. 运行测试: pytest
  5. 提交您的更改: git commit -m 'Add new feature'
  6. 推到分支: git push origin feature/new-feature
  7. 提交拉取请求

许可证

MIT许可证

致谢