mcpField
M
MCP Stdio Server (MySQL/MariaDB)

MCP Stdio Server (MySQL/MariaDB)

本地服务
github.com/zerogon1203数据库453 周前更新

关于 MCP Stdio Server (MySQL/MariaDB)

MCP Stdio Server (MySQL/MariaDB) 是面向 Cursor IDE 和 Claude 用户的数据库分析服务,支持 MySQL/MariaDB 与 PostgreSQL。它提供只读查询控制、Schema 分析、性能工具和可视化报告。

主要功能

  1. 01连接 MySQL/MariaDB 和 PostgreSQL
  2. 02限制为只读 SELECT 查询
  3. 03查看 Schema 和表统计信息
  4. 04分析查询计划与性能
  5. 05提供查询及索引优化建议
  6. 06生成 Mermaid ERD 和报告

适用场景

  1. 01以只读方式浏览数据库 Schema
  2. 02检查查询计划和性能瓶颈
  3. 03为数据库文档生成 ERD
  4. 04汇总表信息及统计数据

MCP 相关

通过 stdio 传输向 MCP 客户端提供数据库 Schema、查询、分析和可视化工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🗄️ MCP 数据库服务

安全性增强的多数据库支持 MCP 服务 - 可与 Cursor IDE 和 Claude 集成的 Model Context Protocol 服务

这是一款支持 MySQL、PostgreSQL 并采用严格安全策略的数据库分析与可视化工具。

✨ 主要功能

🔒 安全功能(NEW!)
  • 强制只读模式 - 仅允许 SELECT 查询
  • 防止 SQL Injection - 阻止多语句执行和禁用动词
  • 标识符白名单 - 验证表名/列名
  • 强制参数绑定 - 安全执行查询
  • 阻止 MySQL/PostgreSQL 危险功能 - INTO OUTFILE、COPY 等
🎯 多数据库支持
  • MySQL/MariaDB - 完全支持(安全性增强)
  • PostgreSQL - 完全支持(安全性增强)
  • SQLite - 基础支持(准备中)
📊 可视化工具
  • 生成 Mermaid ERD - 将数据库架构转换为 Mermaid 图表
  • Markdown 表格摘要 - 将表信息整理为清晰的表格
  • ASCII 性能图表 - 直观呈现表大小和索引效率
🔍 分析功能
  • 分析和查看架构
  • 按表统计信息
  • 检测性能瓶颈
  • 提供索引优化建议
  • 分析查询执行计划

📦 安装

git clone <this-repo-url>
cd db-mcp-server
python -m venv venv
source venv/bin/activate  # 또는 venv\Scripts\activate (Windows)
pip install -r requirements.txt

⚙️ 配置

🔒 安全配置(重要!)

在生产环境中务必应用以下配置:

# 읽기 전용 모드 강제
READ_ONLY=true
STRICT_READONLY=true

# 보안 강화된 데이터베이스 계정 사용
DB_USER=readonly_user
DB_PASSWORD=secure_password
环境变量配置

创建 .env 文件并设置数据库信息:

cp .env.example .env
MySQL/MariaDB 配置(安全性增强)
DB_TYPE=mysql
DB_HOST=localhost
DB_USER=readonly_user  # 읽기 전용 계정 사용
DB_PASSWORD=your_password
DB_NAME=your_database
DB_CHARSET=utf8mb4
DB_PORT=3306
PostgreSQL 配置
DB_TYPE=postgresql
DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=your_password
DB_NAME=your_database
DB_PORT=5432
DB_SCHEMA=public
SQLite 配置
DB_TYPE=sqlite
DB_PATH=./database.sqlite

🚀 使用方法

与 Cursor IDE 集成

添加 MCP Server → Transport: stdio → Command: python main.py

单独设置环境变量:

