承渊政道个人主页❄️个人专栏:《C语言基础语法知识》 《数据结构与算法》 《C知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》 《Python知识内容》✨逆境不吐心中苦,顺境不忘来时路!✨ 博主简介:在数据库开发与运维过程中,我们经常遇到这样的对话:帮我看看orders表有哪些字段和索引.分析一下这条 SQL 为什么慢.如果增加联合索引,执行计划会不会发生变化这些问题并不复杂,真正麻烦的是处理过程往往被拆散在多个工具中:先从开发环境切换到数据库客户端,查表结构、复制索引信息,再执行 SQL、获取执行计划,最后把结果粘贴回 AI 对话窗口.上下文在反复搬运中被打断,排查效率也随之下降.KES MCP Server 提供了一种更连贯的方式:开发者可以直接在 TRAE、Cursor 等支持 MCP 的 AI 开发工具中提出问题,让模型调用标准化数据库工具,在权限允许的范围内访问真实的 KingbaseES 环境,完成结构探索、SQL 查询、执行计划分析、健康检查、慢查询定位与索引评估.本文将从工作原理、系统架构、传输方式、权限控制、9 个标准工具、安装配置以及 SQL 优化实战几个方面,完整介绍 KES MCP Server 的使用思路.目录一、KES MCP Server解决了什么问题二、一次数据库问题是如何被处理的三、五层架构:从自然语言到数据库执行1. AI 客户端层2. 传输层3. 核心服务与安全层4. 智能分析能力层5. KingbaseES 数据库层四、Stdio、SSE 与 Streamable HTTP 怎么选五、访问模式决定AI能做什么Restricted 模式Unrestricted 模式六、9个标准工具覆盖四类任务示例一探索数据库结构示例二执行自然语言查询示例三检查数据库运行状态示例四在不创建真实索引时评估方案七、安装KES MCP Server1. 准备环境2. 获取项目代码3. 安装依赖4. 使用 Restricted 模式启动八、在 AI 开发工具中完成配置九、实战:在开发工具中完成一次SQL优化第一步查看表结构与现有索引第二步分析执行计划第三步评估联合索引十、从工具调用走向连续的数据库分析一、KES MCP Server解决了什么问题电科金仓已在 Gitee 发布 KES MCP Server 项目.它面向 KingbaseES 数据库,将常用数据库操作封装成 MCP 工具,使 AI 助手能够在开发工作流中获得结构化、可控制、可追踪的数据库访问能力.从项目说明可以看到,KES MCP Server 聚焦以下几类场景探索 Schema、表、视图、序列、扩展等数据库对象;查看字段定义、约束与索引详情;按访问模式执行 SQL;获取并分析 EXPLAIN/ANALYZE 执行计划;检查数据库健康状态;定位高耗时或高资源查询;根据单条 SQL 或历史负载评估索引方案.图 1KingbaseES MCP Server 项目说明与功能目录项目页面标明了 MCP 1.25、Python 3.12 和 KingbaseES V8R6 等基础信息.实际体验时,建议使用 KingbaseES V8R6 或更高版本,并准备 Python 3.123.13 环境.过去,模型只能依赖用户粘贴到对话框里的数据库信息进行分析.现在,KES MCP Server 把数据库元数据、查询结果和执行计划通过标准工具返回给 AI 开发工具,模型得以基于当前数据库环境继续推理,而不是根据不完整的文本片段猜测.二、一次数据库问题是如何被处理的KES MCP Server 位于 AI 开发工具与 KingbaseES 数据库之间.用户并不会绕过 Server 让模型直接连接数据库,完整链路可以拆分为六步用户提问开发者使用自然语言描述数据库问题.理解意图TRAE、Cursor 等 AI 应用判断任务目标.调用工具应用内部的 MCP Client 选择 Server 暴露的合适工具.访问数据库KES MCP Server 检查参数、访问模式和数据库权限后执行操作.返回并分析KingbaseES 返回元数据、SQL 结果、执行计划或运行状态,模型对结果进行整理和解释.回答用户开发工具把结论、风险点和建议呈现给开发者.图 2用户、AI 应用、KES MCP Server 与 KingbaseES 之间的交互流程图中的红色箭头表示请求路径,绿色箭头表示结果返回.MCP Client 会自动发现 Server 注册的 9 个工具,但发现工具并不等于获得无限权限.Server 的访问模式和数据库账号权限仍然决定了每项操作是否可以执行.这种设计带来的直接价值是模型能够获得真实、及时的数据库上下文而开发者不必在多个窗口之间反复复制信息.三、五层架构:从自然语言到数据库执行为了把客户端接入、数据传输、权限控制和分析能力分离,KES MCP Server 采用分层结构.自上而下可以理解为五层.图 3KES MCP Server 五层架构1. AI 客户端层这一层面向 TRAE、Cursor 等支持 MCP 的 AI 开发工具,提供统一的人机交互入口.开发者只负责描述意图,不需要预先知道应该执行哪条系统查询.2. 传输层传输层负责在 MCP Client 与 Server 之间传递请求和响应.KES MCP Server 支持 Stdio、SSE、Streamable HTTP 三种方式,可覆盖本地开发和远程部署场景.3. 核心服务与安全层这一层承担工具注册、参数合法性校验、访问模式管理与安全策略执行.它既要判断请求是否符合工具定义,也要阻止超出当前模式和数据库账号权限的操作.4. 智能分析能力层这里集中提供数据库健康诊断、慢查询定位、执行计划分析和索引优化等能力.工具返回的不只是原始信息,还为模型继续解释和提出建议提供结构化依据.5. KingbaseES 数据库层最底层依托 KingbaseES 系统视图、SQL 执行组件及相关扩展,负责提供真实的数据库对象、执行结果和运行状态.分层的意义在于明确职责边界:客户端负责交互,传输层负责通信,Server 负责安全与工具编排,分析能力层负责诊断,数据库则继续作为最终的数据与权限边界.四、Stdio、SSE 与 Streamable HTTP 怎么选KES MCP Server 提供三种传输方式,用来适应不同的开发和部署环境.图 4Stdio、SSE 与 Streamable HTTP 的特点和适用场景方式工作特点适用场景建议Stdio通过本地子进程的stdin/stdout通信无需开放端口单机开发、本地调试配置简单本地开发优先选择SSE基于 Server-Sent Events 和 HTTP 长连接推送数据需要远程访问的已有部署可用于兼容早期远程方案Streamable HTTP基于标准化 HTTP 流式传输团队共享、跨环境和集中部署便于结合 HTTPS、反向代理与网络隔离如果只是个人在本地 AI 开发工具中调用数据库Stdio 通常已经足够。它不需要额外开放网络端口MCP 客户端还可以自动启动 Server。如果 Server 需要由多个客户端共享,或客户端和数据库不在同一环境中,Streamable HTTP 更符合集中部署需求.部署时还应配合 HTTPS、访问控制、反向代理和网络隔离策略,而不是把数据库能力直接暴露到不受信任的网络.五、访问模式决定AI能做什么数据库属于核心基础设施.给 AI 增加工具调用能力时,首先要考虑的不是能不能执行,而是应该允许执行到什么程度.KES MCP Server 提供 Restricted 与 Unrestricted 两种访问模式.Restricted 模式Restricted 模式通过内置 SQL 类型白名单和访问控制策略,限制高风险数据库操作.它适合生产环境、演示环境以及以查询、诊断和分析为主的场景.需要注意的是,Restricted 并不替代数据库自身的权限系统.正确做法是同时采用Server 侧启用 Restricted 模式;数据库侧使用 AI 专用账号;账号遵循最小权限原则;网络侧限制可访问范围;对生产变更保留人工确认和审核.Unrestricted 模式Unrestricted 模式开放更完整的数据库操作能力,可用于受控测试环境中的开发和管理任务.由于误操作影响更大,不建议把它与高权限生产账号直接组合使用.访问模式可以根据不同环境切换,但无论选择哪一种模式,最终权限仍会受到连接数据库账号的约束.六、9个标准工具覆盖四类任务KES MCP Server 对外提供 9 个标准工具.它们可以分为结构探索、查询与计划、运维诊断和索引优化四组.图 59 个标准工具及其能力分类分类工具主要作用结构探索list_schemas列出全部 Schema并区分系统空间和用户空间结构探索list_objects查看指定 Schema 下的表、视图、序列或扩展结构探索get_object_details获取列定义、约束、索引等对象详情查询与计划execute_sql根据当前访问模式执行获准的 SQL查询与计划explain_query返回 EXPLAIN/ANALYZE 信息并支持假设索引分析运维诊断analyze_db_health从 7 个维度检查数据库健康状态运维诊断get_top_queries基于sys_stat_statements获取 Top N 慢查询或高资源查询索引优化analyze_workload_indexes根据历史查询负载推荐索引索引优化analyze_query_indexes分析指定 SQL 并给出索引建议单次最多 10 条这些工具不是彼此孤立的按钮.实际排障时,通常会把多个工具串成一条分析链路:先确认对象结构,再执行查询或获取执行计划,随后检查数据库状态,最后评估索引方案.示例一探索数据库结构开发者可以直接输入列出publicSchema 下所有的表。KES MCP Server 会读取当前数据库中的对象信息并返回列表.在示例环境中publicSchema 下包含inventory、mcp_test_users、orders、products、test_dci、test_oci、test_proc_1和users等 8 张表.图 6使用结构探索工具查看 Schema 下的数据库对象如果需要继续深入,还可以追问查看orders表的字段、约束和索引等对象详情.返回结果直接来自当前连接的 KingbaseES 数据库,不需要提前把建表语句复制到对话窗口.示例二执行自然语言查询除了结构信息,开发者还可以描述业务问题查询本月销售额排名前 5 的商品.模型可以根据数据库结构生成查询,并通过execute_sql在访问模式允许的范围内执行.示例结果会直接整理成包含排名、商品名称、销售额和销量的表格.图 7自然语言查询结果示例拿到结果后,还可以继续要求模型分析 SQL 的实际执行计划.KES MCP Server 返回扫描方式、过滤条件、索引使用情况等信息,帮助定位性能瓶颈,而不是只展示最终数据.示例三检查数据库运行状态数据库运维人员可以输入检查一下数据库健康状况.analyze_db_health会检查索引、连接、Vacuum、序列、复制、缓存和约束等状态.需要发现高耗时 SQL 时,还可以输入找出最近总耗时最高的 5 条 SQL.get_top_queries会基于sys_stat_statements返回相应查询,随后可以继续分析执行计划和索引使用情况.示例四在不创建真实索引时评估方案配合sys_hypo扩展,可以在不创建真实物理索引的情况下模拟新增索引后的执行计划.例如如果在user_id和status字段上增加联合索引执行计划会有什么变化这种方式适合先评估索引是否可能有效,再由开发人员或 DBA 结合查询频率、写入压力和存储成本决定是否实施实际变更.七、安装KES MCP Server1. 准备环境体验 KES MCP Server,需要准备KingbaseES V8R6 或更高版本;Python 3.123.13;TRAE、Cursor 等支持 MCP 的 AI 开发工具;uv环境及可连接的 KingbaseES 数据库账号.项目页面展示的 MCP 版本要求为 1.25,部署前可结合项目 README 核对当前版本的完整前置条件.2. 获取项目代码gitclone https://gitee.com/king-db/kingbase-mcpcdkingbase-mcp3. 安装依赖uv pipinstall.4. 使用 Restricted 模式启动生产或演示环境建议启用 Restricted 模式uv run kingbase-mcp --access-mode restricted使用本地 Stdio 方式时,一般由 MCP 客户端自动拉起服务,无需在另一个终端中提前常驻运行.如需假设索引分析,需要在数据库中准备sys_hypo扩展;慢查询和负载分析则依赖sys_stat_statements.完整参数与扩展要求应以项目 README 为准.八、在 AI 开发工具中完成配置下面是一份脱敏后的 Stdio 配置思路.不同客户端的配置入口和字段可能略有差异,但核心信息相同指定项目目录、启动命令、访问模式和数据库连接.{mcpServers:{kingbase-mcp:{command:uv,args:[--directory,/path/to/kingbase-mcp,run,kingbase-mcp,--access-mode,restricted],env:{DATABASE_URI:kingbase://user:passwordhost:port/database}}}}请把目录和连接参数替换为自己的环境配置,并通过安全方式保存凭证.不要把真实密码、Token 或生产连接串提交到代码仓库.图 8MCP Server 手动配置界面示例,图中连接信息仅用于演示保存配置后,客户端会启动或连接 KES MCP Server,并读取 Server 注册的工具.正常情况下,可以在 MCP 管理界面看到 9 个工具.图 9KES MCP Server 已启用并成功加载全部工具如果工具没有出现,可以依次检查uv命令是否可以在当前环境中执行;项目目录是否填写正确;Python 与 KingbaseES 版本是否满足要求;DATABASE_URI是否可连接;数据库账号是否拥有所需的最小权限;客户端是否已经重新加载 MCP 配置.九、实战:在开发工具中完成一次SQL优化假设开发人员正在排查下面这条订单查询SELECT*FROMordersWHEREuser_id123ANDstatuspending;第一步查看表结构与现有索引先向 AI 开发工具输入查看orders表的结构包括字段、约束和索引。KES MCP Server 会调用结构探索工具,返回orders表的当前定义和索引情况.这个步骤用于确认user_id与status字段是否存在;字段类型是否与查询条件匹配;是否已经有单列或联合索引;查询涉及的约束和数据结构是否符合预期.第二步分析执行计划接着输入分析这条 SQL 的执行计划.示例执行计划显示先在idx_orders_user_id索引上执行Bitmap Index Scan,根据user_id 123定位候选记录再执行Bitmap Heap Scan访问对应数据页;最后应用status pending过滤条件,返回满足两个条件的记录.图 10Bitmap Index Scan、Bitmap Heap Scan 与联合索引建议从图中可以看到,当前查询利用了user_id上的索引,但status没有进入索引条件,仍需要在回表后继续过滤.执行计划的意义不只是判断有没有使用索引,而是理解数据经过了哪些扫描、回表和过滤步骤.第三步评估联合索引基于现有计划,可以继续询问模拟增加user_id和status联合索引后的执行计划.候选索引形式可以表示为CREATEINDEXidx_orders_user_id_statusONpublic.ordersUSINGbtree(user_id,status);这里需要区分建议和执行.配合sys_hypo时,KES MCP Server 可以使用假设索引重新生成执行计划,比较索引调整前后的扫描路径,但不会因此真正创建物理索引,也不会立即增加存储和维护开销.如果模拟结果表明计划明显改善,开发人员或 DBA 仍应综合考虑这条 SQL 的执行频率;user_id与status的数据分布和选择性;表的写入与更新压力;新索引带来的存储和维护成本;是否存在可以复用的相近索引;生产变更的评审与回滚方案.只有经过这些判断,才应决定是否在实际环境中创建索引.AI 可以帮助缩短分析路径,但不应代替生产变更审核.十、从工具调用走向连续的数据库分析KES MCP Server 的意义,并不只是把 SQL 查询换成自然语言.它真正改变的是数据库分析的上下文流动方式.过去,开发者需要在 AI 工具、数据库客户端和执行计划窗口之间来回切换.现在,从查看orders表有哪些字段和索引,到解释这条SQL 为什么慢,再到模拟联合索引是否有效,可以在同一个开发环境中形成连续的分析链路.这套方式带来的价值主要体现在三个方面减少信息搬运结构、查询结果和计划信息直接来自当前数据库环境.提高分析连贯性模型可以在同一上下文中继续追问和组合工具.保留安全边界访问模式、参数校验和数据库账号权限共同限制操作范围.对于开发人员,KES MCP Server 减少了工具切换,让性能排查更贴近代码现场;对于 DBA,它提供了更标准的诊断入口,同时仍然可以通过最小权限、网络隔离和人工评审控制风险.当数据库能力被标准化地接入 AI 开发工具后,AI 不再只是根据粘贴的 SQL 给出泛化建议,而是能够基于真实环境完成结构探索、查询分析和方案评估.只要始终坚持受控访问与人工决策,MCP 就能成为 AI 开发工具与企业数据库之间一座实用、清晰且可靠的桥梁.项目地址https://gitee.com/king-db/kingbase-mcp真正的勇者不是流泪的人,而是含泪奔跑的人!敬请期待下一篇文章内容每日心灵鸡汤: 成长的两条路径:向外迁移,向内迭代!人生有两条成长路径:要么不断迁移自己,进入更大的环境,让更高密度的人、更复杂的问题和更大的竞争推动自己升级;要么留在有限的环境里,不断迭代自己,强化独处和自我驱动的能力,让自己不再依赖外部条件.前者是借助世界改变自己,后者是创造一个内在世界.真正强大的人,最终都是既能融入更大的世界,也能在无人关注时持续成长.