Token导航 LogoToken导航TokenDH.com
MCP Server Snowflake logo
数据服务stdio官方级别未说明来源级核验

MCP Server Snowflake

MCP Server

一个针对Snowflake数据库执行只读操作的MCP服务器,支持多种认证方式和SQL查询类型,适用于数据分析和集成到Claude Desktop等场景。

工具数

0

提示词数

0

GitHub Stars

13

资源数

0
数据分析PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dynamike

提供方

dynamike

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run snowflake-mcp

详细介绍

雪花MCP服务器

用于对Snowflake数据库执行只读操作的模型上下文协议(MCP)服务器。此工具使Claude能够安全地查询Snowflake数据,而无需修改任何信息。

特性

  • 使用以下任一方式对Snowflake进行灵活的身份验证:

- 使用私钥进行服务帐户身份验证 - 交互式会话的外部浏览器身份验证

  • 具有自动后台刷新功能的连接池,以维护持久连接
  • 支持在单个会话中查询多个视图和数据库
  • 支持多种SQL语句类型(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH)
  • 用于查询雪花数据的MCP兼容处理程序
  • 具有安全检查的只读操作,以防止数据修改
  • 支持Python 3.12+
  • 基于Stdio的MCP服务器,便于与Claude Desktop集成

可用工具

服务器提供以下工具用于查询Snowflake:

  • 列表_数据库:列出所有可访问的Snowflake数据库
  • list_views:列出指定数据库和架构中的所有视图
  • describeview:获取特定视图的详细信息,包括列和SQL定义
  • 查询视图:从具有可选行限制的视图中查询数据
  • execute_query:执行自定义只读SQL查询(SELECT、SHOW、DESCRIBE、EXPLAIN、WITH),结果格式为markdown表

安装

先决条件

  • Python 3.12或更高版本
  • Snowflake帐户具有以下任一功能:

- 配置的服务帐户(用户名+私钥),或 - 用于基于浏览器的身份验证的常规用户帐户

步骤

  1. 克隆此存储库:
   git clone https://github.com/yourusername/snowflake-mcp-server.git
   cd snowflake-mcp-server
  1. 安装软件包:
   uv pip install -e .
  1. 创建一个 .env 使用Snowflake凭据创建文件:

根据您首选的身份验证方法选择提供的示例文件之一:

用于私钥身份验证:

   cp .env.private_key.example .env

然后编辑 .env 文件来设置您的Snowflake帐户详细信息和私钥路径。

用于外部浏览器身份验证:

   cp .env.browser.example .env

然后编辑 .env 文件来设置您的Snowflake帐户详细信息。

用法

用紫外线跑步

安装软件包后,您可以直接使用以下命令运行服务器:

uv run snowflake-mcp

# Or you can be explicit about using stdio transport
uv run snowflake-mcp-stdio

这将启动基于stdio的MCP服务器,该服务器可以连接到Claude Desktop或任何支持stdio通信的MCP客户端。

使用外部浏览器身份验证时,浏览器窗口将自动打开,提示您登录Snowflake帐户。

Claude桌面集成

  1. 在Claude Desktop中,转到设置→ MCP服务器
  1. 使用uv可执行文件的完整路径添加一个新服务器:
   "snowflake-mcp-server": {
      "command": "uv",
      "args": [
         "--directory",
         "/
/snowflake-mcp-server",
         "run",
         "snowflake-mcp"
      ]
   }

或者明确指定stdio传输:

   "snowflake-mcp-server": {
      "command": "uv",
      "args": [
         "--directory",
         "/
/snowflake-mcp-server",
         "run",
         "snowflake-mcp-stdio"
      ]
   }
  1. 你可以通过跑步找到你的紫外线路径 which uv 在您的终端
  1. 保存服务器配置

查询示例

与Claude一起使用时,您可以提出以下问题:

  • “你能列出我Snowflake帐户中的所有数据库吗?”
  • “列出MARKETING数据库中的所有视图”
  • “描述销售数据库中CUSTOMER_ANALYTICS视图的结构”
  • “显示FINANCE数据库中REVENUE_BY_REGION视图中的示例数据”
  • “运行此SQL查询:选择customer_id,SUM(order_total)作为SALES.ORDERS GROUP BY customer_id order BY total_spend DESC限制10”
  • “查询MARKETING数据库,按转化率找到表现最佳的5个活动”
  • “通过查询SALES.CUSTOMER_METRICS和MARKETING.CAMPAIGN_RESULTS,比较不同数据库中视图的数据”

配置

连接池行为可以通过环境变量进行配置:

  • SNOWFLAKE_CONN_REFRESH_HOURS:连接刷新之间的时间间隔(以小时为单位)(默认值:8)

示例 .env 配置:

# Set connection to refresh every 4 hours
SNOWFLAKE_CONN_REFRESH_HOURS=4

身份验证方法

私钥认证

此方法使用服务帐户和私钥进行非交互式身份验证,非常适合自动化流程。

  1. 按照以下步骤为Snowflake用户创建密钥对 雪花文档
  2. SNOWFLAKE_AUTH_TYPE=private_key 在你的 .env 文件
  3. 在中提供私钥的路径 SNOWFLAKE_PRIVATE_KEY_PATH

外部浏览器身份验证

此方法打开一个浏览器窗口进行交互式身份验证。

  1. SNOWFLAKE_AUTH_TYPE=external_browser 在你的 .env 文件
  2. 启动服务器时,将打开一个浏览器窗口,要求您登录
  3. 身份验证后,会话将在Snowflake帐户设置指定的持续时间内保持活动状态

安全考虑

此服务器:

  • 强制执行只读操作(只允许SELECT、SHOW、DESCRIBE、EXPLAIN和WITH语句)
  • 自动添加LIMIT子句以防止大型结果集
  • 使用安全身份验证方法连接到Snowflake
  • 验证输入以防止SQL注入

⚠️ 重要:保持你的 .env 文件安全,永远不要将其提交给版本控制。这 .gitignore 文件被配置为排除它。

发展

静态类型检查

mypy mcp_server_snowflake/

掉毛

ruff check .

格式化

ruff format .

运行测试

pytest

贡献

欢迎投稿!请随时提交拉取请求。

技术细节

本项目使用:

目录标签

目录标签

数据分析PythonClaudeSnowflake查询工具本地部署数据库只读访问MCP协议Python工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP