前言

“帮我看看orders表有哪些字段和索引。”

“分析一下这条SQL为什么执行得这么慢。”

“如果增加联合索引,执行计划会发生什么变化?”

如今,在TRAE、Cursor等支持MCP协议的开发工具中,开发人员只需直接输入类似的问题,就可以调用KES完成数据库结构查询、SQL分析和索引优化等操作。

近日,电科金仓在Gitee正式发布KES MCP Server。此次发布包含9个标准工具,覆盖数据库结构探索、SQL查询、执行计划分析、数据库健康检查、慢查询定位和索引优化等常见场景。
在这里插入图片描述

过去,开发人员排查SQL问题时,通常需要在开发工具和数据库客户端之间反复切换。表结构、字段信息、索引情况和执行计划等内容,都需要逐项查询并复制出来,再交给大模型进行分析。

KES MCP Server将这些原本分散的数据库操作统一接入开发工具,使模型能够基于真实的数据库环境获取信息,并进一步完成分析和判断。

KES MCP Server是什么?

KES MCP Server位于开发工具与KES数据库之间,负责接收、校验并执行来自MCP客户端的数据库操作请求。
在这里插入图片描述

当用户在开发工具中提出问题后,整体流程如下:

用户提出问题,开发工具判断需要调用的MCP工具;KES MCP Server接收请求,完成参数校验、权限检查和访问控制;随后连接KES数据库执行相应操作;数据库返回结果后,再由开发工具中的模型进行整理、解释和分析。

在整个交互过程中,开发工具不会绕过KES MCP Server直接访问数据库。

模型能够调用哪些工具、执行哪些SQL、访问哪些数据库对象,一方面受到KES MCP Server访问模式的限制,另一方面也受到数据库账号自身权限的约束。

五层架构设计

在这里插入图片描述

KES MCP Server采用分层架构设计,从上到下主要包括五个层级:

AI客户端层、传输层、核心服务与安全层、分析能力层以及KES数据库层。

这种架构将客户端交互、通信传输、安全控制、数据库分析能力和底层数据库访问进行分离,便于在不同场景下进行部署和扩展。

支持三种传输方式

为了适应不同的开发和部署环境,KES MCP Server支持三种传输方式。
在这里插入图片描述

Stdio

Stdio适用于本地开发场景。

这种方式不需要单独开放网络端口,一般由TRAE、Cursor等MCP客户端自动启动KES MCP Server,配置相对简单。

SSE

SSE适合远程访问场景,可用于客户端与远程KES MCP Server之间建立通信。

Streamable HTTP

Streamable HTTP更适合集中式部署。

它可以配合HTTPS、反向代理、身份认证和网络隔离等机制使用,更适合团队共享、跨环境访问以及企业内部统一部署。

通常情况下,本地开发可以优先选择Stdio;团队共享或跨环境使用时,则可以选择Streamable HTTP。

为AI访问数据库加上安全“缰绳”

数据库是企业核心基础设施,而AI就像一匹能力强大但需要约束的野马。

在允许AI接触数据库之前,首先需要考虑的就是访问安全和操作边界。

针对不同的使用场景,KES MCP Server提供了Restricted和Unrestricted两种访问模式。

Restricted模式

Restricted模式采用更加严格的安全控制策略。

该模式通过内置SQL类型白名单和访问控制规则,对数据库操作进行限制,拦截高风险SQL,从源头降低非法写入、数据修改和误操作的风险。

在生产环境或正式演示环境中,建议启用Restricted模式,同时为AI单独配置一个遵循最小权限原则的数据库账号。

通过限制账号能够访问的Schema、表、视图和操作类型,可以进一步减少AI误操作数据库的风险。

Unrestricted模式

Unrestricted模式开放完整的数据库操作权限,能够执行更加复杂的开发、管理和测试类指令。

该模式更适合测试环境或受控的开发环境,不建议直接在生产数据库中使用。

用户可以根据实际业务场景,在Restricted和Unrestricted两种模式之间进行切换。

KES MCP Server能做什么?

KES MCP Server将KES数据库中的常用操作封装为标准MCP工具,主要可以分为四类能力。

一、查看数据库结构

在这里插入图片描述

开发人员可以通过自然语言查看数据库中的Schema、表、视图、序列和扩展等对象。

例如,可以直接输入:

列出数据库中的全部表、视图和序列。

查看指定Schema下有哪些表。

查看orders表的字段、约束和索引信息。

KES MCP Server返回的信息直接来自当前连接的KES数据库,开发人员不需要再提前导出建表语句,也不需要手动将字段和索引信息复制到对话窗口。

这对于接手陌生项目、理解历史数据库结构以及排查字段或索引问题都非常方便。

