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.
4.4 KiB
4.4 KiB
新增需求:完善MCP数据库服务
项目目标
扩展现有的MCP数据库服务,实现一个功能完整的数据库操作框架,支持达梦数据库的全面CRUD操作、DDL管理以及元数据查询功能。
核心功能需求
1. 数据操作(DML)
- 完整的CRUD操作:
- 创建记录(INSERT)
- 读取记录(SELECT,支持条件查询)
- 更新记录(UPDATE)
- 删除记录(DELETE)
- 批量数据操作支持
- 事务管理:
- 开始事务
- 提交事务
- 回滚事务
- 查询功能:
- 条件查询(WHERE子句)
- 排序(ORDER BY)
- 分页支持(LIMIT/OFFSET)
- 聚合函数支持
2. 结构操作(DDL)
- 表管理:
- 创建表(CREATE TABLE)
- 修改表(ALTER TABLE)
- 删除表(DROP TABLE)
- 重命名表
- 字段管理:
- 添加字段(ADD COLUMN)
- 修改字段属性(MODIFY COLUMN)
- 删除字段(DROP COLUMN)
- 重命名字段
- 索引管理:
- 创建索引(CREATE INDEX)
- 删除索引(DROP INDEX)
- 查看索引信息
- 约束管理:
- 主键约束(PRIMARY KEY)
- 外键约束(FOREIGN KEY)
- 唯一约束(UNIQUE)
- 检查约束(CHECK)
- 默认值约束(DEFAULT)
3. 元数据查询
- 数据库信息:
- 获取所有数据库列表
- 查询数据库版本和配置
- 表信息:
- 获取所有表列表及基本信息(表名、注释、行数等)
- 查询表结构详情(字段名、类型、长度、精度、是否可为空、默认值等)
- 获取表注释和字段注释
- 索引和约束信息:
- 查询索引信息(索引名、类型、字段等)
- 查看约束信息(主键、外键、唯一约束等)
- 对象定义:
- 查看存储过程定义
- 查看函数定义
- 查看视图定义
- 查看触发器定义
4. 高级功能
- SQL执行:
- 执行原生SQL语句
- 参数化查询支持
- SQL注入防护
- 数据管理:
- 数据库备份操作
- 数据库恢复操作
- 数据导入功能(从CSV/JSON等格式)
- 数据导出功能(导出为CSV/JSON等格式)
- 性能优化:
- 查询执行计划分析
- 性能监控指标
- 查询优化建议
- 连接管理:
- 连接池配置和管理
- 连接状态监控
- 连接超时和重试机制
5. MCP协议集成
- 工具定义:
- 标准化的工具接口定义
- 参数验证和类型检查
- 工具权限控制
- 错误处理:
- 统一的错误码体系
- 详细的错误信息返回
- 异常恢复机制
- 日志记录:
- 操作日志记录
- 性能日志记录
- 审计日志记录
- 传输协议:
- 支持stdio通信
- 支持SSE(Server-Sent Events)
- 支持HTTP REST API
- 资源管理:
- 资源发现和注册
- 资源版本管理
- 资源缓存机制
技术要求
-
技术栈:
- 基于现有MCP Go框架进行扩展
- 使用达梦数据库官方驱动
- 遵循MCP协议规范
-
代码质量:
- 保持向后兼容性
- 模块化设计,易于扩展
- 清晰的代码注释和文档
-
安全性:
- SQL注入防护
- 输入参数验证
- 权限控制和访问审计
-
性能要求:
- 连接池优化
- 查询缓存机制
- 内存使用优化
交付物
-
源代码:
- 完整的Go语言实现
- 配置文件和部署脚本
-
文档:
- API接口文档
- 配置说明文档
- 使用示例和教程
- 故障排除指南
-
测试:
- 单元测试覆盖核心功能
- 集成测试验证数据库操作
- 性能测试报告
-
部署材料:
- Docker容器镜像
- 系统服务配置文件
- 监控和告警配置
优先级
-
高优先级(第一阶段):
- 基本的CRUD操作
- 表结构和字段信息查询
- 简单的DDL操作
-
中优先级(第二阶段):
- 事务管理
- 索引和约束管理
- 高级查询功能
-
低优先级(第三阶段):
- 性能优化功能
- 数据导入导出
- 监控和告警
验收标准
- 所有核心功能均可通过MCP协议调用
- 支持达梦数据库8.0及以上版本
- 单表操作响应时间小于100ms
- 支持并发连接数不少于50
- 系统稳定性达到99.9%可用性
创建时间:2026年2月9日
需求提出者:张献维
项目位置:/home/Viviman/Music/code-go/mcp-go-db/