使用说明
项目简介
MySQL MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 应用提供安全可控的 MySQL 数据库访问能力。通过标准化的 MCP 协议,该服务器允许 LLM 客户端以结构化的方式探索数据库、读取数据以及执行 SQL 查询,从而增强 LLM 在数据分析和处理方面的能力。
主要功能点
- 资源管理: 将 MySQL 数据库中的表和视图作为资源进行管理,并支持客户端获取资源列表和资源内容。
- 工具集成: 提供 'list_tables', 'describe-table', 'read_query' 等工具,允许 LLM 客户端通过调用工具与数据库进行交互,例如列出数据库表、查看表结构、执行 SQL 查询等。
- 安全访问控制: 通过环境变量配置数据库连接信息,并强调最小权限原则,保障数据库访问安全。
- 详细日志记录: 记录服务器运行日志和工具调用信息,便于问题排查和安全审计。
安装步骤
-
克隆仓库:
git clone https://github.com/he426100/mysql-mcp-server cd mysql-mcp-server -
安装依赖: 确保已安装 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' 参数可以省略,服务器会自动读取环境变量进行配置。
基本使用方法
-
启动服务器: 在项目根目录下,执行以下命令启动 MySQL MCP Server (如果使用 JSON 配置启动,则无需此步骤,MCP 客户端会自动启动服务器)。
php bin/console mcp:mysql-server或者,如果配置了环境变量,可以直接运行:
php bin/console mcp:mysql-server -
客户端连接: 配置你的 MCP 客户端,使用上述生成的 JSON 配置信息连接到 MySQL MCP Server。
-
使用工具和资源: 客户端连接成功后,即可通过 MCP 协议与服务器交互,例如:
- 调用 'tools/list' 获取可用工具列表。
- 调用 'tools/call' 执行 'list_tables', 'describe-table', 'read_query' 等工具,与 MySQL 数据库进行交互。
- 调用 'resources/list' 获取数据库资源列表 (例如表和视图)。
- 调用 'resources/read' 读取指定资源的内容 (例如表结构和数据)。
请参考 MCP 协议文档和客户端使用说明,了解如何更详细地使用 MySQL MCP Server 提供的功能。
信息
分类
数据库与文件