MySQL连接服务器

基于go-mcp构建的MySQL数据库连接服务器,支持通过stdio与客户端通信,执行SQL查询和数据操作。

  • by blanplan-ai
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 blanplan-ai/ai2mysql-mcp-server

使用说明

MySQL MCP服务器

MySQL数据库连接服务器 去mcp,支持通过stdio与客户端通信,允许执行SQL查询和数据操作。

特性

  • 通过MCP协议与客户端通信
  • 支持连接MySQL数据库
  • 支持查询操作(SELECT、SHOW、DESCRIBE)
  • 支持数据操作(插入/更新/删除)
  • 权限控制(可配置插入、更新、删除操作)
  • 通过环境变量灵活配置
  • 调试模式,详细记录到文件中

安装

方法1:直接安装(推荐)

使用Go的Install命令直接从GitHub安装:

go install github.com/blanplan-ai/ai2mysql-mcp-server/cmd/ai2mysql-mcp-server@latest

方法2:手动构建

# Clone the repository
git clone https://github.com/blanplan-ai/ai2mysql-mcp-server.git
cd ai2mysql-mcp-server

# Build the server
go build -o ai2mysql-mcp-server ./cmd/ai2mysql-mcp-server

配置

服务器是使用环境变量配置的。

环境变量

可以设置以下环境变量来配置服务器:

环境变量 描述 默认值
MYSQL_HOST MySQL主机地址 127.0.0.1
MYSQL_PORT MySQL端口号 3306
MYSQL_USER MySQL用户名 root
MYSQL_PASS MySQL密码 密码
DEFAULT_DATABASE 默认数据库名称 测试
ALLOW_INSERT 是否允许INSERT操作 false
ALLOW_UPDATE 是否允许UPDATE操作 false
ALLOW_DELETE 是否允许DELETE操作 false
IS_DEV 启用具有详细日志记录的开发模式 false
LOG_PATH 日志文件的路径(仅在开发模式下有效) /tmp/ai2mysql.log

JSON配置示例

下面是一个可以用来设置环境变量的JSON配置示例:

{
  "MYSQL_HOST": "127.0.0.1",
  "MYSQL_PORT": "3306",
  "MYSQL_USER": "root",
  "MYSQL_PASS": "password",
  "DEFAULT_DATABASE": "test",
  "ALLOW_INSERT": "false",
  "ALLOW_UPDATE": "false",
  "ALLOW_DELETE": "false",
  "IS_DEV": "false",
  "LOG_PATH": "/tmp/ai2mysql.log"
}

配置说明:

  • 所有布尔型配置项都使用字符串“true”或“false”
  • 在生产环境中,建议禁用is_DEV以防止敏感信息泄漏
  • 建议根据实际需要限制INSERT/UPDATE/DELETE权限
  • 应使用环境变量配置密码等敏感信息

用法

启动服务器

安装后运行服务器:

# Run with default settings
ai2mysql-mcp-server

# Run with environment variables
MYSQL_HOST=127.0.0.1 MYSQL_USER=root MYSQL_PASS=password ai2mysql-mcp-server

# Enable development mode
IS_DEV=true ai2mysql-mcp-server

启用开发模式后,详细日志将输出到配置的日志文件中(默认值: /tmp/ai2mysql.log),包括完整的请求、响应和错误信息。

与光标一起使用

此服务器旨在与支持MCP协议的客户端(如Cursor)一起工作。

在Cursor中,您可以使用以下配置启用MySQL MCP服务器:

{
  "mcpServers": {
    "mysql-mcp-server": {
      "command": "ai2mysql-mcp-server",
      "args": [],
      "env": {
        "MYSQL_HOST": "127.0.0.1",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASS": "password",
        "DEFAULT_DATABASE": "test",   // Default database, optional
        "ALLOW_INSERT": "false",      // Allow insert operations, optional
        "ALLOW_UPDATE": "false",      // Allow update operations, optional
        "ALLOW_DELETE": "false",      // Allow delete operations, optional
        "IS_DEV": "false"             // Enable development mode, optional
      }
    }
  }
}

添加配置后,您可以使用以下工具:

  1. mysql_query:执行SQL查询操作

    • 参数: sql -SQL查询语句(SELECT、SHOW、DESCRIBE)
  2. mysql_execute:执行SQL数据操作

    • 参数: sql -SQL数据操作语句(插入/更新/删除)

发展

项目结构

ai2mysql-mcp-server/
└── cmd/
    └── ai2mysql-mcp-server/  # Server entry
        └── main.go          # Main program

依赖项

调试和故障排除

调试模式

设置环境变量 IS_DEV=true 要启用调试模式,请执行以下操作:

IS_DEV=true ai2mysql-mcp-server

在调试模式下,服务器将向指定的日志文件输出详细的日志,包括:

  • 所有收到的请求和发送的响应
  • 详细的SQL查询和执行信息
  • 错误和异常情况
  • 性能相关信息(如查询执行时间)

常见问题

如果在Cursor中遇到问题:

  1. 工具未显示:检查游标配置文件中的命令路径是否正确,确保可执行文件存在并具有执行权限
  2. 连接失败:检查数据库连接信息是否正确,使用调试模式查看详细的错误消息
  3. 权限问题:默认情况下只允许查询操作,请检查是否需要启用插入/更新/删除权限

许可证

MIT许可证