返回市场
mysql_mcp服务器_专业版

mysql_mcp服务器_专业版

作者:wenb1n-dev276 星标更新:2025-08-28

项目介绍

【技术文档摘要】: 简体中文 English MseeP.ai Security Assessment Badge MCPHub

mcp_mysql_server_pro

简介

mcp_mysql_server_pro 不仅支持 MySQL 的 CRUD 操作,还包含了数据库异常分析能力,并且让开发者能够轻松地通过自定义工具进行扩展。

  • 支持所有模型上下文协议(MCP)传输模式(STDIO、SSE、可流式 HTTP)
  • 支持 OAuth2.0
  • 支持多条 SQL 执行,用分号“;”隔开
  • 支持根据表注释查询数据库表名和字段
  • 支持 SQL 执行计划分析
  • 支持中文字段转拼音
  • 支持表锁分析
  • 支持数据库健康状态分析
  • 支持三种角色的权限控制:只读、写入和管理员
    "readonly": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN"],  # 只读权限
    "writer": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE"],  # 读写权限
    "admin": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", 
             "CREATE", "ALTER", "DROP", "TRUNCATE"]  # 管理员权限
    
  • 支持提示模板调用

工具列表

| 工具名称 | 描述 | 基于以上信息,请执行以下指令:您是一位负责将中文内容翻译成英文的专业翻译人员。请帮我翻译原始内容 一个可以执行 ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", "CREATE", "ALTER", "DROP", "TRUNCATE"] 命令的 SQL 执行工具,基于权限配置 将中文字段名转换为拼音首字母 get_db_health_running | 分析 MySQL 健康状态(连接状态、事务状态、运行状态、锁状态检测) | get_table_desc | 根据表名在数据库中搜索表结构,支持多表查询 | | get_table_index | 根据表名在数据库中搜索表索引,支持多表查询 | get_table_lock | 检查当前 MySQL 服务器是否存在行级锁或表级锁 根据表注释和描述在数据库中搜索表名。 获取当前连接的 MySQL 数据库的索引使用情况,包括冗余索引情况、性能不佳的索引情况以及查询时间大于30秒的前5个未使用的索引情况。 Optimize_SQL 是一款专业的 SQL 性能优化工具,基于 MySQL 执行计划、表结构信息、表数据量和表索引提供专家优化建议。 | use_prompt_queryTableData | 使用内置提示让模型构建 mcp 中的工具链调用(不是一个常用的固定工具,需要修改代码才能启用,详见此类的说明)

提示列表

| 提示名称 | 描述 | 基于以上信息,以下是原始内容的翻译: | analyzing-mysql-prompt | 这是一个用于分析 MySQL 相关问题的提示 | 这是一个用于通过工具查询表数据的提示。如果描述为空,则初始化为 MySQL 数据库查询助手。

使用说明

安装与配置

  1. 安装包
pip install mysql_mcp_server_pro
  1. 配置环境变量 创建一个包含以下内容的 .env 文件:
# MySQL 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
# 可选,默认值为 'readonly'。可用值:readonly、writer、admin
MYSQL_ROLE=readonly
  1. 运行服务
# SSE 模式
mysql_mcp_server_pro --mode sse --envfile /path/to/.env

## 可流式 HTTP 模式(默认)
mysql_mcp_server_pro --envfile /path/to/.env

# 可流式 HTTP OAuth 认证
mysql_mcp_server_pro --oauth true

  1. MCP 客户端

前往查看“使用 uv 启动服务” ^_^

注意:

  • .env 文件应放置在您运行命令的目录中,或者使用 --envfile 参数指定路径。
  • 您也可以直接在环境中设置这些变量
  • 确保数据库配置正确并能够连接

使用 uvx 进行客户端配置

  • 此方法可以直接在支持 MCP 的客户端中使用,无需下载源代码。例如,通义千问插件、trae 编辑器等。
{
	"mcpServers": {
		"mysql": {
			"command": "uvx",
			"args": [
				"--from",
				"mysql_mcp_server_pro",
				"mysql_mcp_server_pro",
				"--mode",
				"stdio"
			],
			"env": {
				"MYSQL_HOST": "192.168.x.xxx",
				"MYSQL_PORT": "3306",
				"MYSQL_USER": "root",
				"MYSQL_PASSWORD": "root",
				"MYSQL_DATABASE": "a_llm",
				"MYSQL_ROLE": "admin"
			}
		}
	}
}

使用可流式 HTTP 模式的本地开发

  • 使用 uv 启动服务

在您的 mcp 客户端工具中添加以下内容,如 cursor、cline 等。

