mcpField
M
mcp_mysql_server

mcp_mysql_server

本地服务
github.com/wenb1n-dev数据库25061 周前更新

关于 mcp_mysql_server

mcp_mysql_server_pro 是一个 MCP 服务,用于安全地与 MySQL 数据库交互,除常规增删改查外还提供数据库异常分析能力。它支持 STDIO、SSE 和 Streamable HTTP 传输模式,并可通过自定义工具进行扩展。

主要功能

  1. 01支持 STDIO、SSE、Streamable HTTP 传输模式
  2. 02支持 OAuth2.0 认证
  3. 03readonly、writer、admin 三级权限控制
  4. 04SQL 执行计划分析与优化建议
  5. 05数据库健康状态与表锁分析
  6. 06按表注释查询表名和字段

适用场景

  1. 01为 AI 助手提供受权限控制的 MySQL 查询能力
  2. 02分析慢 SQL 的执行计划与索引情况
  3. 03排查死锁、表锁等数据库异常

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

简体中文 English MseeP.ai Security Assessment Badge MCPHub

mcp_mysql_server_pro

简介

mcp_mysql_server_pro 不仅支持 MySQL 的 CRUD 操作,还具备数据库异常分析能力,并方便开发者通过自定义工具进行扩展。

  • 支持所有 Model Context Protocol(MCP)传输模式(STDIO、SSE、Streamable Http)
  • 支持 OAuth2.0
  • 支持执行多条 SQL 语句,语句之间以“;”分隔
  • 支持根据表注释查询数据库表名和字段
  • 支持 SQL 执行计划分析
  • 支持将中文字段转换为拼音
  • 支持表锁分析
  • 支持数据库健康状态分析
  • 支持三种角色的权限控制:readonly、writer 和 admin
    "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"]  # 管理员权限
    
  • 支持调用提示词模板

工具列表

工具名称描述
execute_sqlSQL 执行工具,可根据权限配置执行 ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", "CREATE", "ALTER", "DROP", "TRUNCATE"] 命令
get_chinese_initials将中文字段名转换为拼音首字母
get_db_health_running分析 MySQL 健康状态(连接状态、事务状态、运行状态、锁状态检测)
get_table_desc根据表名搜索数据库中的表结构,支持多表查询
get_table_index根据表名搜索数据库中的表索引,支持多表查询
get_table_lock检查当前 MySQL 服务中是否存在行级锁或表级锁
get_table_name根据表注释和描述搜索数据库中的表名
get_db_health_index_usage获取当前连接的 mysql 数据库的索引使用情况,包括冗余索引、性能不佳的索引,以及查询耗时超过 30 秒的未使用索引排名前 5 的情况
optimize_sql专业 SQL 性能优化工具,可根据 MySQL 执行计划、表结构信息、表数据量和表索引提供专家级优化建议。
use_prompt_queryTableData使用内置提示词让模型在 MCP 中构建工具链式调用(这不是常用的固定工具,需要修改代码才能启用,详情请参阅此类)

提示词列表

提示词名称描述
analyzing-mysql-prompt用于分析 MySQL 相关问题的提示词
query-table-data-prompt使用工具查询表数据的提示词。如果描述为空,则会将其初始化为 MySQL 数据库查询助手

使用说明

安装和配置
  1. 安装软件包
pip install mysql_mcp_server_pro
  1. 配置环境变量 创建一个 .env 文件,内容如下:
# MySQL Database Configuration
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database
# Optional, default is 'readonly'. Available values: readonly, writer, admin
MYSQL_ROLE=readonly
  1. 运行服务
# SSE mode
mysql_mcp_server_pro --mode sse --envfile /path/to/.env

## Streamable Http mode (default)
mysql_mcp_server_pro --envfile /path/to/.env

# Streamable Http  oauth Authentication
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"
			}
		}
	}
}
使用 Streamable Http 模式进行本地开发
  • 使用 uv 启动服务

将以下内容添加到 MCP 客户端工具中,例如 cursor、cline 等。

MCP JSON 如下:

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

修改 .env 文件内容,根据你的数据库信息更新数据库连接信息:

# MySQL Database Configuration
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=admin

启动命令:

# Download dependencies
uv sync

# Start
uv run -m mysql_mcp_server_pro.server

# Custom env file location
uv run -m mysql_mcp_server_pro.server --envfile /path/to/.env

# oauth Authentication
uv run -m mysql_mcp_server_pro.server --oauth true
使用 SSE 模式进行本地开发
  • 使用 uv 启动服务

将以下内容添加到 MCP 客户端工具中,例如 cursor、cline 等。

MCP JSON 如下:

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

修改 .env 文件内容,根据你的数据库信息更新数据库连接信息:

# MySQL Database Configuration
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=admin

启动命令:

# Download dependencies
uv sync

# Start
uv run -m mysql_mcp_server_pro.server --mode sse

# Custom env file location
uv run -m mysql_mcp_server_pro.server --mode sse --envfile /path/to/.env
使用 STDIO 模式进行本地开发

将以下内容添加到 MCP 客户端工具中,例如 cursor、cline 等。

MCP JSON 如下:

{
  "mcpServers": {
      "operateMysql": {
        "isActive": true,
        "name": "operateMysql",
        "command": "uv",
        "args": [
          "--directory",
          "/Volumes/mysql_mcp_server_pro/src/mysql_mcp_server_pro",    # Replace this with your project path
          "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. 创建新表并插入数据,提示词格式如下:
# Task
   Create an organizational structure table with the following structure: department name, department number, parent department, is valid.
# Requirements
 - Table name: department
 - Common fields need indexes
 - Each field needs comments, table needs comment
 - Generate 5 real data records after creation

image image

  1. 根据表注释查询数据,提示词如下:
Search for data with Department name 'Executive Office' in Department organizational structure table

image

  1. 分析慢 SQL,提示词如下:
select * from t_jcsjzx_hjkq_cd_xsz_sk xsz
left join t_jcsjzx_hjkq_jcd jcd on jcd.cddm = xsz.cddm 
Based on current index situation, review execution plan and provide optimization suggestions in markdown format, including table index status, execution details, and optimization recommendations
  1. 分析 SQL 死锁问题,提示词如下:
update t_admin_rms_zzjg set sfyx = '0' where xh = '1' is stuck, please analyze the cause

image

  1. 分析健康状态的提示词如下
Check the current health status of MySQL

image

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。