Model Context Protocol (MCP)
实验性功能
GreptimeDB MCP Server 目前处于实验阶段并在积极开发中。API 和功能可能会在没有通知的情况下发生变化。请在生产环境中谨慎使用。
GreptimeDB MCP Server 提供了模型上下文协议的实现,使 Claude 等 AI 助手能够安全地用 SQL、TQL(兼容 PromQL)和 RANGE 查询来查询与分析您的 GreptimeDB 数据库——并内置只读 SQL 校验和数据脱敏。
查看我们的演示视频和文章,了解 MCP Server 的实际应用效果。
什么是 MCP?
模型上下文协议(MCP)是一种标准协议,允许 AI 助手与外部数据源和工具进行交互。通过 GreptimeDB MCP Server,AI 助手可以探索你的表、借助语义层理解每张表代表什么、执行查询,并管理 pipeline 和仪表盘。
工具
该 server(v0.5.0)提供以下工具。
查询与检查
| 工具 | 说明 |
|---|---|
execute_sql | 执行 SQL 查询,支持格式(csv/json/markdown)和 limit 选项。 |
execute_tql | 执行 TQL(兼容 PromQL)查询进行时序分析。 |
query_range | 用 RANGE/ALIGN 语法执行时间窗口聚合查询。 |
describe_table | 检查表的 profile:schema、语义元数据、最新样本行、查询提示。 |
explain_query | 分析 SQL 或 TQL 查询的执行计划。 |
health_check | 检查数据库连接状态和 server 版本。 |
describe_table 会读取表语义,因此 AI 助手能直接得到表的 signal type、source 和 metric 元数据,无需根据列名推断。
Pipeline 管理
| 工具 | 说明 |
|---|---|
list_pipelines | 列出所有 pipeline,或获取某个 pipeline 的详情。 |
create_pipeline | 用 YAML 配置创建新的 pipeline。 |
dryrun_pipeline | 用样本数据测试 pipeline,不写入数据库。 |
delete_pipeline | 删除某个版本的 pipeline。 |
仪表盘管理
| 工具 | 说明 |
|---|---|
list_dashboards | 列出所有 Perses 仪表盘定义。 |
create_dashboard | 创建或更新 Perses 仪表盘定义。 |
delete_dashboard | 删除仪表盘定义。 |
server 还内置了一批 Jinja prompt 模板,覆盖常见任务(metrics 分析、trace 分析、pipeline 创建、schema 设计、查询性能 调优等)。
安装
pip install greptimedb-mcp-server
直接运行(默认连接 localhost:4002):
greptimedb-mcp-server --host localhost --database public
配置
server 通过环境变量或命令行参数配置。下表列出最常用的选项;HTTP server 模式还有额外参数。
| 环境变量 | 命令行参数 | 默认值 | 说明 |
|---|---|---|---|
GREPTIMEDB_HOST | --host | localhost | 数据库主机。 |
GREPTIMEDB_PORT | --port | 4002 | MySQL 协议端口。 |
GREPTIMEDB_USER | --user | root | 数据库用户。 |
GREPTIMEDB_PASSWORD | --password | — | 数据库密码。 |
GREPTIMEDB_DATABASE | --database | public | 数据库名称。 |
GREPTIMEDB_TIMEZONE | --timezone | UTC | 会话时区。 |
GREPTIMEDB_HTTP_PORT | --http-port | 4000 | HTTP API 端口(用于 pipeline/仪表盘工具)。 |
GREPTIMEDB_MASK_ENABLED | --mask-enabled | true | 脱敏敏感列。 |
GREPTIMEDB_AUDIT_ENABLED | --audit-enabled | true | 记录每次工具调用。 |
GREPTIMEDB_ALLOW_WRITE | --allow-write | false | 允许通过 execute_sql 执行写/DDL,见下文写模式。 |
GREPTIMEDB_TRANSPORT | --transport | stdio | 传输方式:stdio、sse 或 streamable-http。 |
Claude Desktop 集成
在 claude_desktop_config.json 中添加以下配置:
{
"mcpServers": {
"greptimedb": {
"command": "greptimedb-mcp-server",
"args": ["--host", "localhost", "--database", "public"],
"env": {
"GREPTIMEDB_PORT": "4002",
"GREPTIMEDB_USER": "your_username",
"GREPTIMEDB_PASSWORD": "your_password"
}
}
}
}