MCP Database Server - 多数据库统一访问服务
简介
MCP Database Server 是一个功能强大的多数据库统一访问服务器,通过 Model Context Protocol 为 SQLite、SQL Server、PostgreSQL 和 MySQL 提供统一的自然语言接口。这个项目使用 TypeScript 开发,提供了完整的数据库操作能力,包括查询、修改、表管理、Schema 查看等功能。特别的是,它还提供了业务洞察备忘录功能,允许用户记录和追踪数据分析过程中的发现。该项目在 GitHub 上获得了 206 颗星,特别适合需要跨多种数据库进行数据分析和管理的场景。
核心特性
- 多数据库支持 - 统一接口支持 SQLite、SQL Server、PostgreSQL 和 MySQL 四种主流数据库
- 完整的 CRUD 操作 - 支持查询(SELECT)、插入、更新、删除等所有基本数据操作
- DDL 操作支持 - 创建表、修改表结构、删除表等 Schema 管理功能
- Schema 浏览 - 列出所有表,查看表结构和字段类型
- 数据导出 - 将查询结果导出为 CSV 或 JSON 格式,便于进一步分析
- 业务洞察记录 - 内置备忘录功能,记录数据分析过程中的重要发现
- AWS IAM 认证 - 支持 AWS RDS PostgreSQL 的 IAM 认证方式
- 安全删除确认 - 删除表操作需要显式确认,防止误操作
工具列表
数据查询工具
read_query
描述: 执行 SELECT 查询从数据库读取数据,支持复杂的 JOIN、WHERE 和聚合操作
参数:
query(string): SQL SELECT 查询语句 [必需]
write_query
描述: 执行数据修改操作,包括 INSERT、UPDATE 或 DELETE 语句
参数:
query(string): SQL 修改语句(INSERT/UPDATE/DELETE)[必需]
表管理工具
create_table
描述: 在数据库中创建新表,定义表结构和约束
参数:
query(string): CREATE TABLE SQL 语句 [必需]
alter_table
描述: 修改现有表的结构,添加、删除或修改列
参数:
query(string): ALTER TABLE SQL 语句 [必需]
drop_table
描述: 从数据库中永久删除表及其所有数据(需要确认)
参数:
table_name(string): 要删除的表名称 [必需]confirm(boolean): 安全确认标志,必须设置为 true 才能执行删除 [必需]
list_tables
描述: 获取数据库中所有表的列表
参数: 无需参数
describe_table
描述: 查看指定表的详细 Schema 信息,包括列名、数据类型、约束等
参数:
table_name(string): 要查看的表名称 [必需]
数据导出工具
export_query
描述: 将 SQL 查询结果导出为 CSV 或 JSON 格式的文件
参数:
query(string): SQL SELECT 查询语句 [必需]format(string): 导出格式,可选值:csv 或 json [必需]
业务洞察工具
append_insight
描述: 向业务洞察备忘录添加新的发现或笔记,用于记录数据分析过程
参数:
insight(string): 洞察文本内容,描述发现的业务信息 [必需]
list_insights
描述: 列出所有已记录的业务洞察,回顾分析历史
参数: 无需参数
配置方式
SQLite 配置
1 | { |
SQL Server 配置
1 | { |
PostgreSQL 配置
1 | { |
MySQL 配置
1 | { |
使用示例
1 | # SQLite 使用 |
自然语言查询示例
1 | # 浏览数据库结构 |
实际应用场景
跨数据库数据分析 - 统一接口查询多个不同类型的数据库,进行综合分析和对比
数据库迁移辅助 - 在不同数据库系统之间迁移数据,导出和导入数据
快速数据探索 - 使用自然语言快速探索陌生的数据库结构和数据内容
业务报表生成 - 通过自然语言生成复杂的 SQL 查询,提取业务报表数据
数据质量检查 - 快速查询和分析数据质量问题,如重复数据、空值等
开发调试辅助 - 在开发过程中快速查询和修改测试数据,提高开发效率
知识管理 - 使用洞察记录功能,积累数据分析经验和业务知识
技术实现
MCP Database Server 使用 TypeScript 实现,提供了统一的数据库访问抽象层:
- TypeScript 类型安全 - 完整的类型定义确保代码质量和开发体验
- 统一数据库接口 - 抽象层屏蔽不同数据库的差异,提供一致的 API
- 多驱动支持 - 集成了 better-sqlite3、mssql、pg 和 mysql2 等成熟的数据库驱动
- 安全参数化查询 - 支持参数化查询,防止 SQL 注入攻击
- 连接池管理 - 高效的数据库连接管理,提高并发性能
- AWS 集成 - 原生支持 AWS RDS 的 IAM 认证方式
- 错误处理 - 完善的错误处理和用户友好的错误消息
- 业务洞察持久化 - 将分析过程中的发现持久化存储,便于回顾
该服务器的设计理念是提供一个简单但功能完整的数据库访问接口,让用户通过自然语言即可完成大部分数据库操作。
获取方式
- GitHub: https://github.com/executeautomation/mcp-database-server
- 安装方式:
- 克隆仓库:
git clone https://github.com/executeautomation/mcp-database-server.git - 安装依赖:
npm install - 编译项目:
npm run build - 运行服务器:
node dist/src/index.js [options]
- 克隆仓库:
- 系统要求:
- Node.js 16+
- TypeScript 4.5+
- 相应的数据库实例和访问权限
相关资源
- 项目仓库: github.com/executeautomation/mcp-database-server
- 问题追踪: 在 GitHub Issues 中报告问题和请求新功能
- 数据库文档:
- 贡献指南: 欢迎社区贡献代码和功能改进