使用说明
MySQL MCP服务器
版本:0.1.0
用于与MySQL数据库交互的模型上下文协议(MCP)服务器。此服务器允许MCP客户端(如AI助手)查询和修改配置的MySQL数据库中的数据。
特性
- 使用标准连接参数连接到MySQL数据库。
- 提供用于执行SQL查询和语句的MCP工具。
- 支持只读查询(
SELECT,SHOW,DESCRIBE). - 支持写入操作(
INSERT,UPDATE,DELETE)通过单独的工具,由环境变量控制(MYSQL_ALLOW_WRITE_OPS). - 通过标准输入/输出(stdio)进行通信。
安装
# Install as a project dependency (recommended for use within another project)
npm install
# Or, if intended as a standalone global tool:
# 1. Build the project:
# npm run build
# 2. Link it globally:
# npm link
# (or use `npm install -g .` if publishing)
配置
此服务器要求为数据库连接设置以下环境变量:
MYSQL_HOST:MySQL服务器的主机名或IP地址。MYSQL_USER:连接到数据库的用户名。MYSQL_PASSWORD:指定用户的密码。MYSQL_DATABASE:要连接的数据库的名称。MYSQL_PORT:(可选)MySQL服务器的端口号(默认为3306)。MYSQL_ALLOW_WRITE_OPS:(可选)设置为true为了使insert,update,以及delete工具。默认为false(写入操作已禁用)。 警告: 启用写操作允许MCP客户端修改您的数据库。小心使用。
这些变量需要在启动服务器进程的环境中可用。如何设置它们取决于您的操作系统以及您如何运行服务器(例如。, .env 文件、系统环境变量、shell导出)。
用法
一旦配置和构建(npm run build),您可以运行服务器:
# If linked globally
mysql-server
# Or run directly using node
node build/index.js
服务器将启动并打印 MySQL MCP server running on stdio 到stderr,然后在标准输入/输出上监听MCP请求。您通常会配置MCP客户端(例如,AI助手集成)以连接到此服务器进程。
可用工具
服务器公开以下工具供MCP客户端使用:
1. query
- 说明: 对配置的数据库执行只读SQL查询(SELECT、SHOW、DESCRIBE)。
- 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "The read-only SQL query (SELECT, SHOW, DESCRIBE) to execute." } }, "required": ["sql"] } - 输出: 在MCP响应中以JSON字符串的形式返回查询结果
content。如果查询不是只读的或存在数据库错误,则返回错误。
2. insert
- 说明: 执行INSERT SQL语句。 需要
MYSQL_ALLOW_WRITE_OPS设置为true. - 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "The INSERT SQL statement to execute." } }, "required": ["sql"] } - 输出: 返回一条成功消息,其中包括受影响的行和插入ID(如果适用),或者如果操作失败或写入操作被禁用,则返回一条错误消息。
3. update
- 说明: 执行UPDATE SQL语句。 需要
MYSQL_ALLOW_WRITE_OPS设置为true. - 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "The UPDATE SQL statement to execute." } }, "required": ["sql"] } - 输出: 返回包含受影响行的成功消息,如果操作失败或写入操作被禁用,则返回错误消息。
4. delete
- 说明: 执行DELETE SQL语句。 需要
MYSQL_ALLOW_WRITE_OPS设置为true. - 输入架构:
{ "type": "object", "properties": { "sql": { "type": "string", "description": "The DELETE SQL statement to execute." } }, "required": ["sql"] } - 输出: 返回包含受影响行的成功消息,如果操作失败或写入操作被禁用,则返回错误消息。
发展
要处理服务器代码,请执行以下操作:
- 克隆存储库: (如适用)
# git clone <repository-url> # cd mysql-server - 安装依赖项:
npm install - 构建代码: (将TypeScript编译为JavaScript
build/)npm run build - 注意变化: (更改后自动重新编译)
npm run watch - 运行MCP检查器: (用于在本地测试/调试服务器)
# Make sure you have built the code first npm run inspector