MCP通用数据库客户端
🚀 通过MCP在任何数据库上执行SQL查询
](https://www.npmjs.com/package/@izumisy/mcp-universal-db-client) 
模型上下文协议(MCP)服务器,用于连接和查询多个数据库(PostgreSQL、MySQL、SQLite)。
特点/特性
- 🔌 支持多种数据库类型(PostgreSQL、MySQL、SQLite)
- 🔄 管理多个并发数据库连接
- 🔒 分离读取和写入操作以提高安全性
- 🛡️ SQL查询验证,以防止意外的破坏性操作
- 💾 连接池与数据库客户端管理
支持的数据库
- PostgreSQL(译为“波斯特格瑞斯数据库”或直接保留原名,因其是一个专有名词) (
psql) - MySQL (
mysql) - SQLite (
sqlite)
配置
将服务器添加到您的MCP设置配置文件中:
{
"mcpServers": {
"universal-db-client": {
"command": "npx",
"args": ["-y", "@izumisy/mcp-universal-db-client"]
}
}
}可用工具
数据库连接管理
connect_database
使用连接字符串连接到数据库。
参数:
name此连接的唯一名称(用作连接ID)dialect数据库类型(psql,mysql,或者sqlite)connectionString数据库连接字符串
示例:
{
"name": "my-postgres-db",
"dialect": "psql",
"connectionString": "postgresql://user:password@localhost:5432/mydb"
}list_connections
列出所有活动的数据库连接。
返回值: 包含活动连接及其ID、方言(或数据库类型)和连接时间的数组
disconnect_database
断开特定的数据库连接。
参数:
connectionID要断开的连接ID
disconnect_all
断开所有活动的数据库连接。
查询执行
query_read - 只读查询
安全地运行SELECT及其他只读SQL查询。
支持的操作:
SELECT- 查询数据SHOW- 显示数据库信息DESCRIBE/DESC- 描述表结构EXPLAIN- 解释查询执行计划
参数:
connectionID连接ID(连接名称)querySQL 查询字符串数组(仅限只读操作)
示例:
{
"connectionID": "my-postgres-db",
"query": [
"SELECT * FROM users WHERE id = 1",
"SELECT COUNT(*) FROM orders WHERE status = 'pending'"
]
}安全性: 这个工具用于验证查询并 拒绝破坏性操作,使其仅支持安全的只读访问。如果检测到具有破坏性的查询,它将返回一条错误消息,建议使用 query_write 相反。
query_write - 破坏性查询 ⚠️
执行INSERT、UPDATE、DELETE等数据修改查询。
支持的操作:
INSERT- 插入新数据UPDATE- 更新现有数据DELETE- 删除数据CREATE/ALTER/DROP- DDL(数据定义语言)操作TRUNCATE- 截断表(或:清空表)REPLACE/MERGE- 替换/合并数据
参数:
connectionID连接ID(连接名称)querySQL查询字符串数组(任意操作)
示例:
{
"connectionID": "my-postgres-db",
"query": [
"INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')",
"UPDATE orders SET status = 'completed' WHERE id = 123"
]
}安全: 谨慎使用此工具,因为它可以修改数据。应仅限授权用户使用。
许可证
麻省理工学院(MIT)
