
从"来回切换"到"一句话的事"
做过数据库开发的人,大概都经历过这样的场景:在IDE里写SQL,发现问题,切到数据库客户端查表结构,再切回来改语句,跑一遍觉得慢,又切出去看执行计划,截图、复制、粘贴,最后把一堆信息丢给大模型帮忙分析......一套流程下来,十几分钟就过去了。
现在,这一切正在被改变。
最近,电科金仓在Gitee上发布了KES MCP Server,一个让AI助手能够直接与KingbaseES数据库"对话"的中间层工具。换句话说,你在TRAE、Cursor这类支持MCP协议的开发工具里,可以直接用自然语言问AI:"orders表有哪些字段和索引?"------"分析一下这条SQL为什么慢?"------"如果加个联合索引,执行计划会变吗?"
AI会调用KES MCP Server去真实数据库里查、算、分析,然后把结果反馈给你。不用自己动手写查询语句,也不用在不同工具之间来回折腾。
KES MCP Server到底是什么?
从架构上看,KES MCP Server扮演的是一个"翻译官"和"守门员"的双重角色。
它位于开发工具(如TRAE、Cursor)和KES数据库之间。用户提出一个问题后,开发工具里的AI会判断需要调用哪个功能;KES MCP Server接收请求,完成参数校验和访问控制,再连接KES数据库执行具体操作;数据库返回结果后,由开发工具继续整理和呈现给用户。
整个过程中,开发工具不会绕过MCP Server直接访问数据库。模型能调用哪些工具、执行哪些SQL、查看哪些对象,既受Server访问模式的限制,也受数据库账号权限的约束。
这套机制的核心价值在于:把"人去看数据库"变成了"AI替人看数据库" ,把多工具、多步骤的碎片化操作,收敛到了同一个对话窗口中。
四大核心能力,覆盖数据库开发高频场景
KES MCP Server本次发布了9个标准工具,覆盖了数据库开发运维中最常见的四类场景。
1. 数据库结构探索------不再需要"背"表结构
想知道某个Schema下有哪些表?某个表有哪些字段、约束和索引?直接问就行。
list_schemas:列出所有Schema,自动区分系统空间和用户空间list_objects:列出指定Schema下的表、视图、序列等get_object_details:查看表的列定义、约束、索引等详细信息
返回的信息直接来自当前KES数据库,不需要提前把建表语句复制到对话窗口。
2. SQL查询与执行计划分析------定位性能瓶颈
写好的SQL跑得慢?让AI帮你分析。
execute_sql:执行SQL查询(受访问模式限制)explain_query:返回EXPLAIN/ANALYZE结果,还能模拟假设索引的效果
KES返回查询结果和执行计划后,模型可以继续分析扫描方式、过滤条件和索引使用情况,帮你一步步定位性能问题。
3. 数据库运维诊断------健康巡检一键完成
DBA的日常工作之一就是定期检查数据库健康状况。现在可以交给AI。
analyze_db_health:从索引、连接、Vacuum、序列、复制、缓存、约束等7个维度一键体检get_top_queries:基于统计信息输出Top N慢查询
发现问题SQL后,还可以继续让AI分析执行计划和索引使用情况,形成"发现---诊断---优化"的闭环。
4. 索引优化建议------先模拟,再动手
索引不是越多越好,加错了反而拖累写入性能。KES MCP Server支持在不创建真实索引的情况下,模拟新增索引后的执行计划变化。
analyze_workload_indexes:基于历史负载推荐索引analyze_query_indexes:针对特定SQL提供索引建议(最多10条)
配合sys_hypo扩展,可以问AI:"如果在user_id和status字段上增加联合索引,执行计划会有什么变化?"------先评估效果,再决定是否落地,避免盲目建索引带来的风险。
安全:给AI这匹"野马"套上缰绳
数据库是核心基础设施,而AI的自主性有时像一匹野马。让AI直连数据库,安全是第一道必答题。
KES MCP Server提供了两种访问模式:
- Restricted模式(受限模式) :通过内置的SQL类型白名单与严格的访问控制策略,拦截并限制高风险数据库操作,从源头阻断非法写入与修改行为。生产或演示环境建议使用此模式。
- Unrestricted模式(非受限模式) :开放完整数据库操作权限,支持复杂的管理与开发类指令,适合测试环境的灵活需求。
两种模式可以根据使用场景自由切换。实际操作中,还建议配置AI专用的数据库最小权限账户,进一步减少误操作风险。
安装与配置:三步上手
体验KES MCP Server,需要准备:
- KES V8R6及以上版本
- Python 3.12至3.13
- TRAE、Cursor等支持MCP协议的开发工具
第一步:获取代码
bash
git clone https://gitee.com/king-db/kingbase-mcp
第二步:安装依赖
bash
uv pip install .
第三步:配置并启动
bash
uv run kingbase-mcp --access-mode restricted
随后在MCP客户端中配置数据库连接信息即可。使用本地Stdio方式时,一般由客户端自动启动服务,无需提前单独运行。
假设索引分析功能需要sys_hypo扩展支持,慢查询和负载分析需要sys_stat_statements扩展。完整配置参数可参考项目README。
实战:一次完整的SQL优化流程
假设你正在排查这样一条订单查询:
sql
SELECT * FROM orders WHERE user_id = 123 AND status = 'pending';
传统做法是:打开数据库客户端查表结构→复制到文档→打开另一个窗口看执行计划→截图→打开AI工具提问→粘贴......
现在只需三步:
第一步,在开发工具里输入:
"查看orders表的结构,包括字段、约束和索引。"
KES MCP Server会返回orders表当前的结构和索引情况,帮你判断查询字段是否已有可用索引。
第二步,接着输入:
"分析这条SQL的执行计划。"
如果发现查询使用了全表扫描,或者现有索引没有生效,就可以进入第三步。
第三步,验证新的索引方案:
"模拟在user_id和status字段上增加联合索引后,重新分析执行计划。"
KES MCP Server通过假设索引重新生成执行计划,并对比增加索引前后的变化。整个过程不会真正创建物理索引,也不会带来额外的存储和维护成本。
如果模拟结果显示查询计划明显改善,再由开发人员或DBA结合查询频率、写入压力和存储成本,决定是否执行实际变更。
从查看表结构,到分析执行计划,再到验证索引效果------原本分散在多个工具中的操作,现在可以在同一个开发环境中一气呵成。
写在最后
AI正在改变软件开发的方方面面,数据库领域也不例外。KES MCP Server的出现,让AI助手第一次能够"看懂"真实数据库的结构、执行真实的查询、分析真实的执行计划,甚至模拟索引效果------而且这一切都发生在安全可控的框架之内。
对于数据库开发者和DBA来说,这意味着可以把更多精力放在"做什么"和"为什么"上,而不是"怎么查"和"怎么复制粘贴"上。
工具已经就位,剩下的就是动手试试了。