返回市场
MCP-MySQL服务器

MCP-MySQL服务器

作者:enemyrr27 星标更新:2025-04-29

项目介绍

@enemyrr/mcp-mysql-server

smithery 徽章

这是一个提供 MySQL 数据库操作的 Model Context Protocol 服务器。该服务器使 AI 模型能够通过标准化接口与 MySQL 数据库进行交互。

<a href="https://glama.ai/mcp/servers/hcqqd3qi8q"><img width="380" height="200" src="https://gips3.baidu.com/it/u=3405044084,3071214158&fm=3081&app=3081&f=PNG?w=760&h=400" alt="MCP-MySQL Server MCP 服务器" /></a>

安装与设置(针对 Cursor IDE)

通过 Smithery 安装

要通过 Smithery 自动安装 MySQL 数据库服务器到 Claude Desktop:

npx -y @smithery/cli install @enemyrr/mcp-mysql-server --client claude

手动安装

  1. 克隆并构建项目:
git clone https://github.com/enemyrr/mcp-mysql-server.git
cd mcp-mysql-server
npm install
npm run build
  1. 在 Cursor IDE 设置中添加服务器:
    • 打开命令面板(Cmd/Ctrl + Shift + P)
    • 搜索 "MCP: 添加服务器"
    • 填写字段:
      • 名称:mysql
      • 类型:command
      • 命令:node /绝对路径/to/mcp-mysql-server/build/index.js

注意:将 /绝对路径/to/ 替换为你实际克隆和构建项目的路径。

数据库配置

你可以通过三种方式配置数据库连接:

  1. 在 .env 中的数据库 URL(推荐):
DATABASE_URL=mysql://用户:密码@主机:3306/数据库
  1. 在 .env 中的独立参数
DB_HOST=localhost
DB_USER=你的用户
DB_PASSWORD=你的密码
DB_DATABASE=你的数据库
  1. 通过工具直接连接
use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    url: "mysql://用户:密码@主机:3306/数据库"
    // 或者
    workspace: "/路径/to/你的项目" // 将使用项目的 .env
    // 或者
    host: "localhost",
    user: "你的用户",
    password: "你的密码",
    database: "你的数据库"
  }
});

可用工具

1. connect_db

使用 URL、工作区路径或直接凭据连接到 MySQL 数据库。

2. query

执行带有可选预处理语句参数的 SELECT 查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM 用户 WHERE id = ?",
    params: [1]
  }
});

3. execute

执行带有可选预处理语句参数的 INSERT、UPDATE 或 DELETE 查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO 用户 (姓名, 邮箱) VALUES (?, ?)",
    params: ["John Doe", "john@example.com"]
  }
});

4. list_tables

列出连接数据库中的所有表。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "list_tables"
});

5. describe_table

获取特定表的结构。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "describe_table",
  arguments: {
    table: "用户"
  }
});

6. create_table

创建具有指定字段和索引的新表。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "create_table",
  arguments: {
    table: "用户",
    fields: [
      {
        name: "id",
        type: "int",
        autoIncrement: true,
        primary: true
      },
      {
        name: "邮箱",
        type: "varchar",
        length: 255,
        nullable: false
      }
    ],
    indexes: [
      {
        name: "email_idx",
        columns: ["邮箱"],
        unique: true
      }
    ]
  }
});

7. add_column

向现有表添加新列。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "add_column",
  arguments: {
    table: "用户",
    field: {
      name: "电话",
      type: "varchar",
      length: 20,
      nullable: true
    }
  }
});

特性

  • 多种连接方法(URL、工作区、直接)
  • 安全连接处理及自动清理
  • 支持查询参数的预处理语句
  • 数据库模式管理工具
  • 全面的错误处理和验证
  • 支持 TypeScript
  • 自动检测工作区

安全

  • 使用预处理语句防止 SQL 注入
  • 通过环境变量支持安全密码处理
  • 执行前验证查询
  • 完成后自动关闭连接

错误处理

服务器提供了详细的错误消息,包括:

  • 连接失败
  • 无效的查询或参数
  • 缺失的配置
  • 数据库错误
  • 模式验证错误

贡献

欢迎贡献!请随意提交一个 Pull Request 到 https://github.com/enemyrr/mcp-mysql-server

许可证

MIT