You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.4 KiB
6.4 KiB
MCP 数据库服务 — 验收验证清单
依据《新增需求.md》的验收标准与优先级,对当前实现做可验证的检查。
一、验收标准对照
| 验收项 | 标准 | 验证方法 | 当前状态 |
|---|---|---|---|
| 1 | 所有核心功能均可通过 MCP 协议调用 | 见下方「核心功能清单」逐项调用 | ✅ 代码已实现(13 个工具均已注册并实现 handler) |
| 2 | 支持达梦数据库 8.0 及以上版本 | 使用 DM8 实例连接并执行 AllTable / FetchData | ⏳ 需联机:连接真实达梦 8.0+ 验证 |
| 3 | 单表操作响应时间 < 100ms | 对「获取表数据」等工具测 P95 延迟 | ⏳ 需联机:压测 |
| 4 | 支持并发连接数不少于 50 | 配置连接池 MaxOpenConns≥50 并压测 | ⏳ 需联机:在 main 或 DmService 中配置连接池后压测 |
| 5 | 系统稳定性 99.9% 可用性 | 长期运行 + 监控(运维侧) | ⏳ 运维侧 |
二、核心功能清单(可逐项验证)
2.1 数据操作(DML)— 第一阶段
| 功能 | MCP 工具名 | 验证步骤 | 通过 |
|---|---|---|---|
| 读取记录 | 获取表数据 | 调用「获取表数据」库名+表名+限制 | ✅ |
| 条件查询 | 执行SQL | 执行 SELECT * FROM schema.table WHERE id=1 |
✅ |
| 分页 | 获取表数据 / 执行SQL | 使用「限制」或 SQL ROWNUM 分页 | ✅ |
| 创建记录 | 插入记录 | 库名+表名+键值对(JSON),如 {"NAME":"张三","AGE":20} | ✅ |
| 更新记录 | 更新记录 | 库名+表名+SET子句+WHERE子句+值列表(JSON数组) | ✅ |
| 删除记录 | 删除记录 | 库名+表名+WHERE子句+值列表(JSON数组) | ✅ |
2.2 结构操作(DDL)— 第一阶段
| 功能 | MCP 工具名 | 验证步骤 | 通过 |
|---|---|---|---|
| 表列表 | 获取所有表 | 调用「获取所有表」+ 库名 | ✅ |
| 添加字段 | 添加字段 | 库名+表名+字段名+字段类型 | ✅ |
| 删除字段 | 删除字段 | 库名+表名+字段名 | ✅ |
| 表结构详情 | 表结构详情 | 库名+表名,返回字段名/类型/长度/可空/默认值/注释 | ✅ |
| 创建表 | 创建表 | 库名+表名+字段定义(如 ID INT, NAME VARCHAR(100)) | ✅ |
| 删除表 | 删除表 | 库名+表名 | ✅ |
2.3 元数据查询
| 功能 | MCP 工具名 | 验证步骤 | 通过 |
|---|---|---|---|
| 数据库配置 | 数据库配置信息 | 调用工具,返回 DSN/环境信息 | ✅ |
| 表注释/字段注释 | 添加注释 | 为某表某字段添加注释后,通过表结构或 SQL 查询验证 | ✅(工具含「注释描述」参数) |
2.4 其它已有能力
| 功能 | MCP 工具名 | 验证步骤 | 通过 |
|---|---|---|---|
| 执行 SQL(只读) | 执行SQL | SELECT 类 SQL,返回 CSV 或文本 | ✅ |
| 执行 SQL(DDL/DML 确认) | 执行SQL | INSERT/UPDATE/DELETE/ALTER,应返回“请确认”而非直接执行 | ✅ |
三、建议的验证步骤(可脚本化)
- 环境:达梦 8.0+,schema 与《新增需求》一致。
- 启动服务:
go run . --dsn "dm://user:pass@host:port/DAMENG?schema=YOUR_SCHEMA"。 - MCP 客户端:用 Cursor/Claude Desktop 等连接该 MCP 服务,或使用
mcp-go的测试客户端。 - 逐项调用:按上表「验证步骤」调用每个工具,记录结果与耗时。
- 性能:对「获取表数据」连续调用 20 次,记录 P95 延迟,要求 < 100ms。
- 并发:连接池设为 50,并发 50 个「获取表数据」请求,全部成功即满足“不少于 50 并发”。
四、已实现项(可按清单逐项验证)
- DML:已提供「插入记录」「更新记录」「删除记录」MCP 工具(参数化执行,防注入)。
- DDL:已提供「表结构详情」「创建表」「删除表」;表结构查询使用达梦系统视图
ALL_TAB_COLUMNS/ALL_COL_COMMENTS(若无注释视图则注释字段可能为空)。 - 添加注释:已为「添加注释」工具增加参数「注释描述」。
- 事务(第二阶段):尚未实现,可后续扩展。
跑通「三、建议的验证步骤」后,即可认为满足需求文档中的验收标准并可用于签字验收。
五、快速自检(无需达梦环境)
在项目根目录执行编译,确认无报错:
go build -o /dev/null ./...
直接验证结果(已执行):
- 编译:✅ 通过
- 核心功能清单:✅ 全部 13 个 MCP 工具已注册且存在对应 handler 与 DmService 方法
- 验收项 2~5:⏳ 需在具备达梦 8.0+ 与 MCP 客户端的环境下联机验证(连接、延迟、并发、稳定性)
六、验证报告(按验收验证.md 执行)
结论:功能已满足《验收验证.md》中所有可代码级验证的条目。
| 验证项 | 结果 | 说明 |
|---|---|---|
| 编译 | ✅ 通过 | go build ./... 无报错 |
| 验收项 1(核心功能通过 MCP 调用) | ✅ 满足 | 13 个工具:数据库配置信息、获取所有表、获取表数据、表结构详情、添加注释、添加字段、删除字段、插入记录、更新记录、删除记录、创建表、删除表、执行SQL;均已注册且各有 case 与 handler |
| 二、核心功能清单 2.1 DML | ✅ 满足 | 读取/条件查询/分页/插入/更新/删除 对应工具与 DmService 方法均存在 |
| 二、核心功能清单 2.2 DDL | ✅ 满足 | 表列表/添加删除字段/表结构详情/创建表/删除表 均存在 |
| 二、核心功能清单 2.3 元数据 | ✅ 满足 | 数据库配置、添加注释(含「注释描述」参数)已实现 |
| 二、核心功能清单 2.4 其它 | ✅ 满足 | 执行 SQL 只读与 DDL/DML 确认(返回「请确认」)逻辑已实现 |
| 验收项 2(达梦 8.0+) | ⏳ 需联机 | 需真实达梦实例 + MCP 客户端调用验证 |
| 验收项 3(<100ms) | ⏳ 需联机 | 需压测 |
| 验收项 4(并发≥50) | ⏳ 需联机 | 需配置连接池并压测 |
| 验收项 5(99.9% 可用性) | ⏳ 运维侧 | 长期运行与监控 |
是否功能已经满足:在不依赖达梦联机的前提下,清单中的功能均已实现并可通过编译与代码核对验证;联机与性能/稳定性(验收项 2~5)需在具备达梦 8.0+ 与 MCP 客户端的环境下按「三、建议的验证步骤」执行后,方可视为全部满足。