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

Tlx Snowflake MCP

MCP Server

Snowflake Cortex AI 模型服务器为 Snowflake Cortex AI 提供工具支持,包括对象管理、SQL 编排和语义视图查询等功能,适用于数据分析和 AI 应用场景。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude数据分析Claude DesktopClaudeCursor

安装说明

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

作者 / 组织

trustlogix

提供方

trustlogix

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

uvx snowflake-labs-mcp --service-config-file config.yaml

详细介绍

Snowflake Cortex AI模型上下文协议(MCP)服务器

MCP服务器目前支持以下功能:

  • 皮质搜索:在Snowflake中查询非结构化数据,如检索增强生成(RAG)应用程序中常用的。
  • 皮质分析员:通过丰富的语义建模在Snowflake中查询结构化数据。
  • 皮质剂:跨结构化和非结构化数据检索的代理编排器
  • 对象管理:对Snowflake最常见的对象执行基本操作,如创建、删除、更新等。
  • SQL执行:运行由用户配置的权限管理的LLM生成的SQL。
  • 语义视图查询:发现和查询雪花语义视图

入门指南

服务配置

一个简单的配置文件用于驱动所有工具。一个例子可以在 services/configuration.yaml 下面是一个模板。此配置文件的路径将传递给服务器,其内容用于在启动时创建MCP服务器工具。

Cortex服务

可以添加许多Cortex代理、搜索和分析服务。理想的描述既具有高度的描述性,又相互排斥。 只有明确列出的Cortex服务才能作为MCP客户端中的工具使用。

其他服务

其他服务包括工具 对象管理, 查询执行,以及 语义视图使用. 这些工具组可以通过在中设置为True来启用 other_services 配置文件的一部分。

SQL语句权限

sql_statement_permissions 该部分确保只有经过批准的语句才能在任何有权更改Snowflake对象的工具上执行。 该列表包含SQL表达式类型。标有True的是允许的,标有False的是不允许的。请看 SQL执行 对于每种表达式类型的示例。

agent_services: # List all Cortex Agent services
  - service_name: 
    description: > # Describe contents of the agent service
      
    database_name: 
    schema_name: 
  - service_name: 
    description: > # Describe contents of the agent service
      
    database_name: 
    schema_name: 
search_services: # List all Cortex Search services
  - service_name: 
    description: > # Describe contents of the search service
      
    database_name: 
    schema_name: 
  - service_name: 
    description: > # Describe contents of the search service
      
    database_name: 
    schema_name: 
analyst_services: # List all Cortex Analyst semantic models/views
  - service_name:  # Create descriptive name for the service
    semantic_model:  # Fully-qualify semantic YAML model or Semantic View
    description: > # Describe contents of the analyst service
      
  - service_name:  # Create descriptive name for the service
    semantic_model:  # Fully-qualify semantic YAML model or Semantic View
    description: > # Describe contents of the analyst service
      
other_services: # Set desired tool groups to True to enable tools for that group
  object_manager: True # Perform basic operations against Snowflake's most common objects such as creation, dropping, updating, and more.
  query_manager: True # Run LLM-generated SQL managed by user-configured permissions.
  semantic_manager: True # Discover and query Snowflake Semantic Views and their components.
sql_statement_permissions: # List SQL statements to explicitly allow (True) or disallow (False).
  # - All: True # To allow everything, uncomment and set All: True.
  - Alter: True
  - Command: True
  - Comment: True
  - Commit: True
  - Create: True
  - Delete: True
  - Describe: True
  - Drop: True
  - Insert: True
  - Merge: True
  - Rollback: True
  - Select: True
  - Transaction: True
  - TruncateTable: True
  - Unknown: False # To allow unknown or unmapped statement types, set Unknown: True.
  - Update: True
  - Use: True
\[!注意\] 以前版本的配置文件支持为列指定显式值,并为每个Cortex Search服务指定限制。相反,这些现在完全是基于用户提示的动态的。如果未指定,将返回搜索服务的默认search_columns,限制为10。

连接到Snowflake

MCP服务器使用 Snowflake Python连接器 适用于所有身份验证和连接方法。 请参阅Snowflake官方文档,了解全面的身份验证选项和最佳实践。

MCP服务器尊重分配给指定角色(在连接参数中传递)或用户默认角色(如果没有传递角色进行连接)的RBAC权限。

连接参数可以作为CLI参数和/或环境变量传递。服务器支持Snowflake Python连接器中可用的所有身份验证方法,包括:

  • 用户名/密码验证
  • 密钥对身份验证
  • OAuth身份验证
  • 单点登录(SSO)
  • 多因素身份验证(MFA)

连接参数

连接参数可以作为CLI参数和/或环境变量传递:

