使用说明

项目简介

MySQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为 LLM 应用提供访问 MySQL 数据库的能力。通过该服务器,LLM 可以执行 SQL 查询、获取数据库表结构等信息,从而实现与 MySQL 数据库的交互。

主要功能点

  • 执行只读 SQL 查询 (query):允许 LLM 安全地查询 MySQL 数据库中的数据。
  • 测试执行 SQL 查询并回滚 (test_execute):用于验证 SQL 语句的有效性,但不会实际修改数据库。
  • 列出数据库中的所有表 (list_tables):获取数据库中所有表的名称列表。
  • 获取指定表的结构信息 (describe_table):查看指定表的列名、数据类型等详细结构信息。

安装步骤

  1. 确保已安装 Docker: 本服务器以 Docker 容器方式运行,请确保您的环境中已安装 Docker。
  2. 配置环境变量: 创建或编辑 '~/.mcp/.env' 文件,并添加 MySQL 数据库的连接信息。例如:
    MYSQL_HOST=your_mysql_host  # MySQL 服务器地址,例如 localhost 或 IP 地址
    MYSQL_PORT=3306         # MySQL 服务器端口,默认为 3306
    MYSQL_USER=your_mysql_user    # MySQL 用户名
    MYSQL_PASSWORD=your_mysql_password # MySQL 密码
    MYSQL_DATABASE=your_mysql_database # 默认连接的数据库名
    注意: 请将上述占位符替换为您的实际 MySQL 数据库连接信息。
  3. 构建 Docker 镜像: 在包含 'README.md' 和 'src/index.ts' 文件的仓库根目录下(假设存在 Dockerfile,如果仓库中没有 Dockerfile,则需要自行创建),执行 Docker 构建命令来创建镜像:
    docker build -t my-mcp/mysql .
    如果仓库中没有 Dockerfile,你需要根据 'README.md' 和 'src/index.ts' 中的信息自行编写 Dockerfile,并确保基础镜像包含 Node.js 环境和必要的依赖。

服务器配置

为了让 MCP 客户端能够连接到 MySQL MCP Server,您需要在 MCP 客户端的配置文件(通常是 'mcp.json')中添加服务器的配置信息。以下是一个示例配置,请根据您的实际情况进行调整:

{
  "mcpServers": {
    "mysql": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--add-host=host.docker.internal:host-gateway",
        "--env-file",
        "/Users/username/.mcp/.env",
        "my-mcp/mysql"
      ]
    }
  }
}

配置项说明:

  • 'server name': 'mysql' (服务器名称,可以自定义,用于在 MCP 客户端中唯一标识该服务器)
  • 'command': 'docker' (启动服务器的命令,这里使用 Docker 运行镜像)
  • 'args': 启动命令的参数列表,用于配置 Docker 容器的运行方式。
    • 'run -i --rm': Docker 运行命令,'-i' 表示保持标准输入打开,'--rm' 表示容器退出后自动删除。
    • '--add-host=host.docker.internal:host-gateway': 允许 Docker 容器访问宿主机的服务。如果 MySQL 服务运行在宿主机上,则需要此配置。对于 OrbStack 环境,'host.docker.internal' 通常自动支持,可以省略 '--add-host'。
    • '--env-file /Users/username/.mcp/.env': 指定环境变量文件路径,将 MySQL 连接信息从 '~/.mcp/.env' 文件传递给 Docker 容器内的服务器程序。请将 '/Users/username/.mcp/.env' 替换为您实际的文件路径。
    • 'my-mcp/mysql': Docker 镜像名称,与您在构建 Docker 镜像时指定的名称一致。

基本使用方法

  1. 启动服务器: MCP 客户端会根据您在 'mcp.json' 中配置的服务器信息自动启动 MySQL MCP Server。
  2. 发送请求: MCP 客户端通过 JSON-RPC 协议与服务器进行通信。您可以向服务器发送 JSON 请求,例如调用 'query' 工具执行 SQL 查询。请求示例:
    {
      "type": "callTool",
      "tool_call_id": "query-1",
      "tool_name": "query",
      "arguments": {
        "sql": "SELECT * FROM your_table LIMIT 10"
      }
    }
  3. 接收响应: 服务器会将执行结果以 JSON 格式通过标准输出返回给 MCP 客户端。

请参考仓库的 'README.md' 和 'src/index.ts' 文件以获取更详细的信息和示例。

信息

分类

数据库与文件