AI操作数据库:KES MCP Server 完整实操教程
一、什么是KES MCP Server
1. 核心定义
KES MCP Server是电科金仓基于MCP(Model Context Protocol)标准推出的数据库AI中间件,部署在AI开发工具(Cursor/TRAE)与金仓KES数据库之间,内置9套标准化数据库工具,让大模型直接操作真实KES数据库,无需手动切换数据库客户端、复制表结构/执行计划,一站式完成库表查看、SQL分析、慢查询排查、索引仿真优化全流程工作。
2. 分层架构与交互流程
整体分为5层:AI客户端层→传输层→核心服务安全层→分析能力层→KES数据库层
- 用户在Cursor/TRAE输入自然语言指令;
- AI客户端通过Stdio/SSE/Streamable HTTP将请求发给KES MCP Server;
- Server校验访问权限、拦截高危SQL,连接KES执行操作;
- 数据库原始数据回传给AI,模型自动分析给出优化方案;
- 全程AI无法直连数据库,所有操作受MCP权限管控。
3. 三大传输模式(按需选择)
| 传输方式 | 适用场景 | 特点 |
|---|---|---|
| Stdio | 本地个人开发 | 无需开放端口,客户端自动拉起服务,调试首选 |
| SSE | 小规模远程调试 | 轻量长连接,适合内网多机器共用 |
| Streamable HTTP | 企业生产/集中部署 | 支持HTTPS、反向代理、网络隔离,生产环境推荐 |
4. 双安全运行模式(核心安全能力)
- Restricted(受限模式,生产必用)
内置SQL白名单,仅允许SELECT、查询元数据、查看执行计划等只读操作;拦截DELETE/ALTER/DROP等DDL/DML修改语句;搭配AI专用最小权限账号,彻底规避AI误删、改数据风险。 - Unrestricted(无限制模式,仅测试环境)
放开全部数据库操作权限,支持建表、改索引、数据写入,仅本地测试使用,严禁线上开启。
二、前置环境准备
硬件&软件要求
- 数据库:KES V8R6及以上版本
- Python:3.12 ~ 3.13
- 包管理工具:uv(推荐,项目官方指定)
- AI编辑器:Cursor / TRAE(支持MCP协议)
- 可选扩展(增强功能)
- sys_stat_statements:慢查询、SQL负载统计
- sys_hypo:仿真索引(无需真实创建,模拟索引优化效果)
环境初始化
- 安装uv包管理器
# Windows/macOS/Linux通用pipinstalluv- 提前创建KES专用AI账号(最小权限)
-- 生产环境专用只读账号CREATEUSERai_mcpWITHPASSWORD'自定义强密码';GRANTSELECTONALLTABLESINSCHEMApublicTOai_mcp;GRANTUSAGEONSCHEMApublicTOai_mcp;-- 禁止赋予修改、删除权限REVOKECREATE,ALTER,DROPONSCHEMApublicFROMai_mcp;三、KES MCP Server 完整安装部署
步骤1:拉取官方开源代码(Gitee)
# 克隆项目仓库gitclone https://gitee.com/king-db/kingbase-mcp# 进入项目目录cdkingbase-mcp步骤2:安装项目全部依赖
uv pipinstall.步骤3:启动服务两种方式
方式1:本地Stdio模式(开发首选,Restricted安全模式)
生产环境强制受限模式,数据库连接通过环境变量注入
# Linux/macOSexportDB_HOST=127.0.0.1exportDB_PORT=54321exportDB_NAME=业务库名exportDB_USER=ai_mcpexportDB_PASSWORD=你的数据库密码# 启动受限模式服务uv run kingbase-mcp --access-mode restricted# Windows PowerShell$env:DB_HOST="127.0.0.1"$env:DB_PORT="54321"$env:DB_NAME="业务库名"$env:DB_USER="ai_mcp"$env:DB_PASSWORD="你的数据库密码"uv run kingbase-mcp--access-mode restricted方式2:远程HTTP部署(企业多团队共用)
# 指定Streamable HTTP传输,开放端口3000exportTRANSPORT=streamable_httpexportMCP_PORT=3000uv run kingbase-mcp --access-mode restricted四、AI编辑器MCP客户端配置
方案1:Cursor编辑器配置(Windows/macOS)
- 找到MCP配置文件
- Windows:
%USERPROFILE%\.cursor\mcp.json - macOS:
~/.cursor/mcp.json
- Windows:
- 写入Stdio本地配置(最常用)
{"mcpServers":{"kes-mcp":{"command":"uv","args":["--directory","/你的kingbase-mcp项目绝对路径","run","kingbase-mcp","--access-mode","restricted"],"env":{"DB_HOST":"127.0.0.1","DB_PORT":"54321","DB_NAME":"业务库","DB_USER":"ai_mcp","DB_PASSWORD":"数据库密码"}}}}- 保存文件,完全关闭Cursor后重新打开,编辑器自动拉起KES MCP服务并加载全部数据库工具。
方案2:TRAE编辑器配置
- 在项目根目录创建
.trae/mcp.json - 配置内容:
{"servers":[{"name":"kes-mcp","command":"uv","args":["--directory","/kingbase-mcp完整路径","run","kingbase-mcp","--access-mode","restricted"],"transport":"stdio","env":{"DB_HOST":"127.0.0.1","DB_PORT":"54321","DB_NAME":"业务库","DB_USER":"ai_mcp","DB_PASSWORD":"数据库密码"}}]}- 重启TRAE,MCP面板识别KES数据库工具。
五、KES MCP四大核心能力+实战案例
能力1:数据库结构一键探查
无需手动执行\d、查询系统表,自然语言直接获取表、字段、索引、约束。
常用指令示例
- 列出public下所有表、视图、序列;
- 查看orders表全部字段、主键、普通索引、外键约束;
- 查询当前库所有schema及自定义扩展。
能力2:SQL执行与执行计划分析
AI可直接生成业务SQL、执行查询、抓取真实执行计划定位慢SQL。
指令示例
- 查询本月订单销售额TOP5商品;
- 分析这条SELECT * FROM orders WHERE user_id=123 AND status='pending’的执行计划,说明扫描方式和索引使用情况。
能力3:数据库健康巡检+慢SQL定位
一站式运维体检,自动检测索引失效、长连接、Vacuum堆积、复制延迟、缓存命中率。
指令示例
- 对当前KES数据库做全量健康检查,输出风险点;
- 找出近一小时总耗时最高的5条慢查询。
能力4:索引仿真优化(核心亮点)
依托sys_hypo扩展,不创建真实物理索引,模拟新增联合索引后的执行计划,零成本评估索引收益。
完整实战流程:订单SQL优化全演示
场景:订单查询全表扫描,优化联合索引
第一步:查看表结构
输入指令:查看orders表的字段、约束、现有全部索引
MCP自动拉取元数据,AI判断当前无user_id+status联合索引,查询会全表扫描。第二步:分析原始SQL执行计划
输入指令:分析SQL:SELECT * FROM orders WHERE user_id = 123 AND status = 'pending' 的执行计划
返回计划显示Seq Scan全表扫描,查询代价极高。第三步:仿真新增联合索引验证效果
输入指令:模拟在orders表user_id、status字段创建联合索引,对比新执行计划
MCP通过虚拟索引重新生成执行计划,可见切换为Index Scan,查询代价大幅下降。第四步:落地变更
仿真确认优化有效后,由DBA手动执行CREATE INDEX语句,避免盲目建索引浪费存储、增加写入压力。
六、安全最佳实践(生产环境必看)
- 强制Restricted受限模式,线上禁止Unrestricted;
- 单独创建AI专用数据库账号,仅分配SELECT只读权限,不授予DDL/DML修改权限;
- 远程部署使用Streamable HTTP+HTTPS+反向代理,关闭公网直接访问数据库端口;
- 定期清理慢查询日志,限制MCP单次查询返回数据行数,防止大表全量导出;
- 内网环境使用Stdio/SSE,禁止MCP服务暴露公网;
- 敏感业务库单独部署MCP实例,与测试环境隔离。
七、常见问题排查
- 编辑器识别不到MCP工具
- 检查uv路径、项目目录填写绝对路径;
- 确认Python版本3.12~3.13,依赖安装完整;
- 完全重启Cursor/TRAE,不要仅刷新窗口。
- 数据库连接失败
- 核对DB_HOST、端口、库名、账号密码;
- 检查KES防火墙放行端口,账号本地/远程登录权限;
- 确认KES版本≥V8R6。
- 仿真索引功能无法使用
- 登录KES执行
CREATE EXTENSION IF NOT EXISTS sys_hypo;安装扩展;
- 登录KES执行
- 慢查询统计无数据
- 开启sys_stat_statements扩展,修改数据库postgresql.conf配置启用统计采集。
八、总结
KES MCP Server打通AI开发工具与国产金仓数据库,彻底解决开发人员多工具来回切换、SQL优化繁琐的痛点,一套标准工具覆盖开发、DBA运维场景。配合严格的访问权限管控,在保障数据安全的前提下,大幅提升SQL调优、数据库巡检效率,是适配国产数据库的AI原生解决方案。
体验拓展:参与电科金仓KES MCP Server主题征文活动,分享落地实践可参与奖品评选。项目完整参数、高级配置可查阅Gitee仓库README文档。