# 新增需求:完善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 - **资源管理**: - 资源发现和注册 - 资源版本管理 - 资源缓存机制 ## 技术要求 1. **技术栈**: - 基于现有MCP Go框架进行扩展 - 使用达梦数据库官方驱动 - 遵循MCP协议规范 2. **代码质量**: - 保持向后兼容性 - 模块化设计,易于扩展 - 清晰的代码注释和文档 3. **安全性**: - SQL注入防护 - 输入参数验证 - 权限控制和访问审计 4. **性能要求**: - 连接池优化 - 查询缓存机制 - 内存使用优化 ## 交付物 1. **源代码**: - 完整的Go语言实现 - 配置文件和部署脚本 2. **文档**: - API接口文档 - 配置说明文档 - 使用示例和教程 - 故障排除指南 3. **测试**: - 单元测试覆盖核心功能 - 集成测试验证数据库操作 - 性能测试报告 4. **部署材料**: - Docker容器镜像 - 系统服务配置文件 - 监控和告警配置 ## 优先级 1. **高优先级**(第一阶段): - 基本的CRUD操作 - 表结构和字段信息查询 - 简单的DDL操作 2. **中优先级**(第二阶段): - 事务管理 - 索引和约束管理 - 高级查询功能 3. **低优先级**(第三阶段): - 性能优化功能 - 数据导入导出 - 监控和告警 ## 验收标准 1. 所有核心功能均可通过MCP协议调用 2. 支持达梦数据库8.0及以上版本 3. 单表操作响应时间小于100ms 4. 支持并发连接数不少于50 5. 系统稳定性达到99.9%可用性 --- **创建时间**:2026年2月9日 **需求提出者**:张献维 **项目位置**:`/home/Viviman/Music/code-go/mcp-go-db/`