MCP Database Server - 通用数据库访问服务器
社区实现 | Stars: 206 | TypeScript | MIT
概述
MCP Database Server 是一个功能完善的 Model Context Protocol 实现,提供统一的多数据库访问接口。它支持 SQLite、MySQL、PostgreSQL 和 SQL Server 四种主流数据库,让 AI 助手能够通过自然语言直接查询和操作数据库。
该服务器提供了完整的 SQL 操作能力,包括数据查询、修改、表结构管理、数据导出等功能。特别适合需要与数据库交互的 AI 应用场景,如数据分析、报表生成、数据管理等。独特的”业务洞察”功能还能帮助记录和追踪分析过程中的发现。
核心特性
- ✅ 支持四种主流数据库(SQLite、MySQL、PostgreSQL、SQL Server)
- 🛠️ 10个强大的数据库工具(查询、修改、DDL、导出等)
- 🎯 统一的操作接口,无需切换不同工具
- 📊 数据导出功能(CSV/JSON格式)
- 💡 业务洞察管理,记录分析发现
- 🔒 安全删除确认机制
- 🔑 多种认证方式(标准认证、Windows认证、AWS IAM)
- 🚀 零配置 SQLite,开箱即用
工具列表
1. read_query
功能:执行 SELECT 查询语句读取数据
参数:
query(string, 必需) - 要执行的 SQL SELECT 查询语句
返回值:查询结果集(行和列)
示例:
1 | { |
2. write_query
功能:执行 INSERT、UPDATE 或 DELETE 查询修改数据
参数:
query(string, 必需) - 要执行的 SQL 修改语句
返回值:受影响的行数
示例:
1 | { |
3. create_table
功能:在数据库中创建新表
参数:
query(string, 必需) - CREATE TABLE 语句
返回值:创建结果状态
示例:
1 | { |
4. alter_table
功能:修改现有表的结构
参数:
query(string, 必需) - ALTER TABLE 语句
返回值:修改结果状态
示例:
1 | { |
5. drop_table
功能:从数据库中删除表
参数:
table_name(string, 必需) - 要删除的表名confirm(boolean, 必需) - 安全确认标志(必须为 true)
返回值:删除结果状态
示例:
1 | { |
6. list_tables
功能:获取数据库中所有表的列表
参数:无
返回值:表名列表
示例:
1 | {} |
7. describe_table
功能:查看表的架构信息(列、类型、约束等)
参数:
table_name(string, 必需) - 要查看的表名
返回值:表的详细结构信息
示例:
1 | { |
8. export_query
功能:将查询结果导出为 CSV 或 JSON 格式
参数:
query(string, 必需) - 要执行的 SQL SELECT 查询语句format(string, 必需) - 导出格式:’csv’ 或 ‘json’
返回值:格式化的查询结果
示例:
1 | { |
9. append_insight
功能:添加业务洞察到备忘录
参数:
insight(string, 必需) - 业务洞察内容
返回值:添加结果状态
示例:
1 | { |
10. list_insights
功能:列出所有保存的业务洞察
参数:无
返回值:业务洞察列表
示例:
1 | {} |
配置方式
SQLite 配置
在 claude_desktop_config.json 中添加:
1 | { |
MySQL 配置
1 | { |
PostgreSQL 配置
1 | { |
SQL Server 配置
1 | { |
AWS IAM 认证(PostgreSQL)
1 | { |
本地运行
1 | # SQLite |
使用场景
1. 数据探索与分析
通过自然语言查询数据库,快速获取业务洞察。
示例流程:
- 用户询问:”过去7天新增用户数是多少?”
- AI 调用
read_query执行相应 SQL - 返回结果并使用
append_insight记录发现 - 后续可通过
list_insights查看历史分析
2. 数据报表生成
自动生成各类数据报表并导出。
示例流程:
- 执行复杂的聚合查询
- 使用
export_query导出为 CSV 格式 - 数据可直接用于 Excel 或其他分析工具
3. 数据库管理
通过 AI 助手执行日常数据库管理任务。
示例流程:
- 使用
list_tables查看所有表 - 使用
describe_table查看表结构 - 使用
alter_table调整表结构 - 使用
drop_table清理不需要的表
4. 数据清洗与维护
批量更新和清理数据。
示例流程:
- 识别需要清理的数据
- 使用
write_query执行批量更新 - 验证修改结果
- 记录清洗操作到业务洞察
5. 多数据库集成
统一管理多个不同类型的数据库。
示例流程:
- 配置多个数据库连接
- 使用统一的工具接口操作不同数据库
- 无需关心底层数据库差异
技术架构
支持的数据库版本
| 数据库 | 最低版本 | 推荐版本 | 特殊要求 |
|---|---|---|---|
| SQLite | 3.x+ | 3.40+ | 无 |
| MySQL | 5.7+ | 8.0+ | 需要 mysql2 驱动 |
| PostgreSQL | 12+ | 15+ | 需要 pg 驱动 |
| SQL Server | 2016+ | 2022 | 需要 mssql 驱动 |
认证方式
- 标准认证:用户名/密码
- Windows 认证:SQL Server 集成认证
- AWS IAM 认证:PostgreSQL on RDS
安全特性
- 删除操作需要显式确认
- 参数化查询防止 SQL 注入
- 支持加密连接
- 密码通过配置文件管理
与其他数据库 MCP 服务器对比
| 特性 | MCP Database | MongoDB MCP | Redis MCP | Elasticsearch MCP |
|---|---|---|---|---|
| SQL 支持 | ✅ 完整 | ❌ 无 | ❌ 无 | ⚠️ 部分 |
| 多数据库 | ✅ 4种 | ❌ 单一 | ❌ 单一 | ❌ 单一 |
| DDL 操作 | ✅ 完整 | ⚠️ 有限 | ❌ 无 | ⚠️ 有限 |
| 数据导出 | ✅ CSV/JSON | ❌ 无 | ❌ 无 | ⚠️ JSON |
| 业务洞察 | ✅ 独有 | ❌ 无 | ❌ 无 | ❌ 无 |
| 适用场景 | 通用 SQL | 文档存储 | 缓存 | 全文搜索 |
最佳实践
1. 安全配置
1 | { |
建议:
- 使用只读用户进行查询
- 生产环境使用加密连接
- 定期轮换数据库密码
2. 查询优化
1 | -- 好的查询:使用索引、限制返回行数 |
3. 业务洞察管理
1 | // 分析后记录洞察 |
4. 多环境配置
1 | { |
5. 导出策略
1 | // 小数据量:直接导出 |
常见问题
Q: 如何选择合适的数据库?
- SQLite: 小型应用、本地开发、单用户
- MySQL: Web 应用、中等规模、高并发读
- PostgreSQL: 复杂查询、地理数据、JSON 支持
- SQL Server: 企业应用、Windows 环境、BI 集成
Q: 支持事务吗?
目前每个查询都是独立事务。如需多步骤事务,可以:
1 | -- 在单个 write_query 中执行 |
Q: 如何处理大结果集?
使用分页和限制:
1 | -- 使用 LIMIT 和 OFFSET |
Q: 连接池配置?
服务器自动管理连接池,默认配置:
- MySQL: 10 个连接
- PostgreSQL: 10 个连接
- SQL Server: 10 个连接
Q: 性能如何?
- 查询速度: 取决于数据库和查询复杂度
- 连接延迟: 本地 <10ms,远程取决于网络
- 并发支持: 通过连接池支持多个并发查询
Q: 如何迁移现有查询?
直接复制粘贴 SQL 语句到工具参数中:
1 | { |
评分详情
| 维度 | 评分 | 说明 |
|---|---|---|
| 功能性 | 4.0/5.0 | 工具完善,覆盖主要场景 |
| 文档质量 | 4.2/5.0 | 文档清晰,示例丰富 |
| 社区活跃度 | 4.0/5.0 | 社区规模中等,响应及时 |
| 维护状态 | 4.3/5.0 | 定期更新,问题修复快 |
| 代码质量 | 4.5/5.0 | TypeScript 实现,代码规范 |
| 综合评分 | 4.2/5.0 | 可靠的通用数据库访问方案 |
总结
MCP Database Server 是一个功能全面的数据库访问解决方案,通过统一的接口支持四种主流数据库。它将复杂的数据库操作简化为自然语言交互,特别适合数据分析、报表生成和数据库管理场景。
推荐指数: ⭐⭐⭐⭐ (4/5)
适合你的情况:
- ✅ 需要与关系型数据库交互
- ✅ 使用多种数据库类型
- ✅ 需要数据分析和报表功能
- ✅ 需要记录业务洞察
- ✅ 本地开发或企业内部应用
不适合的情况:
- ❌ 只需要 NoSQL 数据库
- ❌ 需要实时流式处理
- ❌ 需要复杂的 ORM 功能
- ❌ 需要图数据库
相关资源
- GitHub: https://github.com/executeautomation/mcp-database-server
- NPM: https://www.npmjs.com/package/@executeautomation/database-server
- MCP 协议: https://modelcontextprotocol.io/
- SQL 教程: https://www.w3schools.com/sql/
更新时间: 2025-10-14
数据来源: GitHub, 质量评分: 4.2/5.0