使用说明
雪花MCP(模型上下文协议)服务器
一种模型上下文协议(MCP)服务器实现,允许像Claude这样的人工智能助手通过自然语言查询与Snowflake数据库进行交互。
特性
- 通过自然语言在Snowflake数据库上执行SQL查询
- 自动数据库连接生命周期管理(连接、重新连接、关闭)
- 与Claude、Cursor IDE和其他MCP兼容客户端集成
- 使用语义理解将自然语言转换为SQL
- 处理查询结果并格式化以便于阅读
- 通过适当的身份验证保护数据库操作
先决条件
- Python 3.8+
- 具有适当访问权限的Snowflake帐户
- MCP兼容客户端(Claude、Cursor IDE等)
安装
- 克隆此存储库:
git clone https://github.com/yourusername/snowflake-mcp.git
cd snowflake-mcp
- 安装所需的依赖项:
pip install -r requirements.txt
- 复制示例环境文件并添加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服务器:
- 带有Inspector UI的开发模式:
mcp dev src/server.py
这将启动服务器,并在浏览器中打开一个检查器界面,您可以在其中测试工具。
- 在Claude桌面中安装:
mcp install src/server.py
这将在Claude Desktop中安装服务器,使其可供Claude使用。
- 标准模式:
mcp run src/server.py
这将在没有检查器界面的情况下以标准模式运行服务器。
可用工具
Snowflake MCP服务器提供以下工具:
- 查询数据库 -在Snowflake上执行SQL或自然语言查询
- list_tables -列出数据库中的所有表
- get_table_schema -获取特定表的架构
有关更多示例和详细参数信息,请查看 示例/README.md 文件。
手动运行
您也可以直接运行服务器,这对调试很有用:
python src/server.py
这将使用stdio传输以独立模式启动服务器。
部署
托管在Smithery
此服务器可以托管在Smithery.ai上,以便其他用户轻松访问:
- 在上创建帐户 Smithery.ai
- 将您的服务器添加到Smithery注册表
- 使用此存储库中的Dockerfile配置部署
- 在服务器页面的“部署”选项卡上单击“部署”
Dockerfile已配置为正确构建和运行服务器,支持Smithery托管的WebSocket传输。
安全考虑
公开托管Snowflake MCP服务器时:
- 考虑使用只读Snowflake帐户
- 限制对特定架构/表的访问
- 使用环境变量进行安全凭据管理
发展
为该项目做出贡献:
- 分叉存储库
- 创建要素分支:
git checkout -b feature/new-feature - 进行更改
- 运行测试:
pytest - 提交您的更改:
git commit -m 'Add new feature' - 推到分支:
git push origin feature/new-feature - 提交拉取请求
许可证
MIT许可证
致谢
- 这 模型上下文协议 创建标准的团队
- Snowflake凭借其强大的数据库和API