项目简介
本项目 'mcp-server-mysql' 是一个 Model Context Protocol (MCP) 服务器的实现,它允许大型语言模型 (LLM) 通过 MCP 协议安全地访问 MySQL 数据库。该服务器提供数据库表结构信息作为资源,并提供执行只读 SQL 查询的工具,使得 LLM 能够理解数据库schema并从中获取数据。
主要功能点
- 提供数据库表结构资源: LLM 可以获取 MySQL 数据库中表的结构信息,包括列名和数据类型,帮助 LLM 理解数据库 schema。
- 执行只读 SQL 查询工具: 提供 'mysql_query' 工具,允许 LLM 执行只读的 SQL 查询语句,从数据库中检索数据。所有查询都在只读事务中执行,确保数据安全。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (或 npx)。你可以从 nodejs.org 下载并安装。
- 安装 MCP 服务器: 使用 npm 或 npx 命令安装 '@benborla29/mcp-server-mysql' 包。在终端中运行以下命令即可安装并运行该 MCP 服务器:
这将自动下载并运行服务器。npx @benborla29/mcp-server-mysql
服务器配置
为了让 MCP 客户端(例如 Claude Desktop)连接到 'mcp-server-mysql' 服务器,你需要在客户端的配置文件中添加服务器配置信息。以下是一个 'claude_desktop_config.json' 示例,展示了如何配置 'mcp-server-mysql' 服务器:
{ "mcpServers": { "mcp_server_mysql": { "command": "npx", "args": [ "@benborla29/mcp-server-mysql" ], "env": { "MYSQL_HOST": "127.0.0.1", // MySQL 服务器地址 "MYSQL_PORT": "3306", // MySQL 服务器端口 "MYSQL_USER": "root", // MySQL 用户名 "MYSQL_PASS": "", // MySQL 密码 (如果需要) "MYSQL_DB": "your_database_name" // 默认连接的数据库名 (可选,留空则可访问所有数据库) } } } }
配置说明:
- '"mcp_server_mysql"': 服务器名称,可以自定义。
- '"command": "npx"': 启动服务器的命令,这里使用 'npx' 来运行 npm 包。
- '"args": ["@benborla29/mcp-server-mysql"]': 'npx' 命令的参数,指定要运行的 npm 包名称。
- '"env"': 环境变量配置,用于配置 MySQL 数据库连接信息:
- '"MYSQL_HOST"': MySQL 服务器的主机地址。
- '"MYSQL_PORT"': MySQL 服务器的端口号,默认为 3306。
- '"MYSQL_USER"': 连接 MySQL 服务器的用户名。
- '"MYSQL_PASS"': 连接 MySQL 服务器的密码。
- '"MYSQL_DB"': 要连接的默认数据库名称。如果留空,则服务器可以访问 MySQL 服务器上的所有数据库。
请根据你的 MySQL 数据库实际配置修改 'env' 中的参数。将上述配置添加到你的 MCP 客户端配置文件中,客户端即可发现并连接到 'mcp-server-mysql' 服务器。
基本使用方法
配置完成后,LLM 客户端可以通过 MCP 协议与 'mcp-server-mysql' 服务器进行交互:
- 获取表结构资源: LLM 可以请求服务器提供的资源列表,从中找到数据库表结构资源。资源以 JSON Schema 格式提供,描述了表的列名和数据类型。
- 调用 'mysql_query' 工具: LLM 可以调用 'mysql_query' 工具来执行 SQL 查询。调用工具时,需要提供 SQL 查询语句作为输入参数。服务器将执行查询并将结果以 JSON 格式返回给 LLM。
通过以上步骤,LLM 即可利用 'mcp-server-mysql' 服务器提供的能力,安全地访问和查询 MySQL 数据库,从而增强 LLM 在数据分析和知识检索等方面的能力。
信息
分类
数据库与文件