使用说明

项目简介

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 客户端中。

安装步骤

  1. 安装 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' 这两个工具。

基本使用方法

  1. 启动 MCP 客户端: 启动配置了 Snowflake Server 的 MCP 客户端(如 Claude Desktop)。
  2. 连接服务器: 客户端应该会自动尝试连接到 Snowflake Server。如果配置正确,连接应该会成功建立。
  3. 使用自然语言与数据库交互: 在 LLM 客户端中,你可以使用自然语言指令来指示 LLM 与 Snowflake 数据库进行交互。例如:
    • "列出数据库中的所有表"
    • "描述表 'customers' 的结构"
    • "查询最近一周的新客户数量"
    • "将这个发现记录到数据洞察备忘录中:最近一周新客户数量显著增长"

LLM 客户端会根据你的指令,调用 Snowflake Server 提供的工具来执行相应的数据库操作,并将结果返回给你。

注意: 请务必妥善保管 Snowflake 数据库的连接凭据,避免泄露。在生产环境中使用 '--allow_write' 功能时,请务必进行充分的安全评估和权限控制。

信息

分类

数据库与文件