MCP Database Server - 通用数据库访问服务器

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
3
{
"query": "SELECT * FROM users WHERE created_at > '2025-10-01' ORDER BY id DESC LIMIT 10"
}

2. write_query

功能:执行 INSERT、UPDATE 或 DELETE 查询修改数据

参数

  • query (string, 必需) - 要执行的 SQL 修改语句

返回值:受影响的行数

示例

1
2
3
{
"query": "UPDATE users SET last_login = NOW() WHERE id = 123"
}

3. create_table

功能:在数据库中创建新表

参数

  • query (string, 必需) - CREATE TABLE 语句

返回值:创建结果状态

示例

1
2
3
{
"query": "CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}

4. alter_table

功能:修改现有表的结构

参数

  • query (string, 必需) - ALTER TABLE 语句

返回值:修改结果状态

示例

1
2
3
{
"query": "ALTER TABLE users ADD COLUMN email_verified BOOLEAN DEFAULT FALSE"
}

5. drop_table

功能:从数据库中删除表

参数

  • table_name (string, 必需) - 要删除的表名
  • confirm (boolean, 必需) - 安全确认标志(必须为 true)

返回值:删除结果状态

示例

1
2
3
4
{
"table_name": "temp_data",
"confirm": true
}

6. list_tables

功能:获取数据库中所有表的列表

参数:无

返回值:表名列表

示例

1
{}

7. describe_table

功能:查看表的架构信息(列、类型、约束等)

参数

  • table_name (string, 必需) - 要查看的表名

返回值:表的详细结构信息

示例

1
2
3
{
"table_name": "users"
}

8. export_query

功能:将查询结果导出为 CSV 或 JSON 格式

参数

  • query (string, 必需) - 要执行的 SQL SELECT 查询语句
  • format (string, 必需) - 导出格式:’csv’ 或 ‘json’

返回值:格式化的查询结果

示例

1
2
3
4
{
"query": "SELECT name, email, created_at FROM users",
"format": "csv"
}

9. append_insight

功能:添加业务洞察到备忘录

参数

  • insight (string, 必需) - 业务洞察内容

返回值:添加结果状态

示例

1
2
3
{
"insight": "发现用户活跃度在周末显著下降,建议加强周末营销活动"
}

10. list_insights

功能:列出所有保存的业务洞察

参数:无

返回值:业务洞察列表

示例

1
{}

配置方式

SQLite 配置

claude_desktop_config.json 中添加:

1
2
3
4
5
6
7
8
9
10
11
12
{
"mcpServers": {
"database-sqlite": {
"command": "npx",
"args": [
"-y",
"@executeautomation/database-server",
"/Users/yourname/data/mydatabase.db"
]
}
}
}

MySQL 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"mcpServers": {
"database-mysql": {
"command": "npx",
"args": [
"-y",
"@executeautomation/database-server",
"--mysql",
"--host", "localhost",
"--database", "mydb",
"--port", "3306",
"--user", "myuser",
"--password", "mypassword"
]
}
}
}

PostgreSQL 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"mcpServers": {
"database-postgresql": {
"command": "npx",
"args": [
"-y",
"@executeautomation/database-server",
"--postgresql",
"--host", "localhost",
"--database", "mydb",
"--user", "myuser",
"--password", "mypassword"
]
}
}
}

SQL Server 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"mcpServers": {
"database-sqlserver": {
"command": "npx",
"args": [
"-y",
"@executeautomation/database-server",
"--sqlserver",
"--server", "localhost",
"--database", "mydb",
"--user", "myuser",
"--password", "mypassword"
]
}
}
}

AWS IAM 认证(PostgreSQL)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"mcpServers": {
"database-postgresql-iam": {
"command": "npx",
"args": [
"-y",
"@executeautomation/database-server",
"--postgresql",
"--host", "mydb.region.rds.amazonaws.com",
"--database", "mydb",
"--user", "iam_user",
"--aws-iam"
]
}
}
}

本地运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# SQLite
npx -y @executeautomation/database-server /path/to/database.db

# MySQL
npx -y @executeautomation/database-server \
--mysql \
--host localhost \
--database mydb \
--user root \
--password password

# PostgreSQL
npx -y @executeautomation/database-server \
--postgresql \
--host localhost \
--database mydb \
--user postgres \
--password password

# SQL Server
npx -y @executeautomation/database-server \
--sqlserver \
--server localhost \
--database mydb \
--user sa \
--password YourPassword

使用场景

1. 数据探索与分析

通过自然语言查询数据库,快速获取业务洞察。

