
MySQL Database Access MCP Server

2025.04.17
9
JavaScript数据库服务数据查询数据库
MySQL Database Access MCP Server 是一个提供MySQL数据库只读访问的MCP服务。它允许用户列出可用的数据库、列出数据库中的表、描述表结构以及执行只读SQL查询。该服务具有多种安全特性,包括只读访问、查询验证、查询超时和行限制,以确保数据安全和系统稳定性。
View on GitHub
Overview
基本能力
产品定位
MySQL Database Access MCP Server 是一个专门为MySQL数据库提供只读访问的MCP服务,旨在安全地查询和管理数据库信息。
核心功能
- 列出可用的数据库
- 列出数据库中的表
- 描述表结构
- 执行只读SQL查询
安全特性
- 只读访问:仅允许SELECT、SHOW、DESCRIBE和EXPLAIN语句
- 查询验证:防止SQL注入和阻止任何数据修改尝试
- 查询超时:防止长时间运行的查询消耗资源
- 行限制:防止返回过多数据
适用场景
- 数据库查询和管理
- 数据分析和报告生成
- 数据库结构审查
工具列表
- list_databases:列出MySQL服务器上所有可访问的数据库。
- list_tables:列出指定数据库中的所有表。
- describe_table:显示特定表的架构。
- execute_query:执行只读SQL查询。
常见问题解答
- 如何解决连接问题?
- 检查服务器日志中的错误消息
- 验证MySQL凭据和连接详细信息
- 确保MySQL用户具有适当的权限
- 为什么我的查询失败?
- 确保查询是只读的且格式正确
使用教程
使用依赖
确保已安装Node.js和npm。
安装教程
选项1:从NPM安装(推荐)
# 全局安装
npm install -g mysql-mcp-server
# 或在项目中本地安装
npm install mysql-mcp-server
选项2:从源代码构建
# 克隆仓库
git clone https://github.com/dpflucas/mysql-mcp-server.git
cd mysql-mcp-server
# 安装依赖并构建
npm install
npm run build
配置环境变量
需要以下环境变量:
- MYSQL_HOST
:数据库服务器主机名
- MYSQL_PORT
:数据库服务器端口(默认:3306)
- MYSQL_USER
:数据库用户名
- MYSQL_PASSWORD
:数据库密码
- MYSQL_DATABASE
:默认数据库名称(可选)
添加到MCP设置
根据安装方式添加相应的配置到MCP设置文件。
调试方式
1. 设置测试数据库
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
npm run test:setup
2. 测试MCP工具
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
export MYSQL_DATABASE=mcp_test_db
npm run test:tools
3. 运行所有测试
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
npm test