参数CLI参数环境变量描述
帐户--帐户SNOWFLAKE_Account帐户标识符(例如xy12345.us-east-1)
主机--主机SNOWFLAKE_Host雪花主机URL
用户--用户,--用户名SNOWFLAKE_User身份验证用户名
密码--密码SNOWFLAKE_Password密码或编程访问令牌
角色--RoleSNOWFLAKE_Role用于连接的角色
仓库--仓库SNOWFLAKE_Warehouse用于查询的仓库
密码中的密码--密码中的通行码-密码中是否嵌入了通行码
密码--密码SNOWFLAKE_PasscodeMFA身份验证密码
私钥--私钥SNOWFLAKE_Private_Key密钥对身份验证私钥
私钥文件--私钥文件SNOWFLAKE_Private_Key_File私钥文件路径
私钥密码--私钥文件pwdSNOWFLAKE_Private_Key_file_pwd加密私钥密码
身份验证器--身份验证器-身份验证类型(默认:雪花)
连接名称--连接名称-connections.toml(或config.toml)文件中的连接名称
\[!警告\] 弃用通知:CLI参数 --account-identifier--pat,以及环境变量 SNOWFLAKE_PAT,已弃用,并将在未来的版本中删除。请使用 --account--password (或 SNOWFLAKE_ACCOUNTSNOWFLAKE_PASSWORD)相反。

传输配置

MCP服务器支持多种传输机制。有关MCP传输的详细信息,请参阅 FastMCP传输协议.

运输描述用例
stdio标准输入/输出(默认)本地开发,MCP客户端集成
sse (传统)服务器发送事件流媒体应用程序
streamable-http可流式HTTP传输容器部署、远程服务器

用法

# Default stdio transport
uvx snowflake-labs-mcp --service-config-file config.yaml

# HTTP transport with custom endpoint
uvx snowflake-labs-mcp --service-config-file config.yaml --transport streamable-http --endpoint /my-endpoint

# For containers (uses streamable-http on port 9000)
uvx snowflake-labs-mcp --service-config-file config.yaml --transport streamable-http --endpoint /snowflake-mcp

运输定制

可用于的服务器自定义 ssestreamable-http 运输:

参数CLI参数环境变量默认值
主机--服务器主机SNOWFLAKE_MCP_Host“0.0.0.0”
端口--端口SNOWFLAKE_MCP_Port9000
端点--端点SNOWFLAKE_MCP_Endpoint/MCP
调试日志--verboseSNOWFLAKE_MCP_verbosefalse

例子:

export SNOWFLAKE_MCP_ENDPOINT="/my-mcp"
uvx snowflake-labs-mcp --service-config-file config.yaml --transport streamable-http

与MCP客户端一起使用

MCP服务器与客户端无关,将与大多数支持MCP工具和(可选)资源基本功能的MCP客户端一起工作。以下是本地安装的示例。要连接到容器化部署,请参阅 将MCP客户端连接到容器.

克劳德桌面

要将此服务器与Claude Desktop集成为MCP客户端,请将以下内容添加到应用程序的服务器配置中。默认情况下,它位于:

  • macOS:~/库/应用程序支持/Claude/Claude_desktop_config json
  • Windows:%APPDATA%\\Claude\\Claude_desktop_config.json

设置服务配置文件的路径并配置连接方法:

{
  "mcpServers": {
    "mcp-server-snowflake": {
      "command": "uvx",
      "args": [
        "snowflake-labs-mcp",
        "--service-config-file",
        "
/tools_config.yaml",
        "--connection-name",
        "default"
      ]
    }
  }
}

光标

通过打开光标并导航到设置->光标设置->MCP,在光标中注册MCP服务器。添加以下内容:

{
  "mcpServers": {
    "mcp-server-snowflake": {
      "command": "uvx",
      "args": [
        "snowflake-labs-mcp",
        "--service-config-file",
        "
/tools_config.yaml",
        "--connection-name",
        "default"
      ]
    }
  }
}

在聊天中添加MCP服务器作为上下文。

要排除Cursor服务器问题,请打开输出面板并从下拉菜单中选择Cursor MCP来查看日志。

快速代理

更新 fastagent.config.yaml 带有配置文件路径和连接名称的mcp服务器部分:

