使用说明
项目简介
Snowflake Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当语言模型 (LLM) 应用和 Snowflake 数据库之间的桥梁。通过提供一系列工具,该服务器允许LLM执行SQL查询、浏览数据库模式以及记录数据分析过程中的关键发现。此服务器设计为与兼容 MCP 协议的 LLM 客户端(如 Claude Desktop)协同工作,为用户提供自然语言驱动的数据交互体验。
主要功能点
- 数据查询: 支持执行 'SELECT' 查询以检索 Snowflake 数据库中的数据,并以结构化格式返回结果,方便LLM理解和利用。
- 数据库结构探索: 提供工具列出数据库中的表,并详细描述表的结构(列名、数据类型等),帮助LLM理解数据模式。
- 数据洞察记录: 允许用户通过 'append_insight' 工具记录数据分析过程中的关键发现,并将这些洞察汇总到一个动态更新的 "数据洞察备忘录" 资源中。
- 写入操作 (可选): 在启用 '--allow_write' 标志的情况下,服务器可以执行 'INSERT', 'UPDATE', 'DELETE' 和 'CREATE TABLE' 等写入操作,但默认情况下为了安全考虑,写入功能是被禁用的。
- 可扩展性: 通过 MCP 协议的标准化接口,可以方便地集成到各种支持 MCP 的 LLM 客户端中。
安装步骤
- 安装 Python 包: 确保你的系统已安装 Python 和 pip。在终端中运行以下命令安装 Snowflake Server Python 包:
pip install mcp-snowflake-server
服务器配置
要将 Snowflake Server 集成到 MCP 客户端(例如 Claude Desktop),你需要配置客户端的 MCP 服务器设置。以下是一个 'claude_desktop_config.json' 配置文件片段示例,展示了如何配置 Snowflake Server。请根据你的 Snowflake 数据库连接信息修改 'args' 中的参数。
"mcpServers": { "snowflake_server": { "command": "mcp_snowflake_server", "args": [ "--account", "your_snowflake_account", // 替换为你的 Snowflake 账户标识符 "--warehouse", "your_snowflake_warehouse", // 替换为你的 Snowflake 仓库名称 "--user", "your_snowflake_user", // 替换为你的 Snowflake 用户名 "--password", "your_snowflake_password", // 替换为你的 Snowflake 密码 "--role", "your_snowflake_role", // (可选) 替换为你的 Snowflake 角色 "--database", "your_snowflake_database", // 替换为你的 Snowflake 数据库名称 "--schema", "your_snowflake_schema" // 替换为你的 Snowflake Schema 名称 // 可选参数: // "--allow_write" // 启用数据库写入操作 (请谨慎使用) // "--log_dir", "/path/to/logs" // 指定日志文件存储目录 // "--log_level", "DEBUG" // 设置日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL) // "--exclude_tools", "tool_name" // 排除指定的工具 ] } }
配置参数说明:
- 'command': 设置为 'mcp_snowflake_server',这是 Snowflake Server 的启动命令。
- 'args': 一个字符串数组,包含了 Snowflake Server 启动时需要传递的参数。
- '--account', '--warehouse', '--user', '--password', '--role', '--database', '--schema': 这些参数用于配置 Snowflake 数据库连接。你需要将占位符替换为你的实际 Snowflake 数据库连接信息。
- '--allow_write': (可选) 添加此参数以允许服务器执行数据库写入操作(如 'INSERT', 'UPDATE', 'DELETE', 'CREATE TABLE')。请注意,启用写入操作可能存在安全风险,请谨慎使用。
- '--log_dir': (可选) 指定一个目录用于存储服务器日志文件。
- '--log_level': (可选) 设置日志的详细程度。常用的级别包括 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'。 默认为 'INFO'。
- '--exclude_tools': (可选) 允许你排除某些工具不被 LLM 客户端调用。例如,'"--exclude_tools", "write_query", "create_table"' 将禁用 'write_query' 和 'create_table' 这两个工具。
基本使用方法
- 启动 MCP 客户端: 启动配置了 Snowflake Server 的 MCP 客户端(如 Claude Desktop)。
- 连接服务器: 客户端应该会自动尝试连接到 Snowflake Server。如果配置正确,连接应该会成功建立。
- 使用自然语言与数据库交互: 在 LLM 客户端中,你可以使用自然语言指令来指示 LLM 与 Snowflake 数据库进行交互。例如:
- "列出数据库中的所有表"
- "描述表 'customers' 的结构"
- "查询最近一周的新客户数量"
- "将这个发现记录到数据洞察备忘录中:最近一周新客户数量显著增长"
LLM 客户端会根据你的指令,调用 Snowflake Server 提供的工具来执行相应的数据库操作,并将结果返回给你。
注意: 请务必妥善保管 Snowflake 数据库的连接凭据,避免泄露。在生产环境中使用 '--allow_write' 功能时,请务必进行充分的安全评估和权限控制。
信息
分类
数据库与文件