二、执行查询并分析SQL

在这里插入图片描述

用户可以根据实际业务需求生成并执行查询,也可以获取SQL在KES数据库中的真实执行计划。

例如:

查询本月销售额排名前5的商品。

分析下面这条SQL的执行计划。

KES数据库返回查询结果或执行计划后,模型可以继续分析SQL使用了哪种扫描方式、过滤条件是否合理、是否使用了索引,以及执行代价主要集中在哪些环节。

通过这种方式,可以帮助开发人员快速定位SQL性能问题。

三、检查数据库运行状态

在这里插入图片描述

对于数据库运维和日常巡检,也可以通过一句自然语言指令发起健康检查。

例如:

检查一下当前数据库的健康状况。

KES MCP Server可以对数据库中的索引、连接、Vacuum、序列、复制、缓存和约束等状态进行检查。

此外,还可以进一步查询高耗时SQL,例如:

找出最近总耗时最高的5条SQL。

在定位到高耗时查询后,开发人员可以继续分析对应SQL的执行计划、扫描方式和索引使用情况,从而形成完整的问题排查链路。

四、分析和验证索引方案

KES MCP Server还可以针对指定SQL或历史查询负载分析索引方案。

配合sys_hypo扩展,可以在不创建真实索引的情况下,模拟新增索引后的执行计划。

例如:

如果在user_id和status字段上增加联合索引,执行计划会有什么变化?

KES MCP Server可以创建假设索引并重新生成执行计划,将新增索引前后的扫描方式和执行代价进行对比。

这样可以先验证索引方案是否有效,再决定是否在数据库中真正创建索引。

这种方式既不会占用真实存储空间,也不会产生实际索引带来的写入维护成本。

如何安装和配置?

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

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

第一步:获取项目代码

执行以下命令:

git clone https://gitee.com/king-db/kingbase-mcp

第二步:安装项目依赖

进入项目目录后执行:

uv pip install .

第三步:配置MCP客户端

在MCP客户端中配置数据库连接参数、服务启动命令以及访问模式。

生产环境或演示环境建议启用Restricted模式:

uv run kingbase-mcp --access-mode restricted

使用本地Stdio传输方式时,KES MCP Server通常由MCP客户端自动启动,不需要用户提前单独运行服务。

需要注意的是,假设索引分析依赖sys_hypo扩展,慢查询和历史负载分析则需要sys_stat_statements扩展。

更加完整的数据库连接参数、客户端配置方式和工具说明,可以参考项目README文档。
在这里插入图片描述
在这里插入图片描述

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

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

SELECT *
FROM orders
WHERE user_id = 123
  AND status = 'pending';

整个优化过程可以直接在支持MCP的开发工具中完成。

第一步:查看表结构

首先输入:

查看orders表的结构,包括字段、约束和索引。

KES MCP Server会查询当前数据库,并返回orders表的字段定义、约束信息和现有索引情况。

通过这些信息,可以初步判断user_id和status字段上是否已经存在可用索引。

第二步:分析SQL执行计划

接着输入:

分析这条SQL的执行计划。

KES MCP Server会在KES数据库中获取该SQL的实际执行计划。

返回结果会展示SQL当前使用的扫描方式、过滤条件、预估行数以及执行代价等信息。

如果执行计划显示SQL采用全表扫描,或者已有索引没有生效,就可以继续验证新的索引方案。

第三步:模拟联合索引

继续输入:

模拟增加user_id和status联合索引后的执行计划。

KES MCP Server会通过假设索引机制,模拟创建user_id和status字段的联合索引,并重新生成SQL执行计划。

整个过程中不会真正创建物理索引,因此不会产生额外的存储占用,也不会影响现有数据库写入性能。

开发人员可以直接对比新增索引前后的扫描方式、执行路径和执行代价。

如果模拟结果显示查询计划得到明显改善,再由开发人员或DBA结合SQL调用频率、数据量、字段选择性、写入压力和索引维护成本,决定是否执行真实的索引变更。
在这里插入图片描述

将数据库排查流程带回开发环境

从查看表结构,到分析SQL执行计划,再到验证联合索引效果,过去这些操作往往分散在开发工具、数据库客户端和分析工具之间。

KES MCP Server通过MCP协议,将数据库结构探索、SQL查询、性能分析、健康检查和索引优化等能力统一接入开发环境。

开发人员不再需要频繁切换工具,也不必反复复制数据库信息。

模型可以在权限和安全策略约束下,直接基于真实KES数据库环境获取结果,并进一步完成分析。

对于日常开发、SQL性能优化、数据库巡检和问题定位来说,这意味着数据库操作流程可以更加集中,也更加高效。

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