目录引言一、背景为什么需要 MCP Server1.1 传统开发流程的痛点1.2 MCP 协议是什么二、KES MCP Server 架构解析2.1 整体架构2.2 五层分层架构2.3 三种传输方式2.4 安全机制双模式访问控制Restricted 模式推荐用于生产环境Unrestricted 模式仅用于测试环境三、核心功能详解3.1 数据库结构探索3.2 SQL 查询与执行计划分析3.3 数据库健康检查3.4 索引优化分析四、安装与配置手把手教程4.1 环境要求4.2 获取项目代码4.3 安装依赖4.4 配置 MCP 客户端4.5 验证安装4.6 可选扩展安装五、实战演示在开发工具中完成一次完整的 SQL 优化场景设定Step 1查看表结构Step 2分析执行计划Step 3验证索引优化方案Step 4决策与实施六、常见使用场景速览场景一新人接手项目快速了解数据库场景二日常 SQL 调优场景三上线前数据库检查场景四代码 Review 中的 SQL 审查七、最佳实践建议八、总结引言想象一下这样的开发场景你正在 TRAE 或 Cursor 中编写业务代码突然需要确认某张表的字段结构或者排查一条慢 SQL。按照传统流程你需要切换到数据库客户端、找到对应表、查看建表语句、复制到对话窗口请 AI 分析——整个过程割裂而低效。现在一切都可以在开发工具内部完成。直接对 AI 助手说帮我看看 orders 表有哪些字段和索引。分析一下这条 SQL 为什么慢。如果增加联合索引执行计划会不会改变AI 会直接连接数据库并返回真实结果。近日电科金仓在 Gitee 正式开源了KES MCP Server将上述体验变为现实。本次发布包含9 个标准工具覆盖数据库结构探索、SQL 查询、执行计划分析、健康检查、慢查询定位和索引优化等常见场景。一、背景为什么需要 MCP Server1.1 传统开发流程的痛点过去开发人员在排查数据库问题时典型的工作流是这样的编写代码 → 发现问题 → 打开数据库客户端 → 查询表结构 → 复制建表语句 → 粘贴给 AI 分析 → 再回到数据库查看执行计划 → 手动对比结果 → 回到代码修改每一步都涉及工具切换和手动复制粘贴不仅效率低下还容易出错。当问题涉及多张表、多个索引时这种割裂感尤为明显。1.2 MCP 协议是什么MCPModel Context Protocol是由 Anthropic 提出的开放协议旨在为大语言模型提供标准化的外部工具调用接口。简单来说MCP 定义了一套规范让 AI 模型能够发现Discovery知道有哪些工具可用调用Invocation以标准格式发起工具调用请求响应Response接收结构化的返回结果MCP 采用客户端-服务端架构┌──────────────┐ MCP 协议 ┌──────────────┐ 数据库协议 ┌──────────┐ │ AI 开发工具 │ ←─────────────────→ │ MCP Server │ ←────────────────→ │ 数据库 │ │ (TRAE/Cursor) │ 工具发现/调用/响应 │ (KES MCP) │ 查询/分析/管理 │ (KES) │ └──────────────┘ └──────────────┘ └──────────┘通过 MCPAI 不再只能阅读你手动粘贴的文本而是可以直接操作真实的数据源——这就是 MCP Server 的核心价值。二、KES MCP Server 架构解析2.1 整体架构KES MCP Server 位于 AI 开发工具和 KES 数据库之间扮演安全中间人的角色。其工作流程如下用户提问开发者在 AI 工具中输入自然语言问题工具匹配AI 工具判断需要调用哪个 MCP 工具请求转发KES MCP Server 接收请求完成参数校验和访问控制执行操作通过数据库驱动连接 KES 并执行相应操作结果返回数据库结果经 MCP Server 格式化后返回给 AI 工具由大模型进一步整理和分析关键设计原则AI 工具不能绕过 MCP Server 直接访问数据库。模型能调用哪些工具、执行哪些 SQL、查看哪些对象同时受 Server 层面的访问模式限制和数据库账号权限的双重约束。2.2 五层分层架构KES MCP Server 采用清晰的分层设计从上到下依次为层级名称职责L1AI 客户端层TRAE、Cursor 等支持 MCP 的开发工具负责交互和结果呈现L2传输层支持 Stdio / SSE / Streamable HTTP 三种传输方式L3核心服务与安全层工具注册、参数校验、访问控制、SQL 白名单过滤L4分析能力层执行计划分析、假设索引、慢查询分析、健康检查等L5KES 数据库层实际执行 SQL 查询和管理操作的数据库引擎2.3 三种传输方式为适应不同部署场景KES MCP Server 支持三种传输方式传输方式适用场景特点Stdio本地开发标准输入输出通信无需开放端口最简洁安全SSE远程访问Server-Sent Events适合跨网络调用Streamable HTTP集中部署配合 HTTPS 和反向代理适合团队共享或生产环境推荐个人本地开发首选 Stdio团队共享或跨环境使用时选择 Streamable HTTP。2.4 安全机制双模式访问控制数据库是企业的核心资产AI 的介入必须建立在严格的安全基础之上。KES MCP Server 提供两种访问模式Restricted 模式推荐用于生产环境SQL 类型白名单仅允许 SELECT、EXPLAIN 等只读操作严格访问控制拦截并拒绝 INSERT、UPDATE、DELETE、DROP、TRUNCATE 等写操作最小权限原则建议配合专用的 AI 数据库账户仅授予必要的最小权限集合从源头阻断非法写入或修改行为在 MCP Server 层就被拦截不会到达数据库Unrestricted 模式仅用于测试环境完整数据库操作权限支持所有 SQL 类型适用场景开发调试、管理类指令执行风险提示务必在隔离的测试环境中使用并做好数据备份最佳实践生产环境务必使用 Restricted 模式 AI 专用最小权限账户双重保障数据安全。三、核心功能详解KES MCP Server 的 9 个标准工具覆盖四大类能力3.1 数据库结构探索让你在对话窗口直接查看数据库元数据无需手动查询information_schema。支持的操作列出所有或指定 Schema 下的表、视图、序列、扩展查看指定表的字段详情名称、类型、是否可空、默认值查看表的约束信息主键、外键、唯一约束、检查约束查看表的索引信息索引名、索引类型、包含列示例指令列出 public schema 下的所有表。 查看 orders 表的字段、约束、索引等对象详情。 显示 user 表上所有索引的详细信息。返回的信息直接来自当前 KES 数据库精准可靠无需提前把建表语句复制到对话窗口。3.2 SQL 查询与执行计划分析这是日常开发中使用最频繁的能力。支持的操作根据业务需求生成并执行只读查询Restricted 模式下查看 SQL 在 KES 中的实际执行计划EXPLAIN / EXPLAIN ANALYZE分析扫描方式Seq Scan / Index Scan / Bitmap Scan判断过滤条件和索引使用情况示例指令查询本月销售额排名前 5 的商品。 分析这条 SQL 的执行计划SELECT * FROM orders WHERE user_id 123 AND status pending; 这条查询为什么走了全表扫描有没有可用的索引3.3 数据库健康检查面向运维场景通过自然语言一键发起全面健康检查。检查项包括索引膨胀检测活跃连接数Vacuum 状态死元组比例序列溢出风险复制延迟缓存命中率约束完整性示例指令检查一下数据库健康状况。 找出最近总耗时最高的 5 条 SQL。 查看当前有哪些长时间未提交的事务。3.4 索引优化分析这是 KES MCP Server 最具特色的能力之一假设索引Hypothetical Index分析。配合sys_hypo扩展可以在不创建真实索引的情况下模拟新增索引后的执行计划变化。这意味着你可以提出索引方案猜想验证执行计划是否改善评估代价变化结合查询频率、写入压力和存储成本决定是否实施示例指令如果在 user_id 和 status 字段上增加联合索引执行计划会有什么变化 模拟在 orders 表的 created_at 字段上创建索引后的查询效果。 对比三个候选索引方案哪个对这条慢查询的优化效果最好整个过程不会实际创建物理索引零存储成本、零维护开销、零性能影响。四、安装与配置手把手教程4.1 环境要求组件要求KES 数据库V8R6 及以上版本Python3.12 ~ 3.13开发工具TRAE、Cursor 或其他支持 MCP 的客户端可选扩展sys_hypo索引分析、sys_stat_statements慢查询分析4.2 获取项目代码git clone https://gitee.com/king-db/kingbase-mcp cd kingbase-mcp4.3 安装依赖推荐使用uv快速的 Python 包管理器# 如果尚未安装 uv pip install uv # 安装项目依赖 uv pip install .也可以使用传统方式pip install -r requirements.txt4.4 配置 MCP 客户端以 Cursor 为例在 MCP 配置文件中添加如下配置.cursor/mcp.json或全局 MCP 配置{ mcpServers: { kes-mcp: { command: uv, args: [ run, kingbase-mcp, --access-mode, restricted ], env: { KES_HOST: localhost, KES_PORT: 54321, KES_USER: ai_readonly, KES_PASSWORD: your_password, KES_DATABASE: your_database } } } }关键配置参数说明参数说明备注--access-moderestricted或unrestricted生产环境务必使用restrictedKES_HOST数据库主机地址本地开发填localhostKES_PORT数据库端口KES 默认端口54321KES_USER数据库用户名建议使用专用只读账户KES_PASSWORD数据库密码也可通过环境变量或密钥管理工具注入KES_DATABASE目标数据库名指定要连接的数据库4.5 验证安装配置完成后在 Cursor 或 TRAE 的对话窗口中输入列出当前数据库中的所有 Schema。如果正确返回数据库结构信息说明配置成功。4.6 可选扩展安装索引分析和慢查询分析需要额外的数据库扩展-- 在 KES 中执行需要超级用户权限 CREATE EXTENSION sys_hypo; -- 假设索引分析 CREATE EXTENSION sys_stat_statements; -- 慢查询和负载分析五、实战演示在开发工具中完成一次完整的 SQL 优化下面以一个真实场景为例展示如何利用 KES MCP Server 在开发工具内完成从发现问题到验证方案的完整闭环。场景设定你正在开发一个电商系统的订单模块发现以下查询响应缓慢SELECT * FROM orders WHERE user_id 123 AND status pending;Step 1查看表结构在 AI 对话窗口中输入查看 orders 表的结构包括字段、约束和索引。KES MCP Server 返回类似以下信息表名: public.orders 字段: - id (bigint, NOT NULL, 主键) - user_id (integer, NOT NULL) - product_id (integer, NOT NULL) - amount (numeric(10,2)) - status (varchar(20)) - created_at (timestamp) - updated_at (timestamp) 约束: - orders_pkey: PRIMARY KEY (id) - orders_user_id_fkey: FOREIGN KEY (user_id) REFERENCES users(id) 索引: - orders_pkey: BTREE (id) - idx_orders_created_at: BTREE (created_at)Step 2分析执行计划分析这条 SQL 的执行计划SELECT * FROM orders WHERE user_id 123 AND status pending;返回的执行计划可能显示Seq Scan on orders (cost0.00..12500.00 rows50 width200) Filter: ((user_id 123) AND (status pending::text))这表明当前查询走的是全表扫描现有索引idx_orders_created_at无法覆盖user_id和status的组合查询条件。Step 3验证索引优化方案如果在 user_id 和 status 字段上创建联合索引执行计划会有什么变化KES MCP Server 通过sys_hypo生成假设索引返回优化后的执行计划Index Scan using hypothetical_idx_user_status on orders (cost0.29..8.50 rows50 width200) Index Cond: ((user_id 123) AND (status pending::text))对比结果指标优化前优化后扫描方式Seq Scan全表扫描Index Scan索引扫描启动代价0.000.29总代价12500.008.50代价改善-降低 99.93%Step 4决策与实施模拟结果显示优化效果显著接下来结合实际情况做出决策确认该查询的执行频率评估user_id status联合索引对写入性能的影响考虑存储成本确认方案可行后由 DBA 执行实际的索引创建CREATE INDEX idx_orders_user_status ON orders(user_id, status);六、常见使用场景速览场景一新人接手项目快速了解数据库列出 public schema 下所有表及其注释。 依次查看每张表的字段和索引。 找出哪些表之间有关联关系。场景二日常 SQL 调优找出最近 1 小时总耗时最高的 10 条 SQL。 逐条分析执行计划标注全表扫描的查询。 针对全表扫描的查询模拟添加索引后的效果。场景三上线前数据库检查检查数据库健康状况。 查看是否存在索引膨胀。 检查复制延迟是否在可接受范围。 确认序列没有溢出风险。场景四代码 Review 中的 SQL 审查分析以下 SQL 的执行计划是否存在性能隐患。 这个查询条件能否命中现有索引 如果不行建议一个索引方案并模拟验证。七、最佳实践建议始终使用 Restricted 模式连接生产数据库——AI 的创造力有时会超出预期多一层保护永远不过分。为 AI 创建专用的最小权限数据库账户——只授予 SELECT 权限和必要的扩展使用权限杜绝误操作风险。假设索引验证后再实施——先通过sys_hypo模拟确认优化效果后再创建真实索引避免无效索引的维护开销。敏感信息使用环境变量——不要在配置文件中硬编码数据库密码使用环境变量或密钥管理服务注入。定期审计 AI 的查询日志——了解 AI 生成了哪些查询及时发现异常访问模式。本地开发用 Stdio团队协作用 Streamable HTTP——合理选择传输方式平衡便捷性和安全性。八、总结KES MCP Server 将数据库探索、SQL 分析、健康检查和索引优化等操作无缝融入 AI 开发工具让开发者告别在多个工具之间来回切换的低效模式。从查看表结构到分析执行计划再到验证索引效果——原本需要跨工具、跨窗口完成的流程现在可以在同一个对话中一气呵成。立即体验访问 Gitee 仓库king-db/kingbase-mcp获取项目源码和详细文档。本文基于电科金仓官方发布内容改写、扩充补充了 MCP 协议背景、架构详解、完整安装配置教程和多场景实战示例。