作者:七良
📌 导读:
过去,数据分析意味着写复杂SQL、等待执行、解读结果。现在,借助 Lakehouse MCP Server 的50多个工具(详见附录工具列表),让这一切变得像对话一样自然:用户用业务语言提问,AI自动理解并生成查询,Lakehouse在底层高效执行,最终答案以自然语言返回。这样的模式不仅降低了数据使用门槛,还加快了决策与创新的节奏,并依托 Lakehouse的实时引擎,确保结果始终鲜活。从过去AI的小规模数据分析,到如今AI × Lakehouse的结合,让智能数据服务真正触手可及。
什么是 MCP:AI与数据系统的标准化桥梁
MCP (Model Context Protocol)是一个标准化的接口协议,它保证了AI与外部系统的交互是安全的、可控的、可扩展的。而云器Lakehouse本身已经是一个高性能、低延迟、支持通用增量计算的数据底座。两者结合,就相当于:
-
MCP提供了“语言 → 调用”的桥梁:将自然语言转换为系统调用
-
Lakehouse提供了“调用 → 执行”的引擎:高效执行数据查询和分析
这种架构设计解决了传统数据分析中最大的痛点—技术门槛与业务需求之间的鸿沟。
价值意义:从技术驱动到业务驱动的转变
传统数据平台的使用方式是“写SQL → 系统执行”。这要求用户必须懂 schema、懂SQL语法,还要能把业务问题翻译成查询逻辑。MCP Server的出现,把这个流程替换为:
💡 输入业务语言 → AI 理解并生成查询 → Lakehouse 高效执行 → AI 用自然语言返回答案
这背后的价值体现在三个维度:
1. 认知门槛降低
更多人可以直接与数据对话,而不是依赖数据工程师。业务分析师、产品经理,甚至业务决策者都能直接获取数据洞察,真正实现了数据的民主化。
2. 迭代速度加快
实验和分析不再被阻塞在“写查询 → 等人”的环节。想法可以立即验证,假设可以快速测试,大大缩短了从问题到答案的路径。
3. 实时智能服务
Lakehouse的秒级延迟能力,让AI可以返回「鲜活」的数据。无论是实时监控、动态报表还是即时决策支持,都能基于最新的数据状态进行。
云器 Lakehouse MCP Server:技术架构与特性
💡 云器Lakehouse 正式开放 MCP 协议集成公测。这意味着任何支持 MCP 的 AI 客户端都可以直接与云器 Lakehouse 进行交互,用户仅需使用自然语言,就可以享受企业级数据湖仓的强大能力。
Lakehouse MCP Server 是专为 Lakehouse 平台设计的 MCP 服务器,它将云器 Lakehouse 强大的数据湖仓能力与 AI 助手无缝集成,让用户能够通过自然语言与数据湖仓进行交互。
核心特性
-
协议支持:支持 HTTP (Streamable)、SSE、Stdio 三种传输协议
-
标准兼容:完全遵循 MCP 官方规范,提供标准 /mcp 端点
-
广泛兼容:支持 Claude Desktop、Dify、n8n、Cursor 等主流平台
部署环境要求
系统要求
-
操作系统:MacOS、Windows、Linux
-
Docker:20.10+ 版本
-
内存:最低 2GB,推荐 8GB
-
CPU:最低 2 核,推荐 4 核
-
存储:最低 10GB 可用空间
快速开始:从零到一构建智能数据对话
本示例介绍采用 HTTP (Streamable) 协议方式部署(推荐),同时 Claude Desktop (MCP 客户端) 和MCP服务器都运行在同一台本地计算机(localhost)上。该架构同样支持分布式部署,即客户端、服务器和 Lakehouse 平台可以分别位于不同的远程主机上。
步骤0:MCP Server 端配置准备
Docker 环境准备:访问<www.docker.com/products/do…> 下载 Docker Desktop for Mac。
1. 验证安装 Docker Desktop (MacOS 环境)保证 Docker 版本20.10+
docker --version
2. 配置 Docker Desktop:
-
分配至少 4GB 内存给 Docker
-
启用文件共享功能
步骤1:MCP Server 端:拉取最新云器的 MCP Server 镜像
docker pull czqiliang/mcp-clickzetta-server:latest
步骤2:MCP Server 端:创建工作目录(如果不存在)
-
macOS:
mkdir -p ~/.clickzetta/lakehouse_connection
-
Windows PowerShell:
New-Item -ItemType Directory -Path "$env:USERPROFILE.clickzetta/lakehouse_connection" -Force
在上述路径下,新建名称为connections.json的配置文件并添加 Lakehouse 实例的连接信息,配置模板如下(如果连接两个 Lakehouse 实例,用逗号分隔):
{
"connections": [
{
"is_default": true,
"service": "cn-shanghai-alicloud.api.clickzetta.com",
"username": "__your_name__",
"password": "__your_password__",
"instance": "__your_instanceid__",
"workspace": "__your_workspacename__",
"schema": "public",
"vcluster": "default_ap",
"description": "UAT environment for testing",
"hints": {
"sdk.job.timeout": 300,
"query_tag": "mcp_uat"
},
"name": "Shanghai production env",
"is_active": false,
"last_test_time": "2025-06-30T19:55:51.839166",
"last_test_result": "success"
}
]
}
参数说明:
参数名
说明
示例值
is\_default
是否为默认连接配置
true
service
服务端点地址请参考文档
上海阿里云:cn-shanghai-alicloud.api.clickzetta.com
北京腾讯云:ap-beijing-tencentcloud.api.clickzetta.com
北京 AWS :cn-north-1-aws.api.clickzetta.com
广州腾讯云:ap-guangzhou-tencentcloud.api.clickzetta.com
新加坡阿里云:ap-southeast-1-alicloud.api.singdata.com
新加坡AWS:ap-southeast-1-aws.api.singdata.com
username
用户名,用于身份验证
"your_name"
password
密码,用于身份验证
"your_password"
instance
实例ID,标识特定的Lakehouse实例
"your_instanceid"
workspace
工作空间名称,用于数据隔离和组织
"your_workspacename"
schema
数据库模式名称
"public"
vcluster
虚拟集群名称,用于计算资源管理
"default_ap"
description
连接配置的描述信息
"PRD environment for marketing"
hints
性能优化和标识配置对象
{...}
hints.sdk.job.timeout
SDK作业超时时间(秒)
300
hints.query\_tag
查询标签,用于查询追踪和标识
"mcp_uat"
name
连接配置的名称标识
"Shanghai production env"
is\_active
连接是否处于活跃状态
false
last\_test\_time
最后一次连接测试的时间戳(ISO格式)
"2025-06-30T19:55:51.839166"
last\_test\_result
最后一次连接测试的结果状态
"success"
步骤3:MCP Server 端:启动 MCP Server 镜像
创建docker-compose.yml文件,拷贝内容到文件中(文件内容详见附录)
在包含该文件的目录下打开终端或命令行,并执行以下命令。
docker compose up -d
预期输出:
bash-3.2$ docker compose up -d
[+] Running 4/4
✔ Network mcp_docker_clickzetta-net Created 0.0s
✔ Container clickzetta-sse Started 0.2s
✔ Container clickzetta-http Started 0.2s
✔ Container clickzetta-webui Started 0.2s
校验状态,使用docker compose ps --format "table {{.Name}}\t{{.Service}}\t{{.Status}}" 命令,预期输出如下(忽略 WARNING 信息):
bash-3.2$ docker compose ps --format "table {{.Name}}\t{{.Service}}\t{{.Status}}"
NAME SERVICE STATUS
clickzetta-http clickzetta-http Up 5 hours (unhealthy)
clickzetta-sse clickzetta-sse Up 5 hours (unhealthy)
clickzetta-webui clickzetta-webui Up 5 hours (unhealthy)
如果需要关闭,请在包含docker-compose.yml文件的目录下执行:docker compose down
步骤4:配置 Claude Desktop
本示例选择的MCP 客户端工具是Claude Desktop,主机与MCP Server 端位于同一台主机
找到并打开 Claude Desktop 配置文件:
macOS 操作步骤:
-
打开 Finder
-
按 Cmd+Shift+G
-
粘贴路径:~/Library/Application Support/Claude
-
双击打开 claude_desktop_config.json(用文本编辑器)
Windows 操作步骤:
-
按 Win+R 打开运行对话框
-
输入 %APPDATA%\Claude 并回车
-
右键点击 claude_desktop_config.json
-
选择"编辑"或"用记事本打开"
将以下内容复制到配置文件(替换原有内容或添加到mcpServers 中):
请输入 MCP Server 的地址:如果服务器与客户端运行在同一台机器上,请填写 localhost;否则,请填写服务器的 IP 地址。
{
"mcpServers": {
"clickzetta-http": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"http://<YOUR_SERVER_IP>:8002/mcp",
"--allow-http",
"--transport", "http"
]
}
}
}
配置完成!
另外:Claude Desktop 支持通过多种方式连接后端的 MCP Server,以适应不同的部署环境和性能需求。上面的示例介绍了 **HTTP (Streamable**) 协议连接方式,如果想利用 SSE 或者 STDIO 协议连接,配置也很简单:
SSE 连接方式(远程服务)
SSE (Server-Sent Events) 是一种基于 HTTP 的长连接技术,允许服务器向客户端单向推送消息。相比于传统的轮询方式,SSE 能够以更低的延迟实现实时通信。
-
**适用场景:**需要从服务器实时接收数据流或更新通知的场景。
-
**Docker Server 配置参考:**此方式对应启动容器中的 clickzetta-sse 的服务,该服务在8003端口上提供服务。
-
**配置示例:**在Claude Desktop的claude_desktop_config.json配置文件中更新如下信息,连接到远程SSE端点。
{ "mcpServers": { "clickzetta-remote-sse": { "command": "npx", "args": [ "-y", "mcp-remote", "http://localhost:8003/sse", "--allow-http", "--transport", "sse" ] } } }
说明:
-
请将 <YOUR_SERVER_IP> 替换为 MCP Server 实际的 IP 地址或域名。
-
目标端口为8003,端点路径为 /sse。
-
--transport sse 参数指明了使用SSE通信协议。
STDIO 连接方式(本地进程)
此方式主要用于本地开发和调试。Claude Desktop 会将 MCP Server 作为一个子进程直接在本地启动,并通过标准输入/输出(STDIO)进行通信。这种方式延迟最低,但不适用于远程连接。
-
适用场景:本地开发、单机部署。
-
Docker Server 配置参考:此方式对应启动容器中的 clickzetta-stdio 的服务,该容器镜像会随着 Claude Desktop 的开启和关闭,自动操作容器镜像拉起和停止。
-
配置示例:在Claude Desktop的 claude_desktop_config.json 配置文件中更新如下信息,直接指定启动本地 Server 的命令。
注意:
1. 配置文件中-v 后的路径中USERNAME请根据系统的实际路径进行修改。
2. 请使用docker compose down关闭创建的相关容器,因为此种方式下,Claude Desktop会随着自身的开启和关闭,自动操作容器镜像拉起和停止。
{
"mcpServers": {
"clickzetta-stdio": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--stop-timeout", "60",
"-p", "8502:8501",
"-v", "/Users/derekmeng/.clickzetta:/app/.clickzetta",
"czqiliang/mcp-clickzetta-server:latest"
]
}
}
}
说明:
-
command和args 直接定义了如何在本地启动 MCP Server。
-
无需指定IP地址和端口。
-
--transport stdio参数指明了使用STDIO通信协议。
开始使用:
部署验证
1. 打开Claude Desktop,在输入框中,发送以下指令:
列出所有 Clickzetta Lakehouse 可用的 MCP工具
如果连接成功,您将看到一个包含 50+ 个工具的列表(注意:随着版本更新,工具的具体数量可能会有变化)
2. 验证WebUI界面
在您的浏览器中访问以下地址:http://localhost:8503, 预期可以展示以下页面:
如果以上两个步骤都顺利完成,恭喜您,您的应用已成功安装!
第二步:配置您的第一个数据源 (Lakehouse)
接下来,让我们配置一个Lakehouse连接,以便Claude可以访问您的数据。
1、打开连接管理器
访问WebUI界面http://localhost:8503,然后在左侧菜单中选择「连接管理」。
2、添加并填写连接信息
点击「添加新连接」按钮,并根据提示准确填写您的Lakehouse连接信息(如主机、端口、凭证等)
测试并保存
-
填写完毕后,点击「**测试连接**」按钮,确保所有配置信息无误且网络通畅。
-
测试通过后,点击「**保存**」完成配置。
第三步:开始您的第一个查询
现在一切准备就绪!您可以开始与您的数据进行交互了。尝试在Claude Desktop中提问:
"帮我看下有哪些 Lakehouse 实例"
高级配置:配置云器产品文档知识库
这个步骤会将云器Lakehouse产品知识库表集成进来,构建一个智能问答知识库。配置完成后,您将能够在MCP Client(如Claude Desktop)中,通过自然语言提问的方式,快速获得关于Lakehouse操作的官方指导和答案
该功能的核心是利用**嵌入服务 (Embedding**) 和**向量搜索 (Vector Search**) 技术,将非结构化的文档转化为可供机器理解和检索的知识库。
第一步:配置嵌入服务
此步骤的目的是告诉MCP系统如何将用户的“问题”也转换成向量,以便在知识库中进行匹配。
1、在MCP Server管理界面,从左侧导航栏进入「**系统配置**」。
2、在主配置区,选择 「**嵌入服务**」 标签页。
3、找到并填写 **DashScope 配置**(默认)部分:
-
API Key:粘贴您的阿里云百炼平台的 API 密钥。这是调用模型的身份凭证,请妥善保管。
-
向量维度 (Vector Dimension):输入您选择的嵌入模型所输出的向量维度。**此值必须与知识库文档向量化时使用的维度完全一致**。例如,截图中 text-embedding-v4 模型的维度是 1024。
-
嵌入模型 (Embedding Model):选择或填写用于将文本转换为向量的模型名称,例如 text-embedding-v4。
-
最大文本长度 (Max Text Length):设置模型一次可以处理的文本单元(Token)的最大数量。如果问题过长,超出部分将被忽略。
4. 点击保存嵌入服务配置按钮。
第二步:配置向量搜索
此步骤的目的是告诉MCP系统去哪里、以及如何搜索已经存储好的文档知识库。
1. 在系统配置页面,切换到 「**向量搜索**」 标签页。
2. 填写向量表配置部分:
-
向量表名称 (Vector Table Name):准确填写存储了文档向量的完整表名。格式通常为数据库名.模式名.表名,例如clickzetta_sample_data.clickzetta_doc.kb_dashscope_clickzetta_elements。
-
嵌入列 (Embedding Column):填写该表中用于存储**文本向量**的列名,例如 embeddings。
-
内容列 (Content Column):填写该表中用于存储**原始文本内容**的列名,例如 text。当系统找到相关答案时,这里的内容会作为主要参考。
-
其他列 (Other Columns):可选。填写您希望一并检索出的元数据列,如 file_directory, filename,这有助于用户追溯信息的原始出处。
3. 配置 **搜索参数**:保持默认即可,如果想进行修改,请参考下面的说明
-
距离阈值 (Distance Threshold):设置一个相似度匹配的严格程度。系统会计算问题向量与文档向量之间的“距离”,只有距离小于此值的文档才会被视为相关。**值越小,代表匹配要求越严格**。通常建议从0.80 开始尝试。
-
返回结果数 (Number of Results to Return):定义单次查询从数据库中检索出的最相关文档的数量。例如,设置为5表示每次找出5个最相关的文档片段。
-
启用重排序 (Enable Reranking):勾选此项后,系统会对初步检索出的结果进行二次智能排序,以提高最准确答案出现在最前面的概率。
4. 点击保存向量搜索配置按钮。
其他典型使用场景
请参考公众号文章:
MCP Server 如何助力 Lakehouse 实现 AI 驱动的 6 大数据应用场景
我们期待与您一起探索 AI 驱动的数据分析新时代!
附录
1. 创建docker-compose.yml文件内容,详见:
2. Lakehouse MCP工具列表:
序号
工具名称
功能类别
主要功能
支持操作
1
read_query
数据查询
执行SELECT查询并返回结果
支持自动结果限制,Spark SQL兼容
2
write_query
数据操作
执行写操作SQL语句
INSERT/UPDATE/DELETE/CREATE/DROP
3
vector_search
AI搜索
对表执行向量搜索/知识检索
智能列名推断,支持分区过滤
4
match_all
全文搜索
使用MATCH_ALL函数进行全文搜索
自动检测可搜索文本列
5
get_product_knowledge
知识检索
从向量数据库中搜索产品知识
语义相似性搜索
6
show_object_list
对象管理
列出数据库对象,支持智能筛选
智能分析、精确统计、过滤建议
7
desc_object
对象查看
获取数据库对象的详细信息
支持扩展模式、历史信息、索引信息
8
desc_object_history
版本管理
查看对象的历史版本和变更记录
支持TABLE/VIEW/FUNCTION/PIPE
9
drop_object
对象删除
安全删除各种类型的数据库对象
确认机制、UNDROP提示
10
restore_object
时间旅行
将对象恢复到指定历史时间点
支持表、动态表、物化视图
11
undrop_object
对象恢复
恢复被删除的对象
支持表、动态表、物化视图
12
create_table
表创建
创建ClickZetta表,支持完整语法
分区、分桶、索引、约束、生成列
13
create_external_table
外部表
创建外部表(Delta Lake格式)
仅支持Delta Lake,对象存储
14
create_dynamic_table
动态表
创建动态表,自动维护查询结果
自动刷新、增量更新
15
create_table_stream
流表
创建表流,用于捕获表变更数据
CDC功能,跟踪INSERT/UPDATE/DELETE
16
create_schema
模式创建
创建新的SCHEMA(数据模式)
逻辑分组,权限管理
17
create_external_schema
外部模式
创建外部SCHEMA映射
基于CATALOG CONNECTION
18
create_catalog_connection
目录连接
创建外部元数据目录连接
支持Hive、OSS、Databricks
19
create_external_catalog
外部目录
创建外部CATALOG挂载
基于已创建的CATALOG CONNECTION
20
create_storage_connection
存储连接
创建存储系统连接
HDFS、OSS、COS、S3、Kafka
21
create_api_connection
API连接
创建API CONNECTION用于云函数
阿里云FC、腾讯云函数、AWS Lambda
22
create_volume
存储卷
创建EXTERNAL VOLUME访问对象存储
自动验证bucket存在性
23
put_file_to_volume
文件上传
将文件上传到Volume存储
支持URL、本地文件、直接内容
24
get_file_from_volume
文件下载
从Volume下载文件到本地
支持单个或批量文件下载
25
list_files_on_volume
文件列表
列举Volume中的文件列表
支持子目录浏览、正则筛选
26
remove_file_from_volume
文件删除
从Volume删除文件或目录
支持文件和目录删除
27
create_index
索引创建
创建索引
VECTOR/INVERTED/BLOOMFILTER三种类型
28
create_function
UDF创建
创建基于SQL的用户自定义函数
仅支持SQL表达式和查询
29
create_external_function
外部函数
创建外部函数,支持Python/Java代码
云函数执行,复杂业务逻辑
30
package_external_function
函数打包
智能打包Python外部函数及依赖
生产/开发/Docker三种模式
31
get_external_function_guide
函数指南
获取外部函数开发指南
Python开发规范、最佳实践
32
get_external_function_template
函数模板
获取外部函数开发模板
AI文本、多模态、向量、业务场景
33
create_pipe
管道创建
创建PIPE管道用于自动化数据导入
智能模式、手动模式
34
alter_pipe
管道修改
修改PIPE属性
suspend/resume、批处理参数
35
create_vcluster
集群创建
创建虚拟计算集群
资源隔离、工作负载管理
36
alter_vcluster
集群修改
修改计算集群配置
启停、属性配置、说明更新
37
get_current_context
上下文查看
获取当前连接的上下文信息
连接、WORKSPACE、SCHEMA、VCLUSTER
38
switch_context
上下文切换
切换当前上下文
会话级切换,智能路由
39
switch_vcluster_schema
环境切换
切换虚拟集群和模式
在当前workspace内切换
40
switch_workspace
工作空间
切换workspace
重新建立数据库连接
41
switch_lakehouse_instance
实例切换
切换多云环境或Lakehouse环境
多云、多环境、多地域切换
42
import_data_src
数据导入
从URL、文件路径或Volume导入数据
支持多种格式,三种写入模式
43
import_data_from_db
数据库导入
从外部数据库导入数据
MySQL、PostgreSQL、SQLite
44
preview_volume_data
数据预览
对Volume文件进行SQL查询分析
预览模式、导入模式
45
alter_dynamic_table
动态表修改
修改动态表属性
suspend/resume、注释、列操作
46
modify_dynamic_table_data
动态表数据
对动态表执行数据修改操作
INSERT/UPDATE/DELETE/MERGE
47
refresh_dynamic_table
动态表刷新
手动刷新动态表数据
立即刷新数据
48
create_knowledge_base
知识库创建
创建知识库,支持文档向量化
非结构化ETL管道
49
add_knowledge_entry
知识添加
添加知识条目到向量数据库
产品知识、技术规范存储
50
add_data_insight
洞察记录
添加数据洞察到备忘录
分析过程中的重要发现
51
manage_share
共享管理
管理SHARE对象
跨实例数据共享,OUTBOUND/INBOUND
52
show_job_history
作业历史
查询系统级作业执行历史
性能分析、问题排查
53
show_table_load_history
加载历史
查询表的COPY操作加载历史
文件导入历史追踪(7天保留)
54
smart_crawl_to_volume
智能爬取
智能抓取URL内容到Volume
sitemap、网页、文档抓取
55
smart_crawl_url
网页抓取
智能网页内容抓取
高级提取策略、智能分块
56
crawl_single_page
单页抓取
单页面网页抓取
CSS选择器、原始HTML
57
get_operation_guide
操作指南
获取特定操作的综合指南
详细步骤、最佳实践、常见问题
58
run_happy_paths
演示路径
执行Lakehouse快乐路径演示
关键功能展示、完整使用流程