# MCP Servers
mcp:
    servers:
        mcp-server-snowflake:
            command: "uvx"
            args: ["snowflake-labs-mcp", "--service-config-file", "
/tools_config.yaml", "--connection-name", "default"]

微软Visual Studio代码+GitHub副本

有关先决条件、环境设置、分步指南和说明,请参阅此 博客.

法典

通过添加以下内容在codex中注册MCP服务器 ~/.codex/config.toml

[mcp_servers.mcp-server-snowflake]
command = "uvx"
args = [
    "snowflake-labs-mcp",
    "--service-config-file",
    "
/tools_config.yaml",
    "--connection-name",
    "default"
]

编辑后,雪花mcp应出现在输出中 codex mcp list 从终端运行。

容器部署

将MCP服务器部署为远程访问或生产环境的容器。本指南为Docker和Docker Compose部署提供了分步说明。

Docker部署

按照以下步骤使用Docker部署MCP服务器:

步骤1:准备配置文件

创建MCP配置目录并复制模板:

mkdir -p ${HOME}/.mcp/
cp services/configuration.yaml ${HOME}/.mcp/tools_config.yaml

步骤2:配置服务

编辑配置文件以匹配您的环境:

# Edit the configuration file as needed
# Update service names, database/schema references, and enable desired features
nano ${HOME}/.mcp/tools_config.yaml

步骤3:构建容器映像

从提供的Dockerfile构建Docker镜像:

docker build -f docker/server/Dockerfile -t mcp-server-snowflake .

步骤4:设置环境变量

配置Snowflake连接参数。选择以下身份验证方法之一:

用户名/密码验证:

export SNOWFLAKE_ACCOUNT=
export SNOWFLAKE_USER=
export SNOWFLAKE_PASSWORD=

密钥对身份验证:

export SNOWFLAKE_ACCOUNT=
export SNOWFLAKE_USER=
export SNOWFLAKE_PRIVATE_KEY="$(cat 
)"
export SNOWFLAKE_PRIVATE_KEY_FILE_PWD=

步骤5:运行容器

使用配置和环境变量启动容器:

用户名/密码验证:

docker run -d \
  --name mcp-server-snowflake \
  -p 9000:9000 \
  -e SNOWFLAKE_ACCOUNT=${SNOWFLAKE_ACCOUNT} \
  -e SNOWFLAKE_USER=${SNOWFLAKE_USER} \
  -e SNOWFLAKE_PASSWORD=${SNOWFLAKE_PASSWORD} \
  -v ${HOME}/.mcp/tools_config.yaml:/app/services/tools_config.yaml:ro \
  mcp-server-snowflake

对于密钥对身份验证:

docker run -d \
  --name mcp-server-snowflake \
  -p 9000:9000 \
  -e SNOWFLAKE_ACCOUNT=${SNOWFLAKE_ACCOUNT} \
  -e SNOWFLAKE_USER=${SNOWFLAKE_USER} \
  -e SNOWFLAKE_PRIVATE_KEY="${SNOWFLAKE_PRIVATE_KEY}" \
  -e SNOWFLAKE_PRIVATE_KEY_FILE_PWD=${SNOWFLAKE_PRIVATE_KEY_FILE_PWD} \
  -v ${HOME}/.mcp/tools_config.yaml:/app/services/tools_config.yaml:ro \
  mcp-server-snowflake

步骤6:验证部署

检查容器是否正在运行且可访问:

# Check container status
docker ps

# Check container logs
docker logs mcp-server-snowflake

# Test endpoint (should return MCP server info)
curl http://localhost:9000/snowflake-mcp

Docker编写部署

按照以下步骤使用Docker Compose进行简化部署:

步骤1:准备配置文件

创建配置目录并复制模板:

mkdir -p ${HOME}/.mcp/
cp services/configuration.yaml ${HOME}/.mcp/tools_config.yaml

步骤2:配置服务

编辑配置文件以匹配您的环境:

# Update service configurations as needed
nano ${HOME}/.mcp/tools_config.yaml

步骤3:设置环境变量

配置Snowflake连接参数:

export SNOWFLAKE_ACCOUNT=
export SNOWFLAKE_USER=
# For username/password auth:
export SNOWFLAKE_PASSWORD=
# For key pair auth, also set:
# export SNOWFLAKE_PRIVATE_KEY="$(cat 
)"
# export SNOWFLAKE_PRIVATE_KEY_FILE_PWD=

步骤4:启动服务

使用Docker Compose启动容器:

docker-compose up -d

步骤5:验证部署

检查服务是否正在运行:

# Check service status
docker-compose ps

# View logs
docker-compose logs

# Test endpoint
curl http://localhost:9000/snowflake-mcp

将MCP客户端连接到容器

一旦您的MCP服务器在容器中运行,您就可以将各种MCP客户端连接到它。所有客户端的连接配置都是相同的,只是配置格式不同。

连接URL格式:

  • 本地部署: http://localhost:9000/snowflake-mcp
  • 远程部署: `http://:

/snowflake-mcp`

克劳德桌面

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-server-snowflake": {
      "url": "http://localhost:9000/snowflake-mcp"
    }
  }
}

光标

将此添加到光标中的MCP设置中(设置->光标设置->MCP):

{
  "mcpServers": {
    "mcp-server-snowflake": {
      "url": "http://localhost:9000/snowflake-mcp"
    }
  }
}

快速代理