{
  "mcpServers": {
    "db-mcp-server": {
      "transport": "stdio",
      "command": "/path/to/venv/bin/python",
      "args": ["/path/to/db-mcp-server/main.py"],
      "env": {
        "DB_TYPE": "postgresql",
        "DB_NAME": "your_db_name",
        "DB_HOST": "localhost"
      }
    }
  }
}

🔒 安全

安全策略

此服务采用严格的安全策略:

  • 只读模式:仅允许 SELECT 查询
  • 防止 SQL Injection:阻止多语句执行和禁用动词
  • 标识符验证:通过白名单验证表名/列名
  • 参数绑定:以安全方式处理所有用户输入
安全配置

有关详细安全配置,请参阅 SECURITY.md。

数据库账户权限

重要:在生产环境中务必使用只读账户:

-- MySQL 예시
CREATE USER 'mcp_readonly'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT ON your_database.* TO 'mcp_readonly'@'%';

-- PostgreSQL 예시
CREATE USER mcp_readonly WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE your_database TO mcp_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_readonly;

🛠️ 可用工具

📋 架构工具
  • get_schema - 查看完整数据库架构
  • get_table_stats - 按表统计信息
  • get_sample_data - 查看样本数据
  • get_column_stats - 按列查看详细统计信息
🔍 分析工具
  • execute_query - 安全执行只读查询
  • explain_query - 分析查询执行计划
  • optimize_query - 提供查询优化建议
  • get_db_status - 查看数据库状态信息
  • get_table_size - 查看各表大小信息
  • get_index_usage - 查看索引使用统计信息
  • analyze_performance - 分析性能瓶颈
  • suggest_indexes - 提供索引创建建议
  • optimize_tables - 提供表优化建议
🎨 可视化工具
  • generate_schema_mermaid - 生成 Mermaid ERD 图表
  • generate_tables_summary - 生成 Markdown 表格摘要
  • generate_performance_report - 生成性能分析报告(包含 ASCII 图表)

📊 使用示例

架构可视化
😊 사용자: "데이터베이스 스키마를 ERD로 보여줘"
🤖 AI: generate_schema_mermaid() 실행 → Mermaid 다이어그램 제공
性能分析
😊 사용자: "성능 문제가 있는지 분석해줘"  
🤖 AI: analyze_performance() → generate_performance_report() 실행
     → ASCII 차트와 함께 상세한 성능 리포트 제공
表状态摘要
😊 사용자: "테이블들 현황을 요약해줘"
🤖 AI: generate_tables_summary() 실행 → 마크다운 테이블 요약 제공

🏗️ 项目结构

db-mcp-server/
├── main.py                 # MCP 서버 메인 파일
├── .env.example            # 환경변수 예시 파일
├── requirements.txt        # Python 의존성
├── adapters/               # 데이터베이스 어댑터
│   ├── __init__.py        
│   ├── base.py            # 베이스 어댑터 클래스
│   ├── mysql.py           # MySQL/MariaDB 어댑터
│   └── postgresql.py      # PostgreSQL 어댑터
└── tools/                 # MCP 도구 모듈
    ├── __init__.py
    ├── schema_tools.py     # 스키마 관련 도구
    ├── analysis_tools.py   # 분석 관련 도구
    └── visualization_tools.py # 시각화 관련 도구

🚀 可扩展性

添加新数据库
  1. 在 adapters/ 文件夹中创建新的适配器类
  2. 继承 DatabaseAdapter 基类
  3. 实现所需方法
  4. 添加到 adapters/__init__.py 的工厂函数中
添加新工具
  1. 在相应类别的 tools/ 模块中添加函数
  2. 使用 @mcp.tool() 装饰器注册
  3. 调用适配器的方法实现功能

📋 要求

  • Python 3.8+
  • 数据库:
    • MySQL/MariaDB 5.7+
    • PostgreSQL 12+
    • SQLite 3.x

🤝 参与贡献

  1. Fork 项目
  2. 创建功能分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add some AmazingFeature')
  4. 推送到分支(git push origin feature/AmazingFeature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。