AI操作数据库:KES MCP Server 完整实操教程
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通用
pip install uv
- 提前创建KES专用AI账号(最小权限)
-- 生产环境专用只读账号
CREATE USER ai_mcp WITH PASSWORD '自定义强密码';
GRANT SELECT ON ALL TABLES IN SCHEMA public TO ai_mcp;
GRANT USAGE ON SCHEMA public TO ai_mcp;
-- 禁止赋予修改、删除权限
REVOKE CREATE,ALTER,DROP ON SCHEMA public FROM ai_mcp;
三、KES MCP Server 完整安装部署
步骤1:拉取官方开源代码(Gitee)
# 克隆项目仓库
git clone https://gitee.com/king-db/kingbase-mcp
# 进入项目目录
cd kingbase-mcp
步骤2:安装项目全部依赖
uv pip install .
步骤3:启动服务两种方式
方式1:本地Stdio模式(开发首选,Restricted安全模式)
生产环境强制受限模式,数据库连接通过环境变量注入
# Linux/macOS
export DB_HOST=127.0.0.1
export DB_PORT=54321
export DB_NAME=业务库名
export DB_USER=ai_mcp
export DB_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传输,开放端口3000
export TRANSPORT=streamable_http
export MCP_PORT=3000
uv 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文档。
更多推荐




所有评论(0)