关于 MySQL MCP Server
MySQL MCP Server 为需要通过 Agent 操作 MySQL 的开发者提供数据库访问。它将 SQL 查询结果以 JSON 返回,并支持读写语句及事务日志记录。
主要功能
- 01执行 SELECT 查询
- 02创建数据库表
- 03插入、更新和删除数据
- 04以 JSON 返回查询结果
- 05记录带唯一 ID 的事务
适用场景
- 01通过 Agent 查询 MySQL 数据
- 02创建并维护数据库表
- 03在 MySQL 中写入或修改记录
- 04审计数据库操作记录
MCP 相关
该 MCP 服务向客户端提供 MySQL 数据库操作工具,包括 SQL 查询、建表、插入、更新和删除数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MySQL MCP 服务
这是一个可访问 MySQL 数据库的模型上下文协议(MCP)服务。它允许 Agent 对 MySQL 数据库执行 SQL 查询。
功能
- 对 MySQL 数据库执行 SQL 查询:
- 读取数据(SELECT 语句)
- 创建表(CREATE TABLE 语句)
- 插入数据(INSERT INTO 语句)
- 更新数据(UPDATE 语句)
- 删除数据(DELETE FROM 语句)
- 以 JSON 格式返回查询结果
- 可配置数据库连接设置
- 使用唯一 ID 记录事务日志
前提条件
- Node.js(v14 或更高版本)
- MySQL 服务
- MCP SDK
安装
- 克隆或下载此仓库
- 安装依赖:
cd mysql-mcp-server
npm install
- 构建服务:
npm run build
配置
MySQL MCP 服务使用以下环境变量进行配置:
MYSQL_HOST:MySQL 服务主机名(默认值:'localhost')MYSQL_PORT:MySQL 服务端口(默认值:3306)MYSQL_USER:MySQL 用户名(默认值:'mcp101')MYSQL_PASSWORD:MySQL 密码(默认值:'123qwe')MYSQL_DATABASE:MySQL 数据库名称(默认值:'mcpdb')
数据库设置
- 创建 MySQL 数据库:
CREATE DATABASE mcpdb;
- 创建一个有权访问该数据库的 MySQL 用户:
CREATE USER 'mcp101'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON mcpdb.* TO 'mcp101'@'localhost';
FLUSH PRIVILEGES;
- 使用示例数据创建测试表:
USE mcpdb;
CREATE TABLE test_users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO test_users (name, email) VALUES
('John Doe', '[email protected]'),
('Jane Smith', '[email protected]'),
('Bob Johnson', '[email protected]');
MCP 配置
将 MySQL MCP 服务添加到 MCP 设置文件中:
VSCode(Claude 扩展)
文件:~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
根据你的 MySQL 配置修改 args
{
"mcpServers": {
"mysql-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mysql-mcp-server/build/index.js"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "mcp101",
"MYSQL_PASSWORD": "123qwe",
"MYSQL_DATABASE": "mcpdb"
},
"transportType": "stdio"
}
}
}
Claude 桌面应用
文件:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mysql-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mysql-mcp-server/build/index.js"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "mcp101",
"MYSQL_PASSWORD": "123qwe",
"MYSQL_DATABASE": "mcpdb"
},
"transportType": "stdio"
}
}
}
用法
配置完成后,你可以在与 Claude 的对话中使用 MySQL MCP 服务。例如:
“你能给我展示 test_users 表中的所有用户吗?”
Claude 将使用 run_sql_query 工具执行:
SELECT * FROM test_users
可用工具
run_sql_query
对 MySQL 数据库执行只读 SQL 查询(仅限 SELECT 语句)。
参数:
query:要执行的 SQL SELECT 查询。
示例:
{
"query": "SELECT * FROM test_users"
}
create_table
在 MySQL 数据库中创建新表。
参数:
query:要执行的 SQL CREATE TABLE 查询。
示例:
{
"query": "CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}
insert_data
向 MySQL 数据库中的表插入数据。
参数:
query:要执行的 SQL INSERT INTO 查询。
示例:
{
"query": "INSERT INTO products (name, price) VALUES ('Laptop', 999.99), ('Smartphone', 499.99)"
}
update_data
更新 MySQL 数据库表中的数据。
参数:
query:要执行的 SQL UPDATE 查询。
示例:
{
"query": "UPDATE products SET price = 899.99 WHERE name = 'Laptop'"
}
delete_data
删除 MySQL 数据库表中的数据。
参数:
query:要执行的 SQL DELETE FROM 查询。
示例:
{
"query": "DELETE FROM products WHERE name = 'Smartphone'"
}
安全注意事项
- 为 MCP 服务使用具有适当权限的专用 MySQL 用户
- 如果只需要查询数据,请考虑使用只读权限
- 安全存储数据库凭据等敏感信息
- 所有操作均使用唯一事务 ID 记录日志,以供审计
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。