使用说明

项目简介

MySQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供安全可控的 MySQL 数据库访问能力。通过标准化的 MCP 协议,该服务器允许 LLM 客户端以结构化的方式探索数据库、读取数据以及执行 SQL 查询,从而增强 LLM 在数据分析和处理方面的能力。

主要功能点

  • 资源管理: 将 MySQL 数据库中的表和视图作为资源进行管理,并支持客户端获取资源列表和资源内容。
  • 工具集成: 提供 'list_tables', 'describe-table', 'read_query' 等工具,允许 LLM 客户端通过调用工具与数据库进行交互,例如列出数据库表、查看表结构、执行 SQL 查询等。
  • 安全访问控制: 通过环境变量配置数据库连接信息,并强调最小权限原则,保障数据库访问安全。
  • 详细日志记录: 记录服务器运行日志和工具调用信息,便于问题排查和安全审计。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/he426100/mysql-mcp-server
    cd mysql-mcp-server
  2. 安装依赖: 确保已安装 Composer,然后运行命令安装项目依赖。

    composer install

服务器配置

MCP 客户端需要配置连接 MySQL MCP Server 的信息。以下是一个示例 JSON 配置,你需要根据实际情况修改 'command' 和 'args' 字段。

{
  "serverName": "mysql-mcp-server",
  "command": "php",
  "args": [
    "bin/console",
    "mcp:mysql-server",
    "--host", "<数据库主机>",  // 可选,默认为 localhost,如果需要连接远程数据库请修改
    "--port", "<数据库端口>",  // 可选,默认为 3306,如果数据库端口不是 3306 请修改
    "--username", "<数据库用户名>", // 必须,请替换为你的数据库用户名
    "--password", "<数据库密码>", // 必须,请替换为你的数据库密码
    "--database", "<数据库名>"  // 必须,请替换为你需要访问的数据库名
  ]
}

配置参数说明:

  • 'serverName': MCP 服务器的名称,客户端用以识别。
  • 'command': 启动 MCP 服务器的命令,这里是 'php',假设你的 PHP 可执行文件在 PATH 环境变量中。
  • 'args': 传递给 'command' 的参数数组,用于配置数据库连接等信息。
    • 'bin/console mcp:mysql-server': 执行 Symfony Console 命令来启动 MySQL MCP Server。
    • '--host': 数据库主机地址,默认为 'localhost'。
    • '--port': 数据库端口号,默认为 '3306'。
    • '--username': 数据库用户名,必须配置
    • '--password': 数据库密码,必须配置
    • '--database': 数据库名称,必须配置,指定要访问的数据库。

环境变量配置 (推荐):

为了安全起见,推荐使用环境变量来配置数据库连接信息,而不是直接在 'args' 中明文写入。你可以在服务器运行环境中设置以下环境变量:

  • 'DB_HOST': 数据库主机
  • 'DB_PORT': 数据库端口
  • 'DB_USERNAME': 数据库用户名
  • 'DB_PASSWORD': 数据库密码
  • 'DB_DATABASE': 数据库名

如果设置了环境变量,则 JSON 配置中的 '--host', '--port', '--username', '--password', '--database' 参数可以省略,服务器会自动读取环境变量进行配置。

基本使用方法

  1. 启动服务器: 在项目根目录下,执行以下命令启动 MySQL MCP Server (如果使用 JSON 配置启动,则无需此步骤,MCP 客户端会自动启动服务器)。

    php bin/console mcp:mysql-server

    或者,如果配置了环境变量,可以直接运行:

    php bin/console mcp:mysql-server
  2. 客户端连接: 配置你的 MCP 客户端,使用上述生成的 JSON 配置信息连接到 MySQL MCP Server。

  3. 使用工具和资源: 客户端连接成功后,即可通过 MCP 协议与服务器交互,例如:

    • 调用 'tools/list' 获取可用工具列表。
    • 调用 'tools/call' 执行 'list_tables', 'describe-table', 'read_query' 等工具,与 MySQL 数据库进行交互。
    • 调用 'resources/list' 获取数据库资源列表 (例如表和视图)。
    • 调用 'resources/read' 读取指定资源的内容 (例如表结构和数据)。

请参考 MCP 协议文档和客户端使用说明,了解如何更详细地使用 MySQL MCP Server 提供的功能。

信息

分类

数据库与文件