示例流程

  1. 用户询问:”过去7天新增用户数是多少?”
  2. AI 调用 read_query 执行相应 SQL
  3. 返回结果并使用 append_insight 记录发现
  4. 后续可通过 list_insights 查看历史分析

2. 数据报表生成

自动生成各类数据报表并导出。

示例流程

  1. 执行复杂的聚合查询
  2. 使用 export_query 导出为 CSV 格式
  3. 数据可直接用于 Excel 或其他分析工具

3. 数据库管理

通过 AI 助手执行日常数据库管理任务。

示例流程

  1. 使用 list_tables 查看所有表
  2. 使用 describe_table 查看表结构
  3. 使用 alter_table 调整表结构
  4. 使用 drop_table 清理不需要的表

4. 数据清洗与维护

批量更新和清理数据。

示例流程

  1. 识别需要清理的数据
  2. 使用 write_query 执行批量更新
  3. 验证修改结果
  4. 记录清洗操作到业务洞察

5. 多数据库集成

统一管理多个不同类型的数据库。

示例流程

  1. 配置多个数据库连接
  2. 使用统一的工具接口操作不同数据库
  3. 无需关心底层数据库差异

技术架构

支持的数据库版本

数据库 最低版本 推荐版本 特殊要求
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
3
4
5
6
7
8
9
10
11
12
13
14
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["-y", "@executeautomation/database-server", "--mysql"],
"env": {
"DB_HOST": "localhost",
"DB_NAME": "mydb",
"DB_USER": "readonly_user",
"DB_PASS": "secure_password"
}
}
}
}

建议

  • 使用只读用户进行查询
  • 生产环境使用加密连接
  • 定期轮换数据库密码

2. 查询优化

1
2
3
4
5
6
7
8
9
10
-- 好的查询:使用索引、限制返回行数
SELECT id, name, email
FROM users
WHERE created_at > '2025-10-01'
AND status = 'active'
ORDER BY created_at DESC
LIMIT 100;

-- 避免的查询:SELECT *、无条件查询
SELECT * FROM users;

3. 业务洞察管理

1
2
3
4
// 分析后记录洞察
{
"insight": "[2025-10-14] 用户留存率分析:\n- 7日留存:45%\n- 30日留存:28%\n- 建议:优化新手引导流程"
}

4. 多环境配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"mcpServers": {
"db-dev": {
"command": "npx",
"args": ["-y", "@executeautomation/database-server", "/data/dev.db"]
},
"db-staging": {
"command": "npx",
"args": [
"-y",
"@executeautomation/database-server",
"--postgresql",
"--host", "staging.db.local"
]
}
}
}

5. 导出策略

1
2
3
4
5
6
7
8
9
10
11
// 小数据量:直接导出
{
"query": "SELECT * FROM orders WHERE date = '2025-10-14'",
"format": "csv"
}

// 大数据量:分批导出
{
"query": "SELECT * FROM orders WHERE id BETWEEN 1000 AND 2000",
"format": "json"
}

常见问题

Q: 如何选择合适的数据库?

  • SQLite: 小型应用、本地开发、单用户
  • MySQL: Web 应用、中等规模、高并发读
  • PostgreSQL: 复杂查询、地理数据、JSON 支持
  • SQL Server: 企业应用、Windows 环境、BI 集成

Q: 支持事务吗?

目前每个查询都是独立事务。如需多步骤事务,可以:

1
2
3
4
5
-- 在单个 write_query 中执行
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

Q: 如何处理大结果集?

使用分页和限制:

1
2
3
4
5
6
-- 使用 LIMIT 和 OFFSET
SELECT * FROM users
ORDER BY id
LIMIT 100 OFFSET 0;

-- 或使用 export_query 导出到文件

Q: 连接池配置?

服务器自动管理连接池,默认配置:

  • MySQL: 10 个连接
  • PostgreSQL: 10 个连接
  • SQL Server: 10 个连接

Q: 性能如何?

  • 查询速度: 取决于数据库和查询复杂度
  • 连接延迟: 本地 <10ms,远程取决于网络
  • 并发支持: 通过连接池支持多个并发查询

Q: 如何迁移现有查询?

直接复制粘贴 SQL 语句到工具参数中:

1
2
3
{
"query": "你现有的 SQL 语句"
}

评分详情

维度 评分 说明
功能性 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 功能
  • ❌ 需要图数据库

相关资源


更新时间: 2025-10-14
数据来源: GitHub, 质量评分: 4.2/5.0

© 2026 Generative AI Discovery All Rights Reserved.
Theme by hiero