关于 MCP Stdio Server (MySQL/MariaDB)
MCP Stdio Server (MySQL/MariaDB) 是面向 Cursor IDE 和 Claude 用户的数据库分析服务,支持 MySQL/MariaDB 与 PostgreSQL。它提供只读查询控制、Schema 分析、性能工具和可视化报告。
主要功能
- 01连接 MySQL/MariaDB 和 PostgreSQL
- 02限制为只读 SELECT 查询
- 03查看 Schema 和表统计信息
- 04分析查询计划与性能
- 05提供查询及索引优化建议
- 06生成 Mermaid ERD 和报告
适用场景
- 01以只读方式浏览数据库 Schema
- 02检查查询计划和性能瓶颈
- 03为数据库文档生成 ERD
- 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 # 시각화 관련 도구
🚀 可扩展性
添加新数据库
- 在
adapters/文件夹中创建新的适配器类 - 继承
DatabaseAdapter基类 - 实现所需方法
- 添加到
adapters/__init__.py的工厂函数中
添加新工具
- 在相应类别的
tools/模块中添加函数 - 使用
@mcp.tool()装饰器注册 - 调用适配器的方法实现功能
📋 要求
- Python 3.8+
- 数据库:
- MySQL/MariaDB 5.7+
- PostgreSQL 12+
- SQLite 3.x
🤝 参与贡献
- Fork 项目
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 创建 Pull Request
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。