Dpflucas_mysql Mcp Server

Dpflucas_mysql Mcp Server

🚀 MySQL 数据库访问 MCP 服务器

本 MCP 服务器可实现对 MySQL 数据库的只读访问,为您提供以下功能:

  • 列出可用数据库
  • 在指定数据库中列出表
  • 描述表架构
  • 执行只读 SQL 查询

✨ 主要特性

  • 只读访问:仅允许执行 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句。
  • 查询验证:有效防止 SQL 注入,并阻止任何数据修改尝试。
  • 查询超时:避免长时间运行的查询消耗资源。
  • 行限制:防止返回过多数据。

📦 安装指南

方案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

3. 配置环境变量

服务器需要以下环境变量:

  • MYSQL_HOST:数据库服务器主机名
  • MYSQL_PORT:数据库服务器端口(默认:3306)
  • MYSQL_USER:数据库用户名
  • MYSQL_PASSWORD:数据库密码
  • MYSQL_DATABASE:默认数据库名称(可选)

4. 添加到 MCP 设置

在您的 MCP 设置文件中添加以下配置: 如果您通过 NPM 安装(方案1):

{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["mysql-mcp-server"],
"env": {
"MYSQL_HOST": "${MYSQL_HOST}",
"MYSQL_PORT": "${MYSQL_PORT}",
"MYSQL_USER": "${MYSQL_USER}",
"MYSQL_PASSWORD": "${MYSQL_PASSWORD}",
"MYSQL_DATABASE": "${MYSQL_DATABASE}"
}
}
}
}

如果您从源码构建(方案2):

{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"MYSQL_HOST": "${MYSQL_HOST}",
"MYSQL_PORT": "${MYSQL_PORT}",
"MYSQL_USER": "${MYSQL_USER}",
"MYSQL_PASSWORD": "${MYSQL_PASSWORD}",
"MYSQL_DATABASE": "${MYSQL_DATABASE}"
}
}
}
}

💻 使用示例

可用工具

mysql-cli

  • 功能:通过命令行接口查询数据库
  • 参数
    • --host-H:指定 MySQL 主机,默认为 localhost
    • --port-P:指定 MySQL 端口,默认为 3306
    • --user-u:指定 MySQL 用户名
    • --password-p:指定 MySQL 密码
    • --database-D:指定默认数据库名称

mysql-rest

  • 功能:通过 REST API 查询数据库
  • 配置参数
    • port:指定服务器监听的端口,默认为 3000
    • host:指定 MySQL 主机,默认为 localhost
    • user:指定 MySQL 用户名
    • password:指定 MySQL 密码
    • database:指定默认数据库名称

mysql-dump

  • 功能:导出数据库表结构和数据
  • 使用示例
# 导出所有表结构
./mysql-dump.sh --host=localhost --port=3306 --user=root --password=admin

# 导出特定数据库的数据
./mysql-dump.sh --database=mydb > mydb_dump.sql

📚 详细文档

测试指南

准备工作

  1. 创建测试数据库 mcp_test_db 并确保测试用户具有适当的权限。
  2. 确保所有环境变量已正确设置。

运行测试

单元测试

运行以下命令执行单元测试:

npm test
工具测试

运行以下命令测试工具功能:

npm run test:tools

故障排除

如果遇到问题:

  1. 检查服务器日志以获取错误信息
  2. 验证 MySQL 凭证和连接详细信息
  3. 确保 MySQL 用户具有适当的权限
  4. 确认查询为只读且格式正确

📄 许可证

此项目使用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-24 19:03

相似服务问题