使用说明
MySQL MCP服务器
这是一个模型上下文协议(MCP)服务器,提供对MySQL数据库的访问。它允许代理对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', 'john@example.com'),
('Jane Smith', 'jane@example.com'),
('Bob Johnson', 'bob@example.com');
MCP配置
将MySQL MCP服务器添加到MCP设置文件中:
VSCode(克劳德扩展)
文件: ~/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"
}
}
}
克劳德桌面应用程序
文件: ~/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表中的所有用户吗?”
克劳德将使用 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'"
}
删除数据
从MySQL数据库的表中删除数据。
参数:
query:要执行的SQL DELETE FROM查询。
例子:
{
"query": "DELETE FROM products WHERE name = 'Smartphone'"
}
安全考虑
- 为MCP服务器使用具有适当权限的专用MySQL用户
- 如果只需要查询数据,请考虑使用只读权限
- 安全地存储数据库凭据等敏感信息
- 所有操作都记录了唯一的事务ID以供审计