项目简介
'mcp-server-snowflake' 是一个使用 TypeScript 开发的 MCP(Model Context Protocol)服务器实现。它旨在为大型语言模型(LLM)提供标准化的接口,使其能够安全、高效地连接并操作 Snowflake 数据库,从而将 Snowflake 的数据能力无缝集成到各种 LLM 应用中。
主要功能点
- LLM 与 Snowflake 交互: 允许 LLM 通过预定义的工具直接向 Snowflake 数据库发送查询请求并获取结果。
- 数据库结构探索: 提供查询和列出 Snowflake 账户中所有可用数据库、模式(Schema)和表格的功能。
- 表格详情查看: 能够获取指定表格的详细结构信息,如列名、数据类型等。
- 安全认证支持: 支持通过环境变量或密钥对(Key-Pair)等多种方式进行 Snowflake 数据库的安全认证。
- 易于集成: 可与 Claude Desktop、Cursor、Continue 等任何兼容 MCP 协议的客户端工具轻松连接和使用。
安装步骤
在您的开发或部署环境中,按照以下步骤安装和构建服务器:
- 克隆仓库:
git clone https://github.com/patrickfreyer/mcp-server-snowflake.git cd mcp-server-snowflake - 安装依赖:
npm install - 构建服务器:
npm run build
服务器配置
要让您的 MCP 客户端(如 Claude Desktop 或 Cursor)能够连接并使用此 Snowflake MCP 服务器,您需要在客户端的配置中添加服务器信息。以下是一个配置示例,您需要根据实际情况修改路径和 Snowflake 凭据:
{ "mcpServers": { "snowflake": { "command": "node", "args": ["/您的/服务器/项目/路径/mcp-server-snowflake/dist/index.js"], "env": { "SNOWFLAKE_ACCOUNT": "您的Snowflake账户名 (例如: your-account.region.provider)", "SNOWFLAKE_USER": "您的Snowflake用户名", "SNOWFLAKE_PASSWORD": "您的Snowflake密码", "SNOWFLAKE_WAREHOUSE": "可选:Snowflake数据仓库名称,如 YOUR_WAREHOUSE", "SNOWFLAKE_DATABASE": "可选:默认数据库名称,如 YOUR_DATABASE", "SNOWFLAKE_SCHEMA": "可选:默认模式名称,如 YOUR_SCHEMA", "SNOWFLAKE_ROLE": "可选:Snowflake角色,如 YOUR_ROLE" } } } }
请务必将 '"/您的/服务器/项目/路径/mcp-server-snowflake/dist/index.js"' 替换为您的 'mcp-server-snowflake' 项目实际编译后的 'index.js' 文件的绝对路径。同时,填入您的 Snowflake 账户凭据和其他可选配置。
基本使用方法
当服务器配置并运行成功后,您的 MCP 客户端集成的 LLM 就可以通过调用以下工具与 Snowflake 数据库进行交互:
- 'read_query': 执行 SELECT 查询,例如:'call_tool("read_query", {"query": "SELECT * FROM customers LIMIT 10"})'
- 'list_databases': 列出所有可用的数据库。
- 'list_schemas': 列出指定数据库中的所有模式,例如:'call_tool("list_schemas", {"database": "MY_DATABASE"})'
- 'list_tables': 列出指定模式中的所有表格,例如:'call_tool("list_tables", {"database": "MY_DATABASE", "schema": "MY_SCHEMA"})'
- 'describe_table': 获取指定表格的详细结构信息,例如:'call_tool("describe_table", {"table_name": "MY_DATABASE.MY_SCHEMA.MY_TABLE"})'
LLM 将能够根据需要选择合适的工具,向其传递参数,并接收 Snowflake 数据库返回的结果。
信息
分类
数据库与文件