跳到主要内容
版本:26.x

SelectDB MCP 服务概述

SelectDB MCP 服务通过 Model Context Protocol (MCP) 将 AI Agent 连接到 SelectDB Cloud。把 MCP Connection URL 添加到支持的客户端后,你就可以用自然语言探索仓库元数据、运行只读 SQL、查询受治理的业务指标。

你可以从 Claude Code、Cursor、Visual Studio Code、Codex 等兼容 MCP 的客户端使用该服务,也可以通过 LiteLLM 等 MCP 网关进行路由。

查询路径

服务支持两条查询路径:

  • 有语义模型:语义查询。Agent 发现受治理的指标和维度,然后由服务生成 SQL。
  • 没有语义模型:SQL 查询。Agent 先发现数据库、表和列,再生成只读查询。

连接该服务不要求必须配置语义模型。新部署可能显示 no_models 状态,但依然可以提供元数据和只读 SQL 查询。

SelectDB MCP 服务查询路径

查询能力

接入后,你用自然语言提问,AI Agent 会自动调用匹配的 MCP 工具。

元数据发现

你想做什么直接说调用了哪个 Tool
看有哪些数据库"列出所有数据库"list_databases
看库下有哪些表"列出 sales 库中的表"list_tables
看表结构"显示 orders 表的字段"describe_table

没有语义模型:SQL 查询

如果没有 healthy workspace 包含匹配请求的指标的语义模型,Agent 会先发现可用的表和列,再生成只读 SQL 语句并调用 execute_query。在这条路径下,结果质量取决于 Agent 对请求的理解和 SQL 生成是否准确。

你想做什么直接说调用了哪个 Tool
查数据"显示 top 10 订单"execute_query
无匹配指标时的聚合分析"按状态统计订单数"execute_query

execute_query 仅允许只读 SQL:SELECTSHOWDESCRIBEEXPLAIN

有语义模型:语义查询

如果 healthy workspace 中的语义模型定义了匹配请求的指标,Agent 会优先走语义查询路径,而不是在生成的 SQL 里重新实现该指标。Agent 分三步完成指标查询:

  1. list_metrics 列出可用的指标及其描述。
  2. list_dimensions_for_metric 列出可以对所选指标进行分组或过滤的维度。
  3. query_metric 编译并执行语义查询。

语义模型管控指标的计算逻辑、维度、关系和过滤条件。因此结果的准确性和一致性取决于这些定义是否正确。定义错误或不完整时,即使查询成功,结果也可能不正确。

你想做什么直接说调用了哪个 Tool
看有哪些指标"列出所有指标"list_metrics
查营收趋势"显示过去 7 天的营收,按天分组"query_metric
看可用维度"total_amount 可以按哪些维度分析?"list_dimensions_for_metric
检查服务状态"检查服务健康状态"check_service_health

指标工具都需要 workspace 参数。内置的 example workspace 只有在仓库管理员部署示例后才可用。

AI Agent 查询工作流

Agent 在每次对话中按以下流程工作:

  1. 调用 get_query_guide 加载查询工作流。
  2. 调用 check_service_health 验证 SelectDB Cloud 连接并发现 workspace 状态。
  3. 如果请求涉及数据库、表或列,使用元数据工具。
  4. 如果 healthy workspace 中存在匹配的指标,调用 list_metricslist_dimensions_for_metricquery_metric
  5. 如果没有语义模型或匹配指标,调用 list_databaseslist_tablesdescribe_tableexecute_query

当存在匹配的语义指标时,Agent 使用 query_metric,而不是用裸 SQL 重新实现该指标。如果没有指标匹配,Agent 会先说明语义层未覆盖该请求,再使用只读 SQL。

安全与权限

  • 每个请求都使用 MCP 客户端提供的仓库 SQL 用户凭证。查询以该仓库 SQL 用户的权限运行。
  • execute_query 仅接受只读语句。
  • 普通仓库用户可以查询数据和查看已发布的语义模型。
  • 仓库 admin 用户通过 Semantic Web UI 管理工作区和语义模型。

下一步