原始内容如下:

{
  "mcpServers": {
    "mysql_mcp_server_pro": {
      "name": "mysql_mcp_server_pro",
      "type": "streamableHttp",
      "description": "",
      "isActive": true,
      "url": "http://localhost:3000/mcp/"
    }
  }
}

修改 .env 文件内容以更新数据库连接信息,使用您的数据库详情:

# MySQL 数据库配置
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=admin

启动命令:

# 下载依赖
uv sync

# 启动
uv run -m mysql_mcp_server_pro.server

# 自定义 env 文件位置
uv run -m mysql_mcp_server_pro.server --envfile /path/to/.env

# OAuth 认证
uv run -m mysql_mcp_server_pro.server --oauth true

使用 SSE 模式的本地开发

  • 使用 uv 启动服务

在您的 MCP 客户端工具中添加以下内容,如 cursor、cline 等。

原始内容是英文,目标语言也是英文。由于原始内容已经是英文,因此翻译保持不变。以下是原始内容的翻译(与原文相同):

{
  "mcpServers": {
    "mysql_mcp_server_pro": {
      "name": "mysql_mcp_server_pro",
      "description": "",
      "isActive": true,
      "url": "http://localhost:9000/sse"
    }
  }
}

修改 .env 文件内容以更新数据库连接信息,使用您的数据库详情:

# MySQL 数据库配置
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=admin

启动命令:

# 下载依赖
uv sync

# 启动
uv run -m mysql_mcp_server_pro.server --mode sse

# 自定义 env 文件位置
uv run -m mysql_mcp_server_pro.server --mode sse --envfile /path/to/.env

使用 STDIO 模式的本地开发

在您的 mcp 客户端工具中添加以下内容,如 cursor、cline 等。

这里是原始内容的翻译:

{
  "mcpServers": {
      "operateMysql": {
        "isActive": true,
        "name": "operateMysql",
        "command": "uv",
        "args": [
          "--directory",
          "/Volumes/mysql_mcp_server_pro/src/mysql_mcp_server_pro",    # 替换为您自己的项目路径
          "run",
          "-m",
          "mysql_mcp_server_pro.server",
          "--mode",
          "stdio"
        ],
        "env": {
          "MYSQL_HOST": "localhost",
          "MYSQL_PORT": "3306",
          "MYSQL_USER": "root", 
          "MYSQL_PASSWORD": "123456",
          "MYSQL_DATABASE": "a_llm",
          "MYSQL_ROLE": "admin"
       }
    }
  }
} 

自定义工具扩展

  1. 在 handles 包中添加一个新的工具类,继承自 BaseHandler,并实现 get_tool_description 和 run_tool 方法

  2. init.py 中导入新工具,使其在服务器中可用

OAuth2.0 认证

  1. 启动认证服务。默认情况下,它使用内置的 OAuth 2.0 密码模式认证。您可以在 env 文件中修改自己的认证服务地址。
uv run -m mysql_mcp_server_pro.server --oauth true
  1. 访问 http://localhost:3000/login 的认证服务。默认用户名和密码配置在 env 文件中。 image

  2. 复制令牌并将其添加到请求头中,例如: image

{
  "mcpServers": {
    "mysql_mcp_server_pro": {
      "name": "mysql_mcp_server_pro",
      "type": "streamableHttp",
      "description": "",
      "isActive": true,
      "url": "http://localhost:3000/mcp/",
      "headers": {
        "authorization": "bearer TOKEN_VALUE"
      }
    }
  }
}

示例

  1. 创建新表并插入数据,提示格式如下:
# 任务
   创建一个组织结构表,具有以下结构:部门名称、部门编号、上级部门、是否有效。
# 要求
 - 表名:department
 - 公共字段需要索引
 - 每个字段都需要注释,表需要注释
 - 创建后生成5条真实数据记录

image image

  1. 根据表注释查询数据,提示如下:
在部门组织结构表中查找部门名称为 'Executive Office' 的数据

image

  1. 分析慢 SQL,提示如下:
select * from t_jcsjzx_hjkq_cd_xsz_sk xsz
left join t_jcsjzx_hjkq_jcd jcd on jcd.cddm = xsz.cddm 
基于当前索引情况,审查执行计划并以 Markdown 格式提供优化建议,包括表索引状态、执行细节和优化建议
  1. 分析 SQL 死锁问题,提示如下:
update t_admin_rms_zzjg set sfyx = '0' where xh = '1' 卡住,请分析原因

image

  1. 分析健康状态提示如下
检查当前 MySQL 的健康状态

image