ByteHouse MCP Server Skill
🔵 ByteHouse 品牌标识
「ByteHouse」—— 火山引擎云原生数据仓库,极速、稳定、安全、易用
本Skill基于ByteHouse官方MCP Server,提供完整的ByteHouse数据访问能力
描述
在本地拉起ByteHouse MCP Server并调用其tools的技能。
当以下情况时使用此 Skill:
(1) 需要连接ByteHouse数据库查询数据
(2) 需要使用MCP协议与ByteHouse交互
(3) 用户提到"ByteHouse"、"MCP"、"查询数据库"、"看表"
(4) 需要生成数据资产目录和血缘分析
📁 文件说明
- - SKILL.md - 本文件,技能主文档
- mcpclient.py - MCP客户端模块,用于程序化调用MCP Server
- testmcpserver.py - MCP Server测试脚本
- examplemcpusage.py - MCP使用示例
- querytop10tablesmcp.py - 使用MCP查询Top 10大表
- testlisttables.py - 测试listtables tool
- dataassetanalyzer.py - 数据资产和血缘分析工具(新增)
- startmcpservice.sh - 启动常驻MCP Server服务
- stopmcpservice.sh - 停止MCP Server服务
- statusmcpservice.sh - 查看MCP Server状态
- restartmcp_service.sh - 重启MCP Server服务
前置条件
- - Python 3.8+
- uv (已安装在
/root/.local/bin/uv) - ByteHouse连接信息(需自行配置)
配置信息
ByteHouse连接配置
CODEBLOCK0
环境变量
在使用前请设置以下环境变量:
CODEBLOCK1
🎯 ByteHouse MCP Server Tools
| 序号 | Tool名称 | 功能描述 |
|---|
| 1 | listdatabases | 列出所有数据库 |
| 2 |
listtables | 列出指定数据库中的所有表 |
| 3 |
runselectquery | 运行SELECT查询 |
| 4 |
rundmlddl_query | 运行DML/DDL查询 |
| 5 |
getbytehousetableenginedoc | 获取ByteHouse表引擎文档 |
🚀 快速开始
方法1: 测试MCP Server(推荐先测试)
CODEBLOCK2
这会:
- 1. 自动安装ByteHouse MCP Server
- 启动MCP Server
- 列出所有可用的tools
- 尝试调用第一个tool
方法2: 列出数据库中的表
CODEBLOCK3
方法3: 使用MCP查询Top 10大表
CODEBLOCK4
方法4: 生成数据资产和血缘分析(新增)
CODEBLOCK5
这会:
- 1. 获取数据库的完整schema
- 生成数据资产目录
- 生成血缘分析报告
- 保存JSON文件到
output/ 目录
输出内容包括:
- - 数据库schema(所有表和字段)
- 数据资产目录(表统计、标签、引擎分布)
- 血缘分析(表关系、列相似性)
方法5: 启动常驻MCP Server服务
CODEBLOCK6
这会:
- 1. 在后台启动MCP Server
- 保存PID到 INLINECODE2
- 写入日志到 INLINECODE3
方法6: 查看MCP Server状态
CODEBLOCK7
方法7: 停止MCP Server
CODEBLOCK8
方法8: 重启MCP Server
CODEBLOCK9
💻 数据资产和血缘分析(新增)
功能说明
INLINECODE4 提供以下功能:
- 1. 完整Schema获取
- 获取指定数据库的所有表
- 获取每张表的所有字段
- 提取表引擎、注释等元数据
- 2. 数据资产目录生成
- 表统计(总表数、总列数)
- 引擎分布统计
- 自动标签生成
- 表资产详情
- 3. 血缘分析
- 表关系识别(Distributed → Local)
- 列相似性分析
- 关系可视化
使用示例
CODEBLOCK10
输出文件
分析完成后会在 output/ 目录生成以下文件:
- 1. schema{database}{timestamp}.json - 完整的数据库schema
- catalog{database}{timestamp}.json - 数据资产目录
- lineage{database}{timestamp}.json - 血缘分析报告
💻 程序化使用MCP Client
使用mcp_client.py模块
CODEBLOCK11
直接使用MCP SDK
CODEBLOCK12
🔧 服务管理
启动服务
CODEBLOCK13
查看状态
CODEBLOCK14
查看日志
CODEBLOCK15
停止服务
CODEBLOCK16
重启服务
CODEBLOCK17
💻 使用MCP Tools示例
示例1: 列出所有数据库
CODEBLOCK18
示例2: 列出数据库中的表
CODEBLOCK19
示例3: 运行SELECT查询
CODEBLOCK20
示例4: 查询Top 10大表
CODEBLOCK21
最后更新: 2026-03-12
ByteHouse MCP Server 技能
🔵 ByteHouse 品牌标识
「ByteHouse」—— 火山引擎云原生数据仓库,极速、稳定、安全、易用
本技能基于ByteHouse官方MCP Server,提供完整的ByteHouse数据访问能力
描述
在本地拉起ByteHouse MCP Server并调用其工具的技能。
当以下情况时使用此技能:
(1) 需要连接ByteHouse数据库查询数据
(2) 需要使用MCP协议与ByteHouse交互
(3) 用户提到ByteHouse、MCP、查询数据库、看表
(4) 需要生成数据资产目录和血缘分析
📁 文件说明
- - SKILL.md - 本文件,技能主文档
- mcpclient.py - MCP客户端模块,用于程序化调用MCP Server
- testmcpserver.py - MCP Server测试脚本
- examplemcpusage.py - MCP使用示例
- querytop10tablesmcp.py - 使用MCP查询Top 10大表
- testlisttables.py - 测试listtables工具
- dataassetanalyzer.py - 数据资产和血缘分析工具(新增)
- startmcpservice.sh - 启动常驻MCP Server服务
- stopmcpservice.sh - 停止MCP Server服务
- statusmcpservice.sh - 查看MCP Server状态
- restartmcp_service.sh - 重启MCP Server服务
前置条件
- - Python 3.8+
- uv (已安装在 /root/.local/bin/uv)
- ByteHouse连接信息(需自行配置)
配置信息
ByteHouse连接配置
json
{
host: ,
port: ,
user: ,
password: ,
secure: true,
verify: true
}
环境变量
在使用前请设置以下环境变量:
bash
export BYTEHOUSE_HOST=
export BYTEHOUSE_PORT=
export BYTEHOUSE_USER=
export BYTEHOUSE_PASSWORD=
export BYTEHOUSE_SECURE=true
export BYTEHOUSE_VERIFY=true
export BYTEHOUSECONNECTTIMEOUT=30
export BYTEHOUSESENDRECEIVE_TIMEOUT=30
🎯 ByteHouse MCP Server 工具
| 序号 | 工具名称 | 功能描述 |
|---|
| 1 | listdatabases | 列出所有数据库 |
| 2 |
listtables | 列出指定数据库中的所有表 |
| 3 |
runselectquery | 运行SELECT查询 |
| 4 |
rundmlddl_query | 运行DML/DDL查询 |
| 5 |
getbytehousetableenginedoc | 获取ByteHouse表引擎文档 |
🚀 快速开始
方法1: 测试MCP Server(推荐先测试)
bash
cd /root/.openclaw/workspace/skills/bytehouse-mcp
先设置环境变量,然后运行
uv run test
mcpserver.py
这会:
- 1. 自动安装ByteHouse MCP Server
- 启动MCP Server
- 列出所有可用的工具
- 尝试调用第一个工具
方法2: 列出数据库中的表
bash
cd /root/.openclaw/workspace/skills/bytehouse-mcp
先设置环境变量,然后运行
uv run test
listtables.py
方法3: 使用MCP查询Top 10大表
bash
cd /root/.openclaw/workspace/skills/bytehouse-mcp
先设置环境变量,然后运行
uv run query
top10tables_mcp.py
方法4: 生成数据资产和血缘分析(新增)
bash
cd /root/.openclaw/workspace/skills/bytehouse-mcp
先设置环境变量,然后运行
uv run data
assetanalyzer.py
这会:
- 1. 获取数据库的完整模式
- 生成数据资产目录
- 生成血缘分析报告
- 保存JSON文件到 output/ 目录
输出内容包括:
- - 数据库模式(所有表和字段)
- 数据资产目录(表统计、标签、引擎分布)
- 血缘分析(表关系、列相似性)
方法5: 启动常驻MCP Server服务
bash
cd /root/.openclaw/workspace/skills/bytehouse-mcp
先在脚本中配置环境变量,然后运行
./start
mcpservice.sh
这会:
- 1. 在后台启动MCP Server
- 保存PID到 mcpserver.pid
- 写入日志到 logs/mcpserver_*.log
方法6: 查看MCP Server状态
bash
./statusmcpservice.sh
方法7: 停止MCP Server
bash
./stopmcpservice.sh
方法8: 重启MCP Server
bash
./restartmcpservice.sh
💻 数据资产和血缘分析(新增)
功能说明
dataassetanalyzer.py 提供以下功能:
- 1. 完整模式获取
- 获取指定数据库的所有表
- 获取每张表的所有字段
- 提取表引擎、注释等元数据
- 2. 数据资产目录生成
- 表统计(总表数、总列数)
- 引擎分布统计
- 自动标签生成
- 表资产详情
- 3. 血缘分析
- 表关系识别(分布式 → 本地)
- 列相似性分析
- 关系可视化
使用示例
python
#!/usr/bin/env python3
/// script
dependencies = [
mcp>=1.0.0,
]
///
import asyncio
from dataassetanalyzer import DataAssetAnalyzer
async def main():
analyzer = DataAssetAnalyzer()
await analyzer.connect()
# 分析数据库
result = await analyzer.analyze_database(default)
# result 包含:
# - schema: 完整的数据库模式
# - catalog: 数据资产目录
# - lineage: 血缘分析
# - files: 生成的文件路径
asyncio.run(main())
输出文件
分析完成后会在 output/ 目录生成以下文件:
- 1. schema{database}{timestamp}.json - 完整的数据库模式
- catalog{database}{timestamp}.json - 数据资产目录
- lineage{database}{timestamp}.json - 血缘分析报告
💻 程序化使用MCP客户端
使用mcp_client.py模块
python
#!/usr/bin/env python3
/// script
dependencies = [
mcp>=1.0.0,
]
///
import asyncio
from mcp_client import ByteHouseMCPClient
async def main():
async with ByteHouseMCPClient() as client:
await client.connect()
# 1. 列出所有工具
tools = await client.list_tools()
print(可用的工具:, [t[name] for t in tools])
# 2. 调用工具
# result = await client.calltool(toolname, {param: value})
# print(result)
asyncio.run(main())
直接使用MCP SDK
python
#!/usr/bin/env python3
/// script
dependencies = [
mcp>=1.0.0,
]
///
import asyncio
import os
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def main():
# 设置环境变量(请自行配置)
env = os.environ.copy()
env.update({
BYTEHOUSE_HOST: ,
BYTEHOUSE_PORT: ,
BYTEHOUSE_USER: ,
BYTEHOUSE_PASSWORD: ,
BYTEHOUSE_SECURE: true,
BYTEHOUSE_VERIFY: true,
})
# MCP Server参数
server_params = StdioServerParameters(
command=/root/.local/bin/uvx,
args=[
--from,
git+https://github.com/volcengine/mcp-server@main#subdirectory=server