Clickzetta MCP Server

Integrations

  • Provides installation through PyPI, as indicated by the PyPI downloads badge and installation instructions.

Clickzetta MCP 服务器

概述

模型上下文协议 (MCP) 服务器实现,提供与Clickzetta Lakehouse的数据库交互。该服务器支持使用工具运行 SQL 查询,并与作为资源呈现的数据洞察备忘录进行交互。

使用 MCP-ClickZetta-Server/Trae 快速开始作为您的 AI 数据工程师

下载并安装 Trae

从 trae.ai 下载并登录以启用 AI。

获取您的 ClickZetta 帐户

获取您的 ClickZetta 帐户

拉取 MCP-ClickZetta-Server Docker 镜像

docker pull czqiliang/mcp-clickzetta-server

在 Trae 中添加 MCP 服务器

  • 在AI聊天窗口中,单击设置图标> MCP。
  • MCP 窗口将会出现。
  • 单击 + 添加按钮。
  • 您将进入 MCP 服务器市场。
  • 点击“手动配置”。系统将弹出“手动配置”窗口。将以下 JSON 配置粘贴到输入框中,添加一个新的 MCP 服务器,然后点击“确认”按钮。该 MCP 服务器将被添加到 MCP 列表中。
{ "mcpServers": { "clickzetta-mcp-server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "LOG_LEVEL=INFO", "-e", "CLICKZETTA_SERVICE", "-e", "CLICKZETTA_INSTANCE", "-e", "CLICKZETTA_WORKSPACE", "-e", "CLICKZETTA_SCHEMA", "-e", "CLICKZETTA_USERNAME", "-e", "CLICKZETTA_PASSWORD", "-e", "CLICKZETTA_VCLUSTER", "-e", "XINFERENCE_BASE_URL", "-e", "XINFERENCE_EMBEDDING_MODEL_512", "-e", "Similar_table_name", "-e", "Similar_embedding_column_name", "-e", "Similar_content_column_name", "-e", "Similar_partition_scope", "czqiliang/mcp-clickzetta-server:latest" ], "env": { "CLICKZETTA_SERVICE": "api.clickzetta.com", "CLICKZETTA_INSTANCE": "your clickzetta instance", "CLICKZETTA_WORKSPACE": "your clickzetta workspace" , "CLICKZETTA_SCHEMA": "your clickzetta schema", "CLICKZETTA_USERNAME": "your clickzetta usename", "CLICKZETTA_PASSWORD": "your clickzetta password", "CLICKZETTA_VCLUSTER": "your clickzetta vcluster", "XINFERENCE_BASE_URL": "http://host.docker.internal:9998", "XINFERENCE_EMBEDDING_MODEL_512": "bge-small-zh", "Similar_table_name": "clickzegithub_event_issuesevent_embedding.github_event_issuesevent_embedding_512tta_table", "Similar_embedding_column_name": "issue_body_embedding", "Similar_content_column_name": "issue_body", "Similar_partition_scope": "partition_date >= '2024-01-01' and partition_date <= '2024-01-15'" } } } }
  • CLICKZETTA 底层的环境参数为必填
  • XINFERENCE 开头和相似开头的env参数为可选,支持vector_search和match_all连个工具

使用 MCP-ClickZetta-Server/Zettapark-MCP-Server/Claude Desktop 快速开始作为您的 AI 数据工程师

下载并安装 Claude Desktop

从 claude.ai 下载并登录。

获取您的 ClickZetta 帐户

获取您的 ClickZetta 帐户

启动你的 Jupyter 实验室

从 Docker Compose 开始
  • 创建文件夹
mkdir notebooks cd notebooks
  • 创建 config.json 文件并设置您的登录信息如下:
{ "username": "your clickzetta lakehouse user name", "password": "your clickzetta lakehouse password", "service": "api.clickzetta.com", "instance": "your clickzetta lakehouse instance name", "workspace": "your clickzetta lakehouse workspac name", "schema": "your clickzetta lakehouse schema", "vcluster": "your clickzetta lakehouse vcluster name", "sdk_job_timeout": 60, "hints": { "sdk.job.timeout": 60, "query_tag": "test_zettapark_vector_ns227206", "cz.storage.parquet.vector.index.read.memory.cache": "true", "cz.storage.parquet.vector.index.read.local.cache": "false", "cz.sql.table.scan.push.down.filter": "true", "cz.sql.table.scan.enable.ensure.filter": "true", "cz.storage.always.prefetch.internal": "true", "cz.optimizer.generate.columns.always.valid": "true", "cz.sql.index.prewhere.enabled": "true", "cz.storage.parquet.enable.io.prefetch": "false" } }

注意:使用这种方法,请在 Notebooks 文件夹中设置 config.json 文件。您应该根据自己的目的更改 query_tag,它用于通过标签查找查询。

  • 下载docker-compose.yml并启动docker compose

这里下载docker compose文件

docker compose up -d

转到 Docker 桌面并检查 docker compose 是否已启动。

  • 访问 Jupyter Lab 服务器

http://localhost:8888/

令牌: YOUR_SECURE_TOKEN

然后创建一个新的笔记本,将名称从 Untitled.ipynb 更改为 Notebook.ipynb 。

或者启动本地服务器
# Create a clean environment (Python 3.10 worked during debugging) conda create -n jupyter_mcp_env python=3.10 -y # Activate the environment conda activate jupyter_mcp_env # Use 'python -m pip' to ensure correct pip in the activated env python -m pip install jupyterlab ipykernel # Install the required v2.0.1 python -m pip install "jupyter_collaboration==2.0.1" # Uninstall potentially conflicting versions python -m pip uninstall -y pycrdt datalayer_pycrdt # Install the required version python -m pip install datalayer_pycrdt jupyter server extension enable jupyter_collaboration --py --sys-prefix # Start JupyterLab, please keep token as YOUR_SECURE_TOKEN jupyter lab --port 8888 --IdentityProvider.token YOUR_SECURE_TOKEN --ip 0.0.0.0

在您的 Claude Desktop 中添加 MCP 服务器

  • 在 Claude Desktop 中,转到“设置”→“开发人员”→“编辑配置”
  • 打开 claude_desktop_config.json 并配置 MCP 服务器
{ "mcpServers": { "jupyter": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "SERVER_URL", "-e", "TOKEN", "-e", "NOTEBOOK_PATH", "-e", "LOG_LEVEL=INFO", "czqiliang/jupyter-mcp-server:latest" ], "env": { "SERVER_URL": "http://host.docker.internal:8888", "TOKEN": "YOUR_SECURE_TOKEN", "NOTEBOOK_PATH": "notebook.ipynb" } }, "clickzetta-mcp-server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "LOG_LEVEL=INFO", "-e", "CLICKZETTA_SERVICE", "-e", "CLICKZETTA_INSTANCE", "-e", "CLICKZETTA_WORKSPACE", "-e", "CLICKZETTA_SCHEMA", "-e", "CLICKZETTA_USERNAME", "-e", "CLICKZETTA_PASSWORD", "-e", "CLICKZETTA_VCLUSTER", "-e", "XINFERENCE_BASE_URL", "-e", "XINFERENCE_EMBEDDING_MODEL_512", "-e", "Similar_table_name", "-e", "Similar_embedding_column_name", "-e", "Similar_content_column_name", "-e", "Similar_partition_scope", "czqiliang/mcp-clickzetta-server:latest" ], "env": { "CLICKZETTA_SERVICE": "api.clickzetta.com", "CLICKZETTA_INSTANCE": "your clickzetta instance", "CLICKZETTA_WORKSPACE": "your clickzetta workspace" , "CLICKZETTA_SCHEMA": "your clickzetta schema", "CLICKZETTA_USERNAME": "your clickzetta usename", "CLICKZETTA_PASSWORD": "your clickzetta password", "CLICKZETTA_VCLUSTER": "your clickzetta vcluster", "XINFERENCE_BASE_URL": "http://host.docker.internal:9998", "XINFERENCE_EMBEDDING_MODEL_512": "bge-small-zh", "Similar_table_name": "clickzegithub_event_issuesevent_embedding.github_event_issuesevent_embedding_512tta_table", "Similar_embedding_column_name": "issue_body_embedding", "Similar_content_column_name": "issue_body", "Similar_partition_scope": "partition_date >= '2024-01-01' and partition_date <= '2024-01-15'" } } } }

您可以从这里获取有关 Zettapark MCP 服务器的更多详细信息。

成分

资源

服务器公开单个动态资源:

  • memo://insights :持续更新的数据洞察备忘录,汇总分析过程中发现的洞察
    • 通过附加洞察工具发现新见解时自动更新

工具

该服务器提供以下核心工具:

查询工具
read_query
  • 描述:执行SELECT查询以从数据库读取数据。
  • 输入
    • query (字符串):要执行的SELECT SQL 查询。
  • 返回:查询结果作为对象数组。
write_query (需要--allow-write标志)
  • 描述:执行INSERTUPDATEDELETE查询来修改数据。
  • 输入
    • query (字符串):SQL 修改查询。
  • 返回{ affected_rows: number } ,表示受影响的行数。
create_table (需要--allow-write标志)
  • 描述:在数据库中创建新表。
  • 输入
    • query (字符串): CREATE TABLE SQL 语句。
  • 返回:表创建的确认。
create_table_with_prompt (需要--allow-write标志)
  • 描述:通过提示用户输入表名、列及其类型来创建新表。
  • 输入
    • table_name (字符串):要创建的表的名称。
    • columns (字符串):列及其类型,格式为column1:type1,column2:type2
  • 返回:表创建的确认。
架构工具
list_tables
  • 描述:获取数据库中所有表的列表。
  • 输入:无需输入。
  • 返回:表名数组。
describe_table
  • 描述:查看特定表的列信息。
  • 输入
    • table_name (字符串):要描述的表的名称(可以完全限定)。
  • 返回:具有名称和类型的列定义数组。
show_object_list
  • 描述:获取当前工作区中特定对象类型的列表,例如目录、模式、表等。
  • 输入
    • object_type (字符串):要显示的对象的类型。
  • 返回:对象列表。
desc_object
  • 描述:获取有关特定对象(例如目录、模式或表)的详细信息。
  • 输入
    • object_type (字符串):对象的类型。
    • object_name (字符串):对象的名称。
  • 返回:有关对象的详细信息。
分析工具
append_insight
  • 描述:向备忘录资源添加新的数据见解。
  • 输入
    • insight (字符串):从分析中发现的数据洞察。
  • 返回:洞察力增加的确认。
  • 触发器:更新memo://insights资源。
数据导入工具
import_data_into_table_from_url
  • 描述:从 URL(包括文件路径或 HTTP/HTTPS URL)导入数据到表中。如果目标表不存在,则会自动创建。
  • 输入
    • from_url (字符串):数据源 URL。
    • dest_table (字符串):要导入数据的表。
  • 返回:数据导入成功确认。
import_data_into_table_from_database
  • 描述:连接到数据库,执行查询,并将结果导入 Clickzetta 表。支持 MySQL、PostgreSQL、SQLite 和其他常见数据库类型。
  • 输入
    • db_type (字符串):数据库的类型(例如, mysqlpostgresqlsqlite )。
    • host (字符串):数据库服务器的主机名或 IP 地址(SQLite 不需要)。
    • port (整数):数据库服务器的端口号(SQLite 不需要)。
    • database (字符串):要连接的数据库的名称(对于 SQLite,这是数据库文件的文件路径)。
    • username (字符串):用于身份验证的用户名(SQLite 不需要)。
    • password (字符串):用于身份验证的密码(SQLite 不需要)。
    • source_table (字符串):源表名称。
    • dest_table (字符串):目标表名称。
  • 返回:数据导入成功确认。
类似的搜索工具
  • 描述:使用问题对表执行向量搜索并返回前 5 个最接近的答案。
  • 输入
    • table_name (字符串):表名。
    • content_column_name (字符串):存储内容的列。
    • embedding_column_name (字符串):存储嵌入的列。
    • partition_scope (字符串):将分区范围定义为WHERE条件的一部分的 SQL 代码。
    • question (字符串):要搜索的问题。
  • 返回:搜索结果。
match_all
  • 描述:使用“全部匹配”功能对包含问题的表格执行搜索并返回前 5 个答案。
  • 输入
    • table_name (字符串):表名。
    • content_column_name (字符串):存储内容的列。
    • partition_scope (字符串):将分区范围定义为WHERE条件的一部分的 SQL 代码。
    • question (字符串):要搜索的问题。
  • 返回:搜索结果。
知识搜索工具
get_knowledge_about_how_to_do_something
  • 描述:提供有关如何执行特定任务的指导,例如分析慢查询、创建表或管理存储连接。
  • 输入
    • to_do_something (字符串):要执行的任务。支持的任务包括:
      • analyze_slow_query
      • analyze_table_with_small_file
      • create_table_syntax
      • how_to_create_vcluster
      • how_to_create_index
      • how_to_alter_table_and_column
      • how_to_create_storage_connection
      • how_to_create_external_volume
  • 返回:有关指定任务的详细指导。
使用说明
  • 确保使用修改数据的工具(例如write_querycreate_table )时启用--allow-write标志。
  • 按照上述说明为每个工具提供正确的输入参数。

与 Claude Desktop 一起使用

安装为本地 MCP 服务器(此方式已在 MacOS 上测试验证)

克隆此存储库:
git clone https://github.com/yunqiqiliang/mcp-clickzetta-server.git cd mcp-clickzetta-server
安装软件包:
uv pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
配置凭证

使用您的 Clickzetta Lakehouse 凭证根据 .env.example 创建 .env 文件:

CLICKZETTA_USERNAME = "" CLICKZETTA_PASSWORD = "" CLICKZETTA_SERVICE = "api.clickzetta.com" CLICKZETTA_INSTANCE = "" CLICKZETTA_WORKSPACE = "" CLICKZETTA_SCHEMA = "" CLICKZETTA_VCLUSTER = "" XINFERENCE_BASE_URL = "http://********:9998" XINFERENCE_EMBEDDING_MODEL_512 = "bge-small-zh" Similar_table_name = "github_event_issuesevent_embedding.github_event_issuesevent_embedding_512" Similar_embedding_column_name = "issue_body_embedding" Similar_content_column_name = "issue_body" Similar_partition_scope = "partition_date >= '2024-01-01' and partition_date <= '2024-01-15'"
用法
用紫外线运行

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

uv run mcp_clickzetta_server

如果这是您第一次运行服务器,您可以运行以下命令来加速软件包安装:

UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/ uv run mcp_clickzetta_server

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

您应该看到类似以下内容的输出:

uv run mcp_clickzetta_server --no-prefetch 2025-03-25 10:11:20,799 - mcp_clickzetta_server - INFO - Starting Clickzetta MCP Server 2025-03-25 10:11:20,799 - mcp_clickzetta_server - INFO - Allow write operations: False 2025-03-25 10:11:20,799 - mcp_clickzetta_server - INFO - Prefetch table descriptions: True 2025-03-25 10:11:20,799 - mcp_clickzetta_server - INFO - Excluded tools: [] 2025-03-25 10:11:20,799 - mcp_clickzetta_server - INFO - Prefetching table descriptions 2025-03-25 10:11:21,726 - clickzetta.zettapark.session - INFO - Zettapark Session information: "version" : 0.1.3, "python.version" : 3.12.2, "python.connector.version" : 0.8.89.0, "python.connector.session.id" : dd46bd27-920d-4760-94a6-6f994d31e63e, "os.name" : Darwin 2025-03-25 10:11:21,728 - clickzetta.connector.v0.client - INFO - clickzetta connector submitting job, id:2025032510112172821098301 2025-03-25 10:11:23,059 - clickzetta.connector.v0.client - INFO - clickzetta connector submitting job, id:2025032510112305897947697 2025-03-25 10:11:23,728 - mcp_clickzetta_server - INFO - Allowed tools: ['read_query', 'append_insight'] 2025-03-25 10:11:23,732 - mcp_clickzetta_server - INFO - Server running with stdio transport
Claude 桌面集成
命令:docker

MCP 服务器(在 Docker 中运行)从 MCP 客户端配置(例如claude_desktop_config.json )传递的环境变量中读取其配置。关键变量:

{ "clickzetta-mcp-server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "LOG_LEVEL=INFO", "-e", "CLICKZETTA_SERVICE", "-e", "CLICKZETTA_INSTANCE", "-e", "CLICKZETTA_WORKSPACE", "-e", "CLICKZETTA_SCHEMA", "-e", "CLICKZETTA_USERNAME", "-e", "CLICKZETTA_PASSWORD", "-e", "CLICKZETTA_VCLUSTER", "-e", "XINFERENCE_BASE_URL", "-e", "XINFERENCE_EMBEDDING_MODEL_512", "-e", "Similar_table_name", "-e", "Similar_embedding_column_name", "-e", "Similar_content_column_name", "-e", "Similar_partition_scope", "czqiliang/mcp-clickzetta-server:latest" ], "env": { "CLICKZETTA_SERVICE": "api.clickzetta.com", "CLICKZETTA_INSTANCE": "your clickzetta instance", "CLICKZETTA_WORKSPACE": "your clickzetta workspace" , "CLICKZETTA_SCHEMA": "your clickzetta schema", "CLICKZETTA_USERNAME": "your clickzetta usename", "CLICKZETTA_PASSWORD": "your clickzetta password", "CLICKZETTA_VCLUSTER": "your clickzetta vcluster", "XINFERENCE_BASE_URL": "http://host.docker.internal:9998", "XINFERENCE_EMBEDDING_MODEL_512": "bge-small-zh", "Similar_table_name": "clickzegithub_event_issuesevent_embedding.github_event_issuesevent_embedding_512tta_table", "Similar_embedding_column_name": "issue_body_embedding", "Similar_content_column_name": "issue_body", "Similar_partition_scope": "partition_date >= '2024-01-01' and partition_date <= '2024-01-15'" } } }
命令:uv
  • 在 Claude Desktop 中,前往“设置”→“MCP 服务器”
  • 添加一个具有 uv 可执行文件完整路径的新服务器:
{ "mcpServers": { "clickzetta-mcp-server" : { "command": "/Users/******/anaconda3/bin/uv", "args": [ "--directory", "/Users/******/Documents/GitHub/mcp-clickzetta-server", "run", "mcp_clickzetta_server" ] } } }
  • 您可以在终端中运行 which uv 来找到您的 uv 路径
  • 保存服务器配置

示例查询

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

  • “您能列出我的 Clickzetta 帐户中的所有模式吗?”
  • “列出 PUBLIC 模式中的所有视图”
  • “描述 SALES 模式中 CUSTOMER_ANALYTICS 视图的结构”
  • “显示 FINANCE 模式中 REVENUE_BY_REGION 视图的示例数据”
  • “运行此 SQL 查询:SELECT customer_id, SUM(order_total) as total_spend FROM SALES.ORDERS GROUP BY customer_id ORDER BY total_spend DESC LIMIT 10”
  • “查询 MARKETING 数据库,按转化率找出表现最好的 5 个营销活动”
  • “帮助我从Clickzetta中读取数据,在公共这个schema下github_users表里每个公司的用户数据进行分析。请用中文返回结果,公开结果进行数据可视化实验”
  • “帮我从Clickzetta中读取数据,分析下在公共这个schema下github_event_issues事件表里有多少条记录?”
示例结果
  • '帮我从Clickzetta数据源中读取数据,先分析基于public这个schema下github_users表里的数据可以做哪些分析?包括指标、统计、趋势、以及各种经典的用户分析模型比如用户价值分析、用户生命周期分析、用户细分等,然后根据这些分析内容生成一个分析报告的仪表盘'

  • “帮我从Clickzetta中读取数据,分析下在公共这个schema下github_users表里每个公司的用户数据。请用中文返回结果,公开结果进行数据可视化”的结果:

  • “帮我从Clickzetta中读取数据,分析下在公共这个schema下github_users表里每个位置的用户数。请用中文返回结果,可视化结果进行数据可视化显示”的结果:

安全注意事项

该服务器:

  • 强制执行只读操作(仅允许 SELECT 语句)
  • 自动添加 LIMIT 子句以防止结果集过大
  • 使用服务帐户身份验证实现安全连接
  • 验证输入以防止 SQL 注入
  • ⚠️ 重要提示:请确保你的 .env 文件安全,切勿将其提交到版本控制中。.gitignore 文件已配置为将其排除。

通过 Smithery 安装(此方式有待测试和验证)

要通过Smithery自动为 Claude Desktop 安装 Clickzetta 服务器:

npx -y @smithery/cli@latest install @yunqiqiliang/mcp-clickzetta-server --client claude --key ******

通过UVX安装(此方式有待测试和验证)

# Add the server to your claude_desktop_config.json "mcpServers": { "clickzetta_pip": { "command": "uvx", "args": [ "mcp_clickzetta_server", "--service", "the_service", "--instance", "the_instance", "--vcluster", "the_vcluster", "--workspace", "the_workspace", "--schema", "the_schema", "--user", "the_user", "--password", "their_password", # Optionally: "--allow_write" (but not recommended) # Optionally: "--log_dir", "/absolute/path/to/logs" # Optionally: "--log_level", "DEBUG"/"INFO"/"WARNING"/"ERROR"/"CRITICAL" # Optionally: "--exclude_tools", "{tool name}", ["{other tool name}"] ] } }

Related MCP Servers

  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables SQL query execution, database management, and business intelligence capabilities through MySQL connections.
    Last updated -
    JavaScript
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides database interaction capabilities through SQLite, enabling users to run SQL queries, analyze business data, and automatically generate business insight memos.
    Last updated -
    6
    9
    TypeScript
    MIT License
    • Apple
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.
    Last updated -
    Python
  • -
    security
    F
    license
    -
    quality
    A Model Context Protocol server that enables SQL operations (SELECT, INSERT, UPDATE, DELETE) and table management through a standardized interface with SQLite databases.
    Last updated -
    JavaScript

View all related MCP servers

ID: frbnpc6ouv