返回市场
数据库管理器MCP服务器

数据库管理器MCP服务器

作者:code-alchemist012 星标更新:2025-11-15

项目介绍

技术文档摘要

MCP 数据库管理器

TypeScript Node.js MCP Verified on MseeP

全面的 MCP(模型上下文协议)服务器,用于数据库管理和分析。支持多种数据库类型,包括 PostgreSQL、MySQL、SQLite、SQL Server、MongoDB 和 Redis。

🎯 优点是什么?

MCP 数据库管理器与 AI 助手(如 Cursor、Claude 等)的数据库交互,是一个全面的 MCP 服务器,用于分析查询并执行数据库管理任务。

基本功能

  • 🔌 多种数据库支持:PostgreSQL、MySQL、SQLite、SQL Server、MongoDB、Redis
  • 🔍 SQL 查询分析:性能分析、执行计划、索引建议
  • 📊 架构管理:ER 图、迁移生成、文档
  • 📈 数据分析:统计、质量控制、重复检测
  • 💾 备份与恢复:自动备份与恢复
  • 🔒 安全性:权限分析、漏洞检测、敏感数据检测

🚀 安装

要求

  • Node.js 18 或更高版本
  • npm 或 yarn
  • TypeScript(开发依赖)

步骤

  1. 克隆仓库:
git clone https://github.com/code-alchemist01/database-manager-mcp-Server.git
cd database-manager-mcp-Server
  1. 上传依赖:
npm install
  1. 编译项目:
npm run build
  1. 测试:
npm start

📦 MCP 客户端安装

此 MCP 服务器可以与任何支持模型上下文协议(MCP)标准的客户端一起使用。以下是流行客户端的安装指南。

Cursor IDE

1. 创建/编辑 MCP 配置文件

Windows:

%APPDATA%\Cursor\User\globalStorage\mcp.json

macOS/Linux:

~/.config/Cursor/User/globalStorage/mcp.json

2. 配置内容

{
  "mcpServers": {
    "database-manager": {
      "command": "node",
      "args": [
        "C:\\Users\\YourUsername\\path\\to\\database-manager-mcp-Server\\dist\\index.js"
      ]
    }
  }
}

注意:根据您的项目路径更新 args 中的路径。

3. 重启 Cursor

保存配置文件后,完全关闭 Cursor 并重新打开它。

4. 验证

在 Cursor 的 设置 > 工具 & MCP 中应出现 "database-manager" 列表。

Claude Desktop

1. 创建/编辑 MCP 配置文件

Windows:

%APPDATA%\Claude\claude_desktop_config.json

macOS:

~/Library/Application Support/Claude/claude_desktop_config.json

Linux:

~/.config/Claude/claude_desktop_config.json

2. 配置内容

{
  "mcpServers": {
    "database-manager": {
      "command": "node",
      "args": [
        "/path/to/database-manager-mcp-Server/dist/index.js"
      ]
    }
  }
}

重启 Claude Desktop

其他 MCP 客户端

如果您正在使用任何 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();

使用 Docker

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 客户端中使用

一旦安装了 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)

API 使用(程序化)

您还可以程序化地使用 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');

使用 CLI

通过运行 MCP 服务器并通过 stdio 与 MCP 协议通信:

node dist/index.js

此命令通过 stdio 传输启动服务器,并使其准备好与 MCP 客户端通信。

📋 MCP 工具(27 个工具)

连接管理(4 个)

  • connect_database - 连接到数据库
  • list_connections - 列出活动链接
  • disconnect_database - 关闭连接
  • test_connection - 测试连接

查询分析(5 个)

  • analyze_query - 分析 SQL 查询
  • explain_query 显示执行计划
  • optimize_query - 调查优化建议
  • detect_slow_queries 检测慢查询
  • suggest_indexes 索引建议

架构管理(5 个)

  • get_schema - 获取架构信息
  • visualize_schema - 创建 ER 图(Mermaid)
  • analyze_foreign_keys - 外键分析
  • generate_migration 创建迁移脚本
  • document_schema - 架构文档

数据分析(5 个)

  • get_table_stats - 表统计
  • analyze_data_quality - 数据质量分析
  • find_duplicates 查找重复记录
  • sample_data - 数据采样
  • generate_report 创建自定义报告

备份与恢复(4 个)

  • create_backup 创建备份
  • list_backups 列出备份
  • restore_backup 从备份恢复
  • verify_backup 验证备份

安全性(4 个)

  • 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

📝 示例使用场景

场景 1:SQLite 数据库分析

MCP 客户端聊天中:

连接到 SQLite 数据库:sqlite://mydb.db
显示架构
获取 users 表的统计数据
在 users 表中查找重复记录

预期结果:

  • 建立数据库连接
  • 显示所有表及其关系
  • 执行统计分析
  • 检测重复记录

场景 2:PostgreSQL 查询优化

MCP 客户端聊天中:

连接到 PostgreSQL 数据库:postgresql://user:pass@localhost:5432/dbname
分析 SELECT * FROM orders WHERE customer_id = 123 查询
为此查询提供索引建议

预期结果:

  • 查询性能分析
  • 执行计划可视化
  • 索引建议
  • 优化建议

场景 3:架构迁移

MCP 客户端聊天中:

查找两个架构之间的差异并创建迁移脚本
以 ER 图形式可视化架构

预期结果:

  • 架构比较
  • 创建迁移脚本
  • 以 Mermaid 格式的 ER 图

场景 4:数据质量控制

MCP 客户端聊天中:

对 products 表的数据质量进行分析
检查 products 表中是否存在敏感数据

预期结果:

  • 数据质量评分
  • 检测缺失/重复/不一致的数据
  • 检测 PII 和敏感数据
  • 建议和报告

场景 5:备份与恢复

MCP 客户端聊天中:

创建数据库备份
列出备份
验证备份

预期结果:

  • 创建备份
  • 备份列表
  • 验证备份

🔐 安全性

  • 安全存储连接字符串
  • SQL 注入防护(参数化查询)
  • 查询超时管理
  • 支持只读模式
  • 输入验证和清理

📊 输出格式

  • JSON - 结构化数据响应
  • Markdown - 报告和文档
  • CSV - 数据导出
  • SQL - 迁移脚本
  • Mermaid - ER 图

🤝 贡献指南

  1. Fork
  2. 创建一个功能分支 (git checkout -b feature/amazing-feature)
  3. 提交 (git commit -m 'Add amazing feature')
  4. 推送 (git push origin feature/amazing-feature)
  5. 打开 Pull Request

📄 许可证

MIT 许可证 - 详情见 LICENSE 文件。

🔗 MCP 客户端支持

此 MCP 服务器兼容以下客户端:

  • Cursor IDE - 完整支持
  • Claude Desktop - 完整支持
  • Anthropic API 通过 MCP 协议
  • 其他 MCP 客户端 - 所有支持标准 MCP 协议的客户端

🙏 感谢

📞 联系方式

您可以提出问题或建议。


⭐ 如果您喜欢这个项目,请不要忘记给它点赞!