mcpField
S
Snowflake MCP Server

Snowflake MCP Server

本地服务
github.com/isaacwasserman数据库18455 周前更新

关于 Snowflake MCP Server

Snowflake MCP Server 是一个通过 MCP 连接 Snowflake 数据库的服务,支持执行 SQL 查询并将数据洞察与表结构作为资源提供。默认禁用写操作,适合需要读取和分析 Snowflake 数据的用户。

主要功能

  1. 01通过工具执行 SELECT 查询
  2. 02列出数据库、模式、表并查看表结构
  3. 03通过 append_insight 维护数据洞察备忘
  4. 04可选的写操作与建表工具
  5. 05支持按数据库、模式或表设置排除规则

适用场景

  1. 01让 AI 助手查询 Snowflake 数据并分析结果
  2. 02浏览数据库结构并了解表的列定义
  3. 03记录分析过程中发现的数据洞察

MCP 相关

作为 MCP 服务运行,向客户端暴露 SQL 查询等工具以及 memo://insights 和表结构资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"snowflake-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MseeP.ai 安全评估徽章

Snowflake MCP 服务


概述

一种 Model Context Protocol(MCP)服务实现,可与 Snowflake 数据库交互。此服务可通过工具运行 SQL 查询,并将数据洞察和架构上下文作为资源公开。


组件

资源
  • memo://insights
    持续更新的备忘录,汇总已发现的数据洞察。
    通过 append_insight 工具添加新洞察时,会自动更新。

  • context://table/{table_name}
    (如果启用了预取)按表提供架构摘要,包括列和注释,并作为独立资源公开。


工具

此服务公开以下工具:

查询工具
  • read_query
    执行 SELECT 查询以读取数据库中的数据。
    输入:

    • query(字符串):要执行的 SELECT SQL 查询
      **返回:**由对象数组组成的查询结果
  • write_query(仅在使用 --allow-write 时启用)
    执行 INSERT、UPDATE 或 DELETE 查询。
    输入:

    • query(字符串):SQL 修改查询
      **返回:**受影响的行数或确认信息
  • create_table(仅在使用 --allow-write 时启用)
    在数据库中创建新表。
    输入:

    • query(字符串):CREATE TABLE SQL 语句
      **返回:**表创建确认信息
架构工具
  • list_databases
    列出 Snowflake 实例中的所有数据库。
    **返回:**数据库名称数组

  • list_schemas
    列出指定数据库中的所有架构。
    输入:

    • database(字符串):数据库名称
      **返回:**架构名称数组
  • list_tables
    列出指定数据库和架构中的所有表。
    输入:

    • database(字符串):数据库名称
    • schema(字符串):架构名称
      **返回:**表元数据数组
  • describe_table
    查看指定表的列信息。
    输入:

    • table_name(字符串):完全限定的表名(database.schema.table)
      **返回:**列定义数组,包含名称、类型、是否可为空、默认值和注释
分析工具
  • append_insight
    向备忘录资源添加新的数据洞察。
    输入:
    • insight(字符串):分析过程中发现的数据洞察
      **返回:**洞察添加确认信息
      **效果:**触发 memo://insights 资源更新

与 Claude Desktop 搭配使用

通过 Smithery 安装

通过 Smithery 为 Claude Desktop 自动安装 Snowflake Server:

npx -y @smithery/cli install mcp_snowflake_server --client claude

通过 UVX 安装
传统配置(单独参数)
"mcpServers": {
  "snowflake_pip": {
    "command": "uvx",
    "args": [
      "--python=3.12",  // Optional: specify Python version <=3.12
      "mcp_snowflake_server",
      "--account", "your_account",
      "--warehouse", "your_warehouse",
      "--user", "your_user",
      "--password", "your_password",
      "--role", "your_role",
      "--database", "your_database",
      "--schema", "your_schema"
      // Optionally: "--private_key_path", "your_private_key_absolute_path"
      // Optionally: "--allow_write"
      // Optionally: "--log_dir", "/absolute/path/to/logs"
      // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
      // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
    ]
  }
}
TOML 配置(推荐)
"mcpServers": {
  "snowflake_production": {
    "command": "uvx",
    "args": [
      "--python=3.12",
      "mcp_snowflake_server",
      "--connections-file", "/path/to/snowflake_connections.toml",
      "--connection-name", "production"
      // Optionally: "--allow_write"
      // Optionally: "--log_dir", "/absolute/path/to/logs"
      // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
      // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
    ]
  },
  "snowflake_staging": {
    "command": "uvx",
    "args": [
      "--python=3.12",
      "mcp_snowflake_server",
      "--connections-file", "/path/to/snowflake_connections.toml",
      "--connection-name", "staging"
    ]
  }
}

本地安装
  1. 安装 Claude AI Desktop App

  2. 安装 uv:

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 使用 Snowflake 凭据创建 .env 文件:
SNOWFLAKE_USER="xxx@your_email.com"
SNOWFLAKE_ACCOUNT="xxx"
SNOWFLAKE_ROLE="xxx"
SNOWFLAKE_DATABASE="xxx"
SNOWFLAKE_SCHEMA="xxx"
SNOWFLAKE_WAREHOUSE="xxx"
SNOWFLAKE_PASSWORD="xxx"
SNOWFLAKE_PASSWORD="xxx"
SNOWFLAKE_PRIVATE_KEY_PATH=/absolute/path/key.p8
# Alternatively, use external browser authentication:
# SNOWFLAKE_AUTHENTICATOR="externalbrowser"
  1. [可选] 修改 runtime_config.json,为数据库、架构或表设置排除模式。

  2. 在本地测试:

uv --directory /absolute/path/to/mcp_snowflake_server run mcp_snowflake_server
  1. 将服务添加到 claude_desktop_config.json:
传统配置(使用环境变量)
"mcpServers": {
  "snowflake_local": {
    "command": "/absolute/path/to/uv",
    "args": [
      "--python=3.12",  // Optional
      "--directory", "/absolute/path/to/mcp_snowflake_server",
      "run", "mcp_snowflake_server"
      // Optionally: "--allow_write"
      // Optionally: "--log_dir", "/absolute/path/to/logs"
      // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
      // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
    ]
  }
}
TOML 配置(推荐)
"mcpServers": {
  "snowflake_local": {
    "command": "/absolute/path/to/uv",
    "args": [
      "--python=3.12",
      "--directory", "/absolute/path/to/mcp_snowflake_server",
      "run", "mcp_snowflake_server",
      "--connections-file", "/absolute/path/to/snowflake_connections.toml",
      "--connection-name", "development"
      // Optionally: "--allow_write"
      // Optionally: "--log_dir", "/absolute/path/to/logs"
      // Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL"
      // Optionally: "--exclude_tools", "{tool_name}", ["{other_tool_name}"]
    ]
  }
}

注意事项

  • 默认情况下,写入操作处于禁用状态。使用 --allow-write 显式启用。
  • 此服务支持通过排除模式筛除特定数据库、架构或表。
  • 启用预取后,此服务会公开额外的按表提供的上下文资源。
  • append_insight 工具会动态更新 memo://insights 资源。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。