全面的 MCP(模型上下文协议)服务器,用于数据库管理和分析。支持多种数据库类型,包括 PostgreSQL、MySQL、SQLite、SQL Server、MongoDB 和 Redis。
MCP 数据库管理器与 AI 助手(如 Cursor、Claude 等)的数据库交互,是一个全面的 MCP 服务器,用于分析查询并执行数据库管理任务。
git clone https://github.com/code-alchemist01/database-manager-mcp-Server.git
cd database-manager-mcp-Server
npm install
npm run build
npm start
此 MCP 服务器可以与任何支持模型上下文协议(MCP)标准的客户端一起使用。以下是流行客户端的安装指南。
Windows:
%APPDATA%\Cursor\User\globalStorage\mcp.json
macOS/Linux:
~/.config/Cursor/User/globalStorage/mcp.json
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": [
"C:\\Users\\YourUsername\\path\\to\\database-manager-mcp-Server\\dist\\index.js"
]
}
}
}
注意:根据您的项目路径更新 args 中的路径。
保存配置文件后,完全关闭 Cursor 并重新打开它。
在 Cursor 的 设置 > 工具 & MCP 中应出现 "database-manager" 列表。
Windows:
%APPDATA%\Claude\claude_desktop_config.json
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": [
"/path/to/database-manager-mcp-Server/dist/index.js"
]
}
}
}
如果您正在使用任何 MCP 客户端,请根据客户端的 MCP 服务器配置格式使用以下信息:
node[/path/to/dist/index.js]stdio(标准输入/输出)通用 MCP 配置:
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {}
}
}
}
环境变量:
{
"mcpServers": {
"database-manager": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"NODE_ENV": "production"
}
}
}
}
您还可以直接在 Node.js 应用程序中使用 MCP 服务器:
import { DatabaseMCPServer } from './dist/server.js';
const server = new DatabaseMCPServer();
await server.run();
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
CMD ["node", "dist/index.js"]
您可以将 MCP 服务器作为一个独立进程运行:
# 开发模式
npm run dev
# 生产模式
npm run build
npm start
一旦安装了 MCP 服务器,您就可以在客户端的聊天界面中使用自然语言命令进行数据库操作。
数据库连接:
连接到 SQLite 数据库:sqlite://test.db
连接到 PostgreSQL 数据库:postgresql://user:password@localhost:5432/dbname
连接到 MySQL 数据库:mysql://user:password@localhost:3306/dbname
连接管理:
显示已连接的数据库列表
关闭 test_connection_id 连接
架构操作:
显示架构
详细显示 users 表的架构
以 ER 图形式可视化数据库架构
数据分析:
获取 users 表的统计数据
从 users 表中抽取 10 条样本
在 users 表中查找重复记录
对 users 表的数据质量进行分析
查询分析:
分析 SELECT * FROM users WHERE age > 25 查询
显示 SELECT * FROM orders JOIN users ON orders.user_id = users.id 查询的执行计划
优化 SELECT * FROM products WHERE name LIKE '%laptop%' 查询
安全性:
检测数据库中的安全漏洞
检查 users 表中是否存在敏感数据(PII)
您还可以程序化地使用 MCP 服务器:
import { connectionManager } from './dist/utils/connection-manager.js';
import { QueryAnalyzer } from './dist/analyzers/query-analyzer.js';
// 连接到数据库
const connectionId = await connectionManager.createConnection({
type: 'postgresql',
host: 'localhost',
port: 5432,
database: 'mydb',
username: 'user',
password: 'pass'
});
// 获取适配器
const adapter = connectionManager.getConnection(connectionId);
// 分析查询
const analyzer = new QueryAnalyzer(adapter);
const result = await analyzer.analyzeQuery('SELECT * FROM users');
通过运行 MCP 服务器并通过 stdio 与 MCP 协议通信:
node dist/index.js
此命令通过 stdio 传输启动服务器,并使其准备好与 MCP 客户端通信。
connect_database - 连接到数据库list_connections - 列出活动链接disconnect_database - 关闭连接test_connection - 测试连接analyze_query - 分析 SQL 查询explain_query 显示执行计划optimize_query - 调查优化建议detect_slow_queries 检测慢查询suggest_indexes 索引建议get_schema - 获取架构信息visualize_schema - 创建 ER 图(Mermaid)analyze_foreign_keys - 外键分析generate_migration 创建迁移脚本document_schema - 架构文档get_table_stats - 表统计analyze_data_quality - 数据质量分析find_duplicates 查找重复记录sample_data - 数据采样generate_report 创建自定义报告create_backup 创建备份list_backups 列出备份restore_backup 从备份恢复verify_backup 验证备份analyze_permissions - 权限分析detect_vulnerabilities - 安全漏洞检测find_sensitive_data - 敏感数据检测audit_logs - 审计日志分析| 数据库 | 状态 | 特性 |
|---|---|---|
| PostgreSQL | ✅ | 连接、查询、架构、事务 |
| MySQL | ✅ | 连接、查询、架构、事务 |
| SQLite | ✅ | 连接、查询、架构、事务 |
| SQL Server | ✅ | 连接、查询、架构、事务 |
| MongoDB | ✅ | 连接、查询、架构、集合 |
| Redis | ✅ | 连接、命令、键 |
database-manager-mcp-Server/
├── src/
│ ├── index.ts # MCP 服务器主入口点
│ ├── server.ts # MCP 服务器实现
│ ├── tools/ # MCP 工具
│ │ ├── connection.ts # 数据库连接管理
│ │ ├── query-analysis.ts # 查询分析
│ │ ├── schema-management.ts # 架构管理
│ │ ├── data-analysis.ts # 数据分析
│ │ ├── backup-restore.ts # 备份/恢复
│ │ └── security.ts # 安全性
│ ├── database/ # 数据库适配器
│ │ ├── base-adapter.ts # 基础适配器接口
│ │ ├── postgresql.ts # PostgreSQL 适配器
│ │ ├── mysql.ts # MySQL 适配器
│ │ ├── sqlite.ts # SQLite 适配器
│ │ ├── mssql.ts # SQL Server 适配器
│ │ ├── mongodb.ts # MongoDB 适配器
│ │ └── redis.ts # Redis 适配器
│ ├── analyzers/ # 分析引擎
│ │ ├── query-analyzer.ts # 查询分析
│ │ ├── schema-analyzer.ts # 架构分析
│ │ ├── data-analyzer.ts # 数据分析
│ │ └── security-analyzer.ts # 安全性分析
│ ├── utils/ # 辅助函数
│ │ ├── connection-manager.ts
│ │ ├── query-builder.ts
│ │ └── formatters.ts
│ └── types/ # TypeScript 类型定义
│ └── index.ts
├── dist/ # 编译后的 JavaScript 文件
├── package.json
├── tsconfig.json
└── README.md
npm run dev
npm run build
npm test
MCP 客户端聊天中:
连接到 SQLite 数据库:sqlite://mydb.db
显示架构
获取 users 表的统计数据
在 users 表中查找重复记录
预期结果:
MCP 客户端聊天中:
连接到 PostgreSQL 数据库:postgresql://user:pass@localhost:5432/dbname
分析 SELECT * FROM orders WHERE customer_id = 123 查询
为此查询提供索引建议
预期结果:
MCP 客户端聊天中:
查找两个架构之间的差异并创建迁移脚本
以 ER 图形式可视化架构
预期结果:
MCP 客户端聊天中:
对 products 表的数据质量进行分析
检查 products 表中是否存在敏感数据
预期结果:
MCP 客户端聊天中:
创建数据库备份
列出备份
验证备份
预期结果:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)MIT 许可证 - 详情见 LICENSE 文件。
此 MCP 服务器兼容以下客户端:
您可以提出问题或建议。
⭐ 如果您喜欢这个项目,请不要忘记给它点赞!