让AI直连KES数据库:KES MCP Server正式发布,SQL优化不再“左右横跳”

“帮我看看orders表有哪些字段和索引。”
“分析一下这条SQL为什么慢。”
“如果增加联合索引,执行计划会不会改变?”

现在,在TRAE、Cursor等支持MCP的开发工具中,直接输入这些问题,就能调用KES完成相应操作,不再需要反复切换工具、手动复制数据。


近日,电科金仓在Gitee正式发布了KES MCP Server
本次发布包含9个标准工具,覆盖数据库结构探索、SQL查询、执行计划分析、健康检查、慢查询定位和索引优化等日常高频场景,帮助开发者和DBA更高效地完成数据库相关工作。


过去,排查SQL问题往往要经历这样的流程:
在开发工具中写SQL → 切换到数据库客户端执行 → 查看表结构、索引、执行计划 → 复制结果 → 再交给大模型分析。
每一步都依赖手动操作,效率低且容易遗漏信息。

而现在,KES MCP Server将这些分散的操作统一接入开发工具,让AI模型能够基于真实的数据库环境进行查询和分析,大大缩短了问题定位路径。


KES MCP Server是什么?

KES MCP Server位于开发工具与KES数据库之间,充当AI与数据库之间的"安全桥梁"。

用户提出问题后,开发工具判断需要调用哪个工具;KES MCP Server接收请求,完成参数检查和访问控制,再连接KES执行操作;数据库返回结果后,由开发工具继续整理和分析。

KES MCP Server交互流程

关键点:
开发工具不会绕过KES MCP Server直接访问数据库。模型能调用哪些工具、执行哪些SQL、查看哪些对象,既受Server访问模式限制,也受数据库账号权限约束,确保数据安全可控。


分层架构与多种传输方式

KES MCP Server采用分层架构设计,自上而下由AI客户端层、传输层、核心服务与安全层、分析能力层及KES数据库层共5层组成,结构清晰,便于扩展和维护。

KES MCP Server分层架构

为适应不同部署环境,KES MCP Server支持三种传输方式:

  • Stdio:适合本地开发,无需开放端口,即配即用。
  • SSE:可用于远程访问。
  • Streamable HTTP:更适合配合HTTPS、反向代理和网络隔离进行集中部署,适合团队共享或多环境管理。

本地开发通常使用Stdio,团队协作或跨环境使用时,可以选择Streamable HTTP。

KES MCP Server传输方式


安全先行:两种访问模式,灵活可控

数据库是核心基础设施,AI接入必须首先考虑安全。
KES MCP Server提供了两种访问模式:

  • Restricted模式(推荐):通过内置SQL类型白名单与严格的访问控制策略,拦截并限制高风险操作,从源头阻断非法写入与修改行为。实际使用时,建议配置AI专用的数据库最小权限账户,进一步降低误操作风险。
  • Unrestricted模式:开放完整数据库操作权限,支持复杂的管理与开发类指令执行,适合测试环境或受控场景。

两种模式可根据使用场景自由切换,兼顾灵活性与安全性。


KES MCP Server能做什么?

KES MCP Server将KES常用的操作封装为标准工具,主要覆盖四类能力:

▶ 查看数据库结构

用户可以查看数据库中的Schema、表、视图和序列,也可以进一步查看表的字段、约束和索引。
例如:
“列出全部或指定Schema下的表、视图、序列或扩展。”
“查看orders表的字段、约束、索引等对象详情。”

返回的信息直接来自当前KES数据库,不需要提前把建表语句复制到对话窗口,省时省力。

▶ 执行查询与分析SQL

用户可以根据实际业务需求生成并执行查询,也可以查看SQL在KES中的实际执行计划。
例如:
“查询本月销售额排名前5的商品。”
“分析这条SQL的执行计划。”

KES返回查询结果和执行计划后,模型可以继续分析扫描方式、过滤条件和索引使用情况,帮助快速定位SQL性能问题。

▶ 检查数据库运行状态

通过一句指令即可发起健康检查:
“检查一下数据库健康状况。”

KES MCP Server会检查索引、连接、Vacuum、序列、复制、缓存和约束等状态。
还可以查看高耗时查询:
“找出最近总耗时最高的5条SQL。”

发现问题SQL后,可以继续分析执行计划和索引使用情况,形成闭环排查。

▶ 分析索引方案

针对指定SQL或历史查询负载,分析当前索引使用情况。
配合sys_hypo扩展,还可以在不创建真实索引的情况下,模拟新增索引后的执行计划。
例如:
“如果在user_id和status字段上增加联合索引,执行计划会有什么变化?”

这种方式可以在不占用存储空间、不影响写入性能的前提下,提前评估索引效果,帮助做出更理性的变更决策。


如何安装配置?

体验KES MCP Server,需要准备以下环境:

  • KES V8R6及以上版本
  • Python 3.12 至 3.13
  • TRAE、Cursor等支持MCP的开发工具

快速安装步骤:

  1. 获取项目代码

    git clone https://gitee.com/king-db/kingbase-mcp
  2. 安装依赖

    uv pip install .
  3. 在MCP客户端中配置数据库连接、启动命令和访问模式。
    生产或演示环境建议启用Restricted模式:

    uv run kingbase-mcp --access-mode restricted

使用本地Stdio方式时,一般由客户端自动启动服务,无需提前单独运行。

注意:索引分析需要sys_hypo扩展,慢查询和负载分析需要sys_stat_statements扩展。完整配置参数可参考项目README。

客户端配置及工具加载页面:


实战演示:在开发工具中完成一次SQL优化

假设开发人员正在排查下面这条订单查询:

SELECT*FROMordersWHEREuser_id=123ANDstatus='pending';

第一步:查看表结构
输入:
“查看orders表的结构,包括字段、约束和索引。”

KES MCP Server返回orders表当前的结构和索引情况,方便判断查询字段是否已有可用索引。

第二步:分析执行计划
输入:
“分析这条SQL的执行计划。”

如果查询使用了全表扫描,或者现有索引没有生效,就可以继续验证新的索引方案。

第三步:模拟索引效果
输入:
“模拟增加user_id和status联合索引后的执行计划。”

KES MCP Server通过假设索引重新生成执行计划,并对比增加索引前后的变化。整个过程不会真正创建物理索引,也不会带来额外的存储和维护成本。

如果模拟结果显示查询计划明显改善,再由开发人员或DBA结合查询频率、写入压力和存储成本,决定是否执行实际变更。

从查看表结构,到分析执行计划,再到验证索引效果——原本分散在多个工具中的操作,现在可以在同一个开发环境中一站式完成,显著提升问题排查效率。

立即体验KES MCP Server

欢迎参与【KES MCP Server主题征文活动】