MySQL Database Access MCP Server

MySQL Database Access MCP Server

未知

概述

MySQL MCP 服务器提供对 MySQL 数据库的安全只读访问,支持查询数据、列出表和描述表结构,同时防止数据修改。

安装和配置

安装选项

# 全局安装(推荐)
npm install -g mysql-mcp-server

# 或项目本地安装
npm install mysql-mcp-server

环境变量配置

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

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

MCP 配置示例

{
  "mcpServers": {
    "mysql": {
      "command": "npx",
      "args": ["mysql-mcp-server"],
      "env": {
        "MYSQL_HOST": "your-mysql-host",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "your-mysql-user",
        "MYSQL_PASSWORD": "your-mysql-password",
        "MYSQL_DATABASE": "your-default-database"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

可用工具和用法

列出数据库

{
  "server_name": "mysql",
  "tool_name": "list_databases",
  "arguments": {}
}

列出表

{
  "server_name": "mysql",
  "tool_name": "list_tables",
  "arguments": {
    "database": "my_database"  // 可选
  }
}

描述表结构

{
  "server_name": "mysql",
  "tool_name": "describe_table",
  "arguments": {
    "database": "my_database",  // 可选
    "table": "my_table"         // 必填
  }
}

执行查询

{
  "server_name": "mysql",
  "tool_name": "execute_query",
  "arguments": {
    "database": "my_database",                      // 可选
    "query": "SELECT * FROM my_table LIMIT 10"      // 必填,仅允许只读操作
  }
}

安全特性

  • 只读访问:仅允许 SELECT、SHOW、DESCRIBE 和 EXPLAIN 语句
  • 查询验证:防止 SQL 注入和数据修改尝试
  • 查询超时:防止长时间运行的查询
  • 行数限制:防止返回过多数据

故障排除

如果遇到问题:

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