项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,专为集成 Snowflake 的 Cortex AI 服务而设计。它允许支持 MCP 的 LLM 客户端(如 Claude Desktop, Cursor, fast-agent 等)直接通过标准化的协议调用 Snowflake Cortex 的各项功能,包括数据搜索、结构化数据分析和文本生成。
该服务器的核心作用是将 Snowflake Cortex AI 的能力封装成 MCP 协议定义的 工具 (Tools) 和 资源 (Resources),供 LLM 客户端发现和使用,从而扩展 LLM 的上下文感知和功能调用能力。
主要功能点
该 MCP 服务器通过提供以下“工具”将 Snowflake Cortex AI 的能力暴露给 LLM:
- Cortex Search 工具: 支持对 Snowflake 中的非结构化数据执行语义搜索,常用于构建 RAG(检索增强生成)应用。LLM 可以通过调用此工具获取相关文档片段作为上下文。
- Cortex Analyst 工具: 允许通过自然语言查询 Snowflake 中的结构化数据或语义模型。该工具会将自然语言转换为 SQL,执行查询,并将结果返回给 LLM 进行分析和总结。
- Cortex Complete 工具: 提供对 Snowflake Cortex 中可用的大语言模型进行文本补全或对话交互的能力。LLM 可以直接调用此工具进行文本生成。
- 模型信息工具: 提供查询当前 Snowflake 账户可用 Cortex LLM 模型列表的能力。
- 配置资源: 将服务器的服务配置作为可读的 MCP 资源暴露给客户端,方便客户端了解服务器的能力定义。
安装步骤
- 确保环境: 需要安装 Python 环境,并且通常需要一个 Python 包管理器(如 'uv' 或 'pip')。项目建议使用 'uvx' 来直接从 GitHub 仓库运行。
- 准备 Snowflake 账户: 需要一个有效的 Snowflake 账户、用户名、账户标识符以及一个用于认证的 Programmatic Access Token (PAT)。确保用于 PAT 的角色有权限访问配置中指定的数据库、Schema、Search 服务、语义模型或视图。
- 创建服务配置文件: 创建一个 YAML 文件来定义 Cortex Search 和 Cortex Analyst 服务。参考仓库中的示例文件 'services/service_config.yaml'。这个文件会告诉服务器需要暴露哪些具体的 Snowflake 服务作为 MCP 工具。
- 安装 'uv' (推荐): 如果没有安装 'uv',可以按照其官方文档进行安装。'uvx' 命令来自于 'uv'。
- 运行服务器 (通过客户端): 这个服务器通常不是独立手动运行的,而是由 MCP 客户端负责启动和管理。下一步是配置你的 MCP 客户端来启动这个服务器。
服务器配置(供 MCP 客户端使用)
大多数 MCP 客户端需要一个 JSON 格式的配置来知道如何启动和连接 MCP 服务器。对于这个 Snowflake MCP 服务器,你需要告诉客户端:
- 服务器名称 (server name): 例如 '"mcp-server-snowflake"',这是客户端内部用来标识这个服务器的名称。
- 启动命令 (command): 通常是 '"uvx"'。
- 启动参数 (args): 一系列字符串参数,告诉 'uvx' 运行哪个包里的哪个命令,以及传递给该命令的参数。对于这个服务器,参数通常包括:
- '"--from"': 指定从哪里获取代码包,例如 '"git+https://github.com/Snowflake-Labs/mcp"'。
- '"mcp-server-snowflake"': 指定要运行的包内的入口命令。
- '"--service-config-file"': 指定前面创建的服务配置 YAML 文件的路径,例如 '"/path/to/your/service_config.yaml"'。
- 环境变量 (env): 需要设置环境变量来传递 Snowflake 认证信息,例如:
- '"SNOWFLAKE_PAT"': 你的 Snowflake Programmatic Access Token (PAT) 的值。
- '"SNOWFLAKE_ACCOUNT"': 你的 Snowflake 账户标识符。
- '"SNOWFLAKE_USER"': 你的 Snowflake 用户名。
请参考你的 MCP 客户端文档,将上述信息配置到其服务器连接设置中。
基本使用方法
一旦在支持 MCP 的 LLM 客户端中配置并成功启动了 Snowflake MCP 服务器,LLM 客户端将自动发现服务器提供的所有工具(如 Cortex Search, Cortex Analyst, Cortex Complete)。
用户在使用 LLM 客户端进行交互时,LLM 可以根据用户的需求,自动判断并调用这些 Snowflake Cortex 工具来获取信息或执行任务。例如:
- 当用户提问关于非结构化文档库中的内容时,LLM 可能会调用 Cortex Search 工具进行检索。
- 当用户询问关于 Snowflake 数据库中销售数据的统计信息时,LLM 可能会调用配置好的 Cortex Analyst 工具来生成并执行 SQL 查询。
- 当用户需要进行文本创作或概括时,LLM 可能会调用 Cortex Complete 工具。
用户只需与 LLM 自然对话,无需直接操作 MCP 服务器或 Snowflake API。
信息
分类
AI与计算