将此添加到您的 fastagent.config.yaml:

# MCP Servers
mcp:
    servers:
        mcp-server-snowflake:
            url: "http://localhost:9000/snowflake-mcp"

笔记:

  • 对于远程部署,请替换 localhost:9000 使用服务器的主机名和端口
  • 确保防火墙允许端口9000(或配置的端口)上的连接
  • 对于生产部署,考虑使用HTTPS和适当的身份验证

Cortex服务

Cortex Agent实例(in agent_services 部分),皮质搜索(in search_services 第节)和Cortex Analyst(in analyst_services 配置文件的第节)将用作工具。将这些部分留空以省略这些工具。

MCP服务器中仅支持Cortex Agent对象。也就是说,只有Snowflake中预先配置的Cortex Agent对象才能用作工具。看 Cortex代理运行API 了解更多详情。

确保所有服务的服务名称、数据库、模式等都有准确的上下文名称。理想的描述既具有高度的描述性,又相互排斥。

semantic_model 分析师服务中的值应该是Snowflake阶段的完全限定语义视图或语义YAML文件:

  • 对于语义视图: MY_DATABASE.MY_SCHEMA.MY_SEMANTIC_VIEW
  • 对于语义YAML文件: @MY_DATABASE.MY_SCHEMA.MY_STAGE/my_semantic_file.yaml (注意 @.)

对象管理

MCP服务器包括数十个工具,范围很窄,可以完成基本的操作管理。建议直接使用Snowsight进行高级对象管理。

MCP服务器当前支持 创建, 掉落, 创建或更改, 描述,以及 挂牌 下面的对象类型。 要启用这些工具,请设置 object_manager 在配置文件中设置为True other_services.

- Database
- Schema
- Table
- View
- Warehouse
- Compute Pool
- Role
- Stage
- User
- Image Repository

请注意,这些工具也受以下配置文件中捕获的权限的控制 sql_statement_permissions. 用于创建和创建或更改对象的对象管理工具由 Create 许可。对象删除受以下因素控制 Drop 许可。

未来的版本中可能会包含更多的操作和对象。

SQL执行

通用SQL工具将提供一种执行MCP客户端生成的通用SQL语句的方法。用户可以完全控制配置文件中批准的SQL语句的类型。

在配置文件中列出 sql_statement_permissionssqlglot表达式类型标记为False的将在执行前停止。标记为True的将被执行(或根据MCP客户端设置提示用户执行)。

要启用SQL执行工具,请设置 query_manager 在配置文件中设置为True other_services. 要允许所有SQL表达式通过额外的验证,请设置 All 真的。

并非所有Snowflake SQL命令都映射到sqlglot中,您可能会发现一些模糊的命令尚未在配置文件中捕获。 设置 Unknown 为True将允许这些未捕获的命令通过额外的验证。 您还可以直接添加新的表达式类型来纪念特定的表达式类型。

以下是sqlglot表达式类型的一些示例,以及附带的Snowflake SQL命令示例:

SQLGlot表达式类型SQL命令
更改ALTER TABLE my_table ADD COLUMN new_column VARCHAR(50);
指挥部CALL my_procedure('param1_value', 123);

GRANT ROLE analyst TO USER user1; SHOW TABLES IN SCHEMA my_database.my_schema; | |评论| COMMENT ON TABLE my_table IS 'This table stores customer data.'; | |承诺| COMMIT; | |创建| CREATE TABLE my_table ( id INT, name VARCHAR(255), email VARCHAR(255) ); CREATE OR ALTER VIEW my_schema.my_new_view AS SELECT id, name, created_at FROM my_schema.my_table WHERE created_at >= '2023-01-01'; | |删除| DELETE FROM my_table WHERE id = 101; | |描述| DESCRIBE TABLE my_table; | |放下| DROP TABLE my_table; | |错误| COPY INTO my_table FROM @my_stage/data/customers.csv FILE_FORMAT = (TYPE = CSV SKIP_HEADER = 1 FIELD_DELIMITER = ','); REVOKE ROLE analyst FROM USER user1; UNDROP TABLE my_table; | |插入| INSERT INTO my_table (id, name, email) VALUES (102, 'Jane Doe', 'jane.doe@example.com'); | |合并| MERGE INTO my_table AS target USING (SELECT 103 AS id, 'John Smith' AS name, 'john.smith@example.com' AS email) AS source ON target.id = source.id WHEN MATCHED THEN UPDATE SET target.name = source.name, target.email = source.email WHEN NOT MATCHED THEN INSERT (id, name, email) VALUES (source.id, source.name, source.email); | |回滚| ROLLBACK; | |选择| `SELECT id, name FROM my_table WHERE id

目录标签

目录标签

PythonClaude数据分析AI模型服务本地部署数据查询SQL编排对象管理语义分析

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP