MySQL数据库操作服务

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

  • by enemyrr
  • TypeScript
  • 本地部署
  • 33 星标
  • 更新于
在 GitHub 查看 enemyrr/mcp-mysql-server

使用说明

@enemyr/mcp-mysql服务器

提供MySQL数据库操作的模型上下文协议服务器。该服务器使AI模型能够通过标准化的接口与MySQL数据库进行交互。

Cursor IDE的安装和设置

通过Smithery安装

通过以下方式自动安装克劳德桌面版MySQL数据库服务器 史密瑟里:

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 /absolute/path/to/mcp-mysql-server/build/index.js

备注:替换 /absolute/path/to/ 使用克隆和构建项目的实际路径。

数据库配置

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

  1. .env中的数据库URL (推荐):
DATABASE_URL=mysql://user:password@host:3306/database
  1. .env中的单个参数:
DB_HOST=localhost
DB_USER=your_user
DB_PASSWORD=your_password
DB_DATABASE=your_database
  1. 通过工具直接连接:
use_mcp_tool({
  server_name: "mysql",
  tool_name: "connect_db",
  arguments: {
    url: "mysql://user:password@host:3306/database"
    // OR
    workspace: "/path/to/your/project" // Will use project's .env
    // OR
    host: "localhost",
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

可用工具

1.connect_db

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

2.查询

使用可选的准备语句参数执行SELECT查询。

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

3.执行

使用可选的准备语句参数执行INSERT、UPDATE或DELETE查询。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES (?, ?)",
    params: ["John Doe", "john@example.com"]
  }
});

4.列表表

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

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

5.描述表

获取特定表的结构。

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

6.创建表

使用指定的字段和索引创建新表。

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

7.添加_列

向现有表添加新列。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "add_column",
  arguments: {
    table: "users",
    field: {
      name: "phone",
      type: "varchar",
      length: 20,
      nullable: true
    }
  }
});

8.交替柱

修改现有列(类型、可空、默认或重命名)。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "alter_column",
  arguments: {
    table: "users",
    column: "phone",
    type: "varchar",
    length: 50,
    nullable: false,
    newName: "phone_number" // optional: rename column
  }
});

9.drop_column

从表中删除列。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "drop_column",
  arguments: {
    table: "users",
    column: "phone_number"
  }
});

10.下拉式桌子

删除表(需要确认)。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "drop_table",
  arguments: {
    table: "old_table",
    confirm: true
  }
});

11.truncate_table

从表中删除所有行(需要确认)。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "truncate_table",
  arguments: {
    table: "logs",
    confirm: true
  }
});

12.列表_数据库

列出服务器上所有可访问的数据库。

13.获取索引

列出表上的所有索引。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "get_indexes",
  arguments: {
    table: "users"
  }
});

14.获取外汇

列出表的所有外键关系。

use_mcp_tool({
  server_name: "mysql",
  tool_name: "get_foreign_keys",
  arguments: {
    table: "orders"
  }
});

MCP资源

将数据库架构作为资源浏览:

URI 描述
mysql://schema 数据库概述(表数、大小)
mysql://tables 列出所有包含元数据的表
mysql://tables/{name} 表详细信息(列、索引、FK)
mysql://tables/{name}/columns 列定义
mysql://tables/{name}/indexes 指数定义
mysql://tables/{name}/sample 表格中的5行示例

MCP提示

常见操作的预构建提示:

提示 描述
generate-select 为表构建SELECT查询
generate-insert 生成INSERT模板
generate-update 生成UPDATE模板
explain-schema 自然语言模式解释
suggest-indexes 表的索引建议

特性

  • 14个数据库工具 用于查询、模式管理等
  • MCP资源 用于浏览数据库模式
  • MCP提示 用于生成SQL查询
  • 多种连接方式(URL、工作区、直接)
  • 通过自动清理实现安全的连接处理
  • 查询参数的准备语句支持
  • 全面的错误处理和验证
  • TypeScript支持

安全

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

错误处理

服务器为以下对象提供详细的错误消息:

  • 连接失败
  • 查询或参数无效
  • 缺少配置
  • 数据库错误
  • 架构验证错误

贡献

欢迎投稿!请随时向提交拉取请求https://github.com/enemyrr/mcp-mysql-server

许可证

麻省理工学院