
MySQL Database Access MCP Server

2025.04.21
0
JavaScriptMySQL数据库访问只读查询数据库
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用户具有适当的权限
- 为什么我的查询被拒绝?
- 确保查询是只读的(仅SELECT, SHOW, DESCRIBE, EXPLAIN语句)
- 检查查询格式是否正确
使用教程
使用依赖
- Node.js环境
- npm包管理器
安装教程
从NPM安装
# 全局安装
npm install -g mysql-mcp-server
# 或在项目中本地安装
npm install mysql-mcp-server
从源代码构建
# 克隆仓库
git clone https://github.com/allizwellai/mysql-mcp-server.git
cd mysql-mcp-server
# 安装依赖并构建
npm install
npm run build
配置环境变量
MYSQL_HOST
:数据库服务器主机名MYSQL_PORT
:数据库服务器端口(默认:3306)MYSQL_USER
:数据库用户名MYSQL_PASSWORD
:数据库密码(可选,但建议用于安全连接)MYSQL_DATABASE
:默认数据库名称(可选)
调试方式
测试数据库设置
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
npm run test:setup
测试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
运行所有测试
export MYSQL_HOST=localhost
export MYSQL_PORT=3306
export MYSQL_USER=your_username
export MYSQL_PASSWORD=your_password
npm test