MCP Database Server - 多数据库统一访问服务

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
2
3
4
5
6
7
8
9
{
"mcpServers": {
"mcp-database": {
"command": "node",
"args": ["/path/to/mcp-database-server/dist/src/index.js", "/path/to/database.db"],
"env": {}
}
}
}

SQL Server 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"mcpServers": {
"mcp-database": {
"command": "node",
"args": [
"/path/to/dist/src/index.js",
"--sqlserver",
"--server", "<server-name>",
"--database", "<database-name>",
"--username", "<username>",
"--password", "<password>"
]
}
}
}

PostgreSQL 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"mcpServers": {
"mcp-database": {
"command": "node",
"args": [
"/path/to/dist/src/index.js",
"--postgresql",
"--host", "<host-name>",
"--database", "<database-name>",
"--username", "<username>",
"--password", "<password>"
]
}
}
}

MySQL 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"mcpServers": {
"mcp-database": {
"command": "node",
"args": [
"/path/to/dist/src/index.js",
"--mysql",
"--host", "<host-name>",
"--database", "<database-name>",
"--username", "<username>",
"--password", "<password>",
"--port", "3306"
]
}
}
}

使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# SQLite 使用
node dist/src/index.js /path/to/your/database.db

# SQL Server 使用
node dist/src/index.js --sqlserver --server <server-name> --database <database-name> --username <username> --password <password>

# PostgreSQL 使用
node dist/src/index.js --postgresql --host <host-name> --database <database-name> --username <username> --password <password> --port 5432

# MySQL 使用
node dist/src/index.js --mysql --host <host-name> --database <database-name> --username <username> --password <password> --port 3306

# AWS IAM 认证(PostgreSQL)
node dist/src/index.js --postgresql --host <host-name> --database <database-name> --username <username> --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
# 浏览数据库结构
"显示数据库中的所有表"
"users 表有哪些列?"

# 查询数据
"查询最近 7 天创建的所有用户"
"统计每个部门的员工数量"

# 修改数据
"将用户 ID 为 123 的邮箱更新为 [email protected]"
"删除所有未激活的账户"

# 表管理
"创建一个名为 orders 的表,包含 id、user_id 和 created_at 字段"
"在 products 表中添加 price 列"

# 导出数据
"将所有订单数据导出为 CSV 格式"
"导出上个月的销售数据为 JSON"

# 记录洞察
"记录洞察:发现周末的订单量比工作日高 30%"
"显示所有记录的业务洞察"

实际应用场景

  1. 跨数据库数据分析 - 统一接口查询多个不同类型的数据库,进行综合分析和对比

  2. 数据库迁移辅助 - 在不同数据库系统之间迁移数据,导出和导入数据

  3. 快速数据探索 - 使用自然语言快速探索陌生的数据库结构和数据内容

  4. 业务报表生成 - 通过自然语言生成复杂的 SQL 查询,提取业务报表数据

  5. 数据质量检查 - 快速查询和分析数据质量问题,如重复数据、空值等

  6. 开发调试辅助 - 在开发过程中快速查询和修改测试数据,提高开发效率

  7. 知识管理 - 使用洞察记录功能,积累数据分析经验和业务知识

技术实现

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+
    • 相应的数据库实例和访问权限

相关资源

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