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数据库层

  1. 用户在Cursor/TRAE输入自然语言指令;
  2. AI客户端通过Stdio/SSE/Streamable HTTP将请求发给KES MCP Server;
  3. Server校验访问权限、拦截高危SQL,连接KES执行操作;
  4. 数据库原始数据回传给AI,模型自动分析给出优化方案;
  5. 全程AI无法直连数据库,所有操作受MCP权限管控。

在这里插入图片描述

3. 三大传输模式(按需选择)

传输方式 适用场景 特点
Stdio 本地个人开发 无需开放端口,客户端自动拉起服务,调试首选
SSE 小规模远程调试 轻量长连接,适合内网多机器共用
Streamable HTTP 企业生产/集中部署 支持HTTPS、反向代理、网络隔离,生产环境推荐

在这里插入图片描述

4. 双安全运行模式(核心安全能力)

  1. Restricted(受限模式,生产必用)
    内置SQL白名单,仅允许SELECT、查询元数据、查看执行计划等只读操作;拦截DELETE/ALTER/DROP等DDL/DML修改语句;搭配AI专用最小权限账号,彻底规避AI误删、改数据风险。
  2. Unrestricted(无限制模式,仅测试环境)
    放开全部数据库操作权限,支持建表、改索引、数据写入,仅本地测试使用,严禁线上开启。

二、前置环境准备

硬件&软件要求

  1. 数据库:KES V8R6及以上版本
  2. Python:3.12 ~ 3.13
  3. 包管理工具:uv(推荐,项目官方指定)
  4. AI编辑器:Cursor / TRAE(支持MCP协议)
  5. 可选扩展(增强功能)
    • sys_stat_statements:慢查询、SQL负载统计
    • sys_hypo:仿真索引(无需真实创建,模拟索引优化效果)

环境初始化

  1. 安装uv包管理器
# Windows/macOS/Linux通用
pip install uv
  1. 提前创建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)

  1. 找到MCP配置文件
    • Windows:%USERPROFILE%\.cursor\mcp.json
    • macOS:~/.cursor/mcp.json
  2. 写入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": "数据库密码"
      }
    }
  }
}
  1. 保存文件,完全关闭Cursor后重新打开,编辑器自动拉起KES MCP服务并加载全部数据库工具。

方案2:TRAE编辑器配置

  1. 在项目根目录创建 .trae/mcp.json
  2. 配置内容:
{
  "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": "数据库密码"
      }
    }
  ]
}
  1. 重启TRAE,MCP面板识别KES数据库工具。

五、KES MCP四大核心能力+实战案例

能力1:数据库结构一键探查

无需手动执行\d、查询系统表,自然语言直接获取表、字段、索引、约束。
常用指令示例

  1. 列出public下所有表、视图、序列;
  2. 查看orders表全部字段、主键、普通索引、外键约束;
  3. 查询当前库所有schema及自定义扩展。

能力2:SQL执行与执行计划分析

AI可直接生成业务SQL、执行查询、抓取真实执行计划定位慢SQL。
指令示例

  1. 查询本月订单销售额TOP5商品;
  2. 分析这条SELECT * FROM orders WHERE user_id=123 AND status='pending’的执行计划,说明扫描方式和索引使用情况。

能力3:数据库健康巡检+慢SQL定位

一站式运维体检,自动检测索引失效、长连接、Vacuum堆积、复制延迟、缓存命中率。
指令示例

  1. 对当前KES数据库做全量健康检查,输出风险点;
  2. 找出近一小时总耗时最高的5条慢查询。

能力4:索引仿真优化(核心亮点)

依托sys_hypo扩展,不创建真实物理索引,模拟新增联合索引后的执行计划,零成本评估索引收益。

完整实战流程:订单SQL优化全演示

场景:订单查询全表扫描,优化联合索引
  1. 第一步:查看表结构
    输入指令:查看orders表的字段、约束、现有全部索引
    MCP自动拉取元数据,AI判断当前无user_id+status联合索引,查询会全表扫描。

  2. 第二步:分析原始SQL执行计划
    输入指令:分析SQL:SELECT * FROM orders WHERE user_id = 123 AND status = 'pending' 的执行计划
    返回计划显示Seq Scan全表扫描,查询代价极高。

  3. 第三步:仿真新增联合索引验证效果
    输入指令:模拟在orders表user_id、status字段创建联合索引,对比新执行计划
    MCP通过虚拟索引重新生成执行计划,可见切换为Index Scan,查询代价大幅下降。

  4. 第四步:落地变更
    仿真确认优化有效后,由DBA手动执行CREATE INDEX语句,避免盲目建索引浪费存储、增加写入压力。

六、安全最佳实践(生产环境必看)

  1. 强制Restricted受限模式,线上禁止Unrestricted;
  2. 单独创建AI专用数据库账号,仅分配SELECT只读权限,不授予DDL/DML修改权限;
  3. 远程部署使用Streamable HTTP+HTTPS+反向代理,关闭公网直接访问数据库端口;
  4. 定期清理慢查询日志,限制MCP单次查询返回数据行数,防止大表全量导出;
  5. 内网环境使用Stdio/SSE,禁止MCP服务暴露公网;
  6. 敏感业务库单独部署MCP实例,与测试环境隔离。

七、常见问题排查

  1. 编辑器识别不到MCP工具
    • 检查uv路径、项目目录填写绝对路径;
    • 确认Python版本3.12~3.13,依赖安装完整;
    • 完全重启Cursor/TRAE,不要仅刷新窗口。
  2. 数据库连接失败
    • 核对DB_HOST、端口、库名、账号密码;
    • 检查KES防火墙放行端口,账号本地/远程登录权限;
    • 确认KES版本≥V8R6。
  3. 仿真索引功能无法使用
    • 登录KES执行CREATE EXTENSION IF NOT EXISTS sys_hypo;安装扩展;
  4. 慢查询统计无数据
    • 开启sys_stat_statements扩展,修改数据库postgresql.conf配置启用统计采集。

八、总结

KES MCP Server打通AI开发工具与国产金仓数据库,彻底解决开发人员多工具来回切换、SQL优化繁琐的痛点,一套标准工具覆盖开发、DBA运维场景。配合严格的访问权限管控,在保障数据安全的前提下,大幅提升SQL调优、数据库巡检效率,是适配国产数据库的AI原生解决方案。

体验拓展:参与电科金仓KES MCP Server主题征文活动,分享落地实践可参与奖品评选。项目完整参数、高级配置可查阅Gitee仓库README文档。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