小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
1
最近更新:21天前

MySQL MCP 服务器项目

MySQL MCP 服务器

这是一个模型上下文协议(MCP)服务器,提供对MySQL数据库的访问。它允许代理对MySQL数据库执行SQL查询。

功能特性

  • 对MySQL数据库执行SQL查询:
    • 读取数据(SELECT语句)
    • 创建表(CREATE TABLE语句)
    • 插入数据(INSERT INTO语句)
    • 更新数据(UPDATE语句)
    • 删除数据(DELETE FROM语句)
  • 以JSON格式返回查询结果
  • 可配置的数据库连接设置
  • 带有唯一ID的事务日志记录

先决条件

  • Node.js(v14或更高版本)
  • MySQL服务器
  • MCP SDK

安装步骤

  1. 克隆或下载此仓库
  2. 安装依赖项:
bash 复制代码
cd mysql-mcp-server
npm install
  1. 构建服务器:
bash 复制代码
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')

数据库设置

  1. 创建MySQL数据库:
sql 复制代码
CREATE DATABASE mcpdb;
  1. 创建具有数据库访问权限的MySQL用户:
sql 复制代码
CREATE USER 'mcp101'@'localhost' IDENTIFIED BY '123qwe';
GRANT ALL PRIVILEGES ON mcpdb.* TO 'mcp101'@'localhost';
FLUSH PRIVILEGES;
  1. 创建测试表并插入示例数据:
sql 复制代码
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(Claude扩展)

文件路径:~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

根据您的MySQL配置修改args参数

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桌面应用

文件路径:~/Library/Application Support/Claude/claude_desktop_config.json

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工具执行:

sql 复制代码
SELECT * FROM test_users

可用工具

run_sql_query

对MySQL数据库执行只读SQL查询(仅SELECT语句)。

参数:

  • query: 要执行的SQL SELECT查询

示例:

json 复制代码
{
  "query": "SELECT * FROM test_users"
}

create_table

在MySQL数据库中创建新表。

参数:

  • query: 要执行的SQL CREATE TABLE查询

示例:

json 复制代码
{
  "query": "CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), price DECIMAL(10,2))"
}

insert_data

向MySQL数据库表中插入数据。

参数:

  • query: 要执行的SQL INSERT INTO查询

示例:

json 复制代码
{
  "query": "INSERT INTO products (name, price) VALUES ('Laptop', 999.99), ('Smartphone', 499.99)"
}

update_data

更新MySQL数据库表中的数据。

参数:

  • query: 要执行的SQL UPDATE查询

示例:

json 复制代码
{
  "query": "UPDATE products SET price = 899.99 WHERE name = 'Laptop'"
}

delete_data

从MySQL数据库表中删除数据。

参数:

  • query: 要执行的SQL DELETE FROM查询

示例:

json 复制代码
{
  "query": "DELETE FROM products WHERE name = 'Smartphone'"
}

安全注意事项

  • 为MCP服务器使用具有适当权限的专用MySQL用户
  • 如果只需要查询数据,考虑使用只读权限
  • 安全存储数据库凭据等敏感信息
  • 所有操作都记录有唯一事务ID以便审计