mcpField
M
MySQL Legacy MCP

MySQL Legacy MCP

本地服务
github.com数据库05 周前更新

关于 MySQL Legacy MCP

MySQL Legacy MCP 是用于检查和查询旧版 MySQL 数据库的 stdio 服务,已对 5.0–5.6 版本进行实时验证。它面向处理旧版架构的 Agent 和开发者;写入工具默认关闭,可逐项启用。

主要功能

  1. 01带解析器检查和结果限制的 SELECT
  2. 02基于 SHOW 的架构与索引检查
  3. 03可选启用 INSERT、UPDATE、DELETE 和 DDL
  4. 04UPDATE 与 DELETE 必须带 WHERE 子句
  5. 05MySQL 连接池

适用场景

  1. 01检查旧版 MySQL 数据库架构
  2. 02通过 MCP 客户端查询 MySQL 5.0–5.6
  3. 03按需启用特定写入操作

MCP 相关

stdio MCP 服务提供 SELECT 查询、数据库与架构检查工具,以及可逐项选择启用的写入操作工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"rufflet-mysql-legacy": {
"command": "npx",
"args": [
"-y",
"mysql-legacy-mcp"
],
"env": {
"MYSQL_LEGACY_HOST": "<MYSQL_LEGACY_HOST>",
"MYSQL_LEGACY_USER": "<MYSQL_LEGACY_USER>",
"MYSQL_LEGACY_PASSWORD": "<MYSQL_LEGACY_PASSWORD>",
"MYSQL_LEGACY_PORT": "<MYSQL_LEGACY_PORT>",
"MYSQL_LEGACY_DATABASE": "<MYSQL_LEGACY_DATABASE>",
"MYSQL_LEGACY_HIDE_SYSTEM_DATABASES": "<MYSQL_LEGACY_HIDE_SYSTEM_DATABASES>",
"MYSQL_LEGACY_QUERY_TIMEOUT": "<MYSQL_LEGACY_QUERY_TIMEOUT>",
"MYSQL_LEGACY_MAX_ROWS": "<MYSQL_LEGACY_MAX_ROWS>",
"MYSQL_LEGACY_MAX_RESULT_BYTES": "<MYSQL_LEGACY_MAX_RESULT_BYTES>",
"MYSQL_LEGACY_CONNECT_TIMEOUT": "<MYSQL_LEGACY_CONNECT_TIMEOUT>",
"MYSQL_LEGACY_POOL_SIZE": "<MYSQL_LEGACY_POOL_SIZE>",
"MYSQL_LEGACY_ALLOW_INSERT": "<MYSQL_LEGACY_ALLOW_INSERT>",
"MYSQL_LEGACY_ALLOW_UPDATE": "<MYSQL_LEGACY_ALLOW_UPDATE>",
"MYSQL_LEGACY_ALLOW_DELETE": "<MYSQL_LEGACY_ALLOW_DELETE>",
"MYSQL_LEGACY_ALLOW_DDL": "<MYSQL_LEGACY_ALLOW_DDL>",
"MYSQL_LEGACY_DISABLE_READ_ONLY_TRANSACTIONS": "<MYSQL_LEGACY_DISABLE_READ_ONLY_TRANSACTIONS>"
}
}
}
}
启动命令npx -y mysql-legacy-mcp
需要配置的环境变量
MYSQL_LEGACY_HOSTDatabase host or local tunnel endpoint
MYSQL_LEGACY_USERDedicated database reader account
MYSQL_LEGACY_PASSWORD密钥Nonempty database account password
MYSQL_LEGACY_PORTTCP port, 1–65535
MYSQL_LEGACY_DATABASEOptional default database
MYSQL_LEGACY_HIDE_SYSTEM_DATABASESHide mysql and information_schema from listings
MYSQL_LEGACY_QUERY_TIMEOUTDriver query timeout, 100–60000 milliseconds
MYSQL_LEGACY_MAX_ROWSSELECT response row limit, 1–1000
MYSQL_LEGACY_MAX_RESULT_BYTESSELECT row-data JSON byte limit, 1024–1048576
MYSQL_LEGACY_CONNECT_TIMEOUTConnection-establishment timeout, 100–60000 milliseconds
MYSQL_LEGACY_POOL_SIZEPooled connection limit, 1–50
MYSQL_LEGACY_ALLOW_INSERTEnable the mysql_legacy_insert tool
MYSQL_LEGACY_ALLOW_UPDATEEnable the mysql_legacy_update tool (WHERE clause always required)
MYSQL_LEGACY_ALLOW_DELETEEnable the mysql_legacy_delete tool (WHERE clause always required)
MYSQL_LEGACY_ALLOW_DDLEnable the mysql_legacy_ddl tool (table-level statements only)
MYSQL_LEGACY_DISABLE_READ_ONLY_TRANSACTIONSDisable the read-only transaction wrap around mysql_legacy_select on MySQL 5.6.5+

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmysql-legacy-mcp0.2.1

工具

11

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

MySQL Legacy MCP

CI npm License: MIT Glama Indexed on TensorBlock MCP Index

通过 stdio 连接旧版 MySQL 5.0–5.6 数据库的 MCP 服务。该软件包发布在 npm 上,名称为 mysql-legacy-mcp;在官方 MCP Registry 中的名称为 io.github.Rufflet/mysql-legacy-mcp。

它使用兼容 MySQL 5.1 的 SQL 和 SHOW 元数据查询。实时 MCP 测试覆盖 MySQL 5.0.51a、5.1.73、5.5.62 和 5.6.51。它刻意保持精简:默认只读;INSERT/UPDATE/DELETE/DDL 作为可选工具,除非明确启用,否则处于禁用状态;不提供 TLS 配置,也不提供自定义身份验证或字符集选项。

适合你吗?

  • 你需要 AI agent 检查 MySQL 5.0、5.1、5.5 或 5.6 数据库。
  • 你目前使用的 MySQL MCP 服务假设数据库为 MySQL 5.7 或更高版本,或依赖 JSON 函数或较新的 information_schema 字段。
  • 你需要检查架构并执行 SELECT 查询,同时默认关闭写入操作,并按语句类型选择性启用。

如果你遇到 ER_NOT_SUPPORTED_AUTH_MODE、HANDSHAKE_INSECURE_AUTH、Old password authentication is not supported、旧版 TLS 错误,或乱码 cp1251 / latin1 文本,请先阅读故障排除。该软件包无法解决所有这些问题。

要求

  • Node.js 18.14.1 或更高版本
  • npm
  • 一个仅具备所需读取权限和元数据权限的专用 MySQL 账号

收录平台

安装始终通过 npm 在本地使用 stdio(npx -y mysql-legacy-mcp)。目录页面并不能加快安装;它们只是发现索引。官方 MCP Registry 是机器可读的数据来源(io.github.Rufflet/mysql-legacy-mcp),供聚合平台采集,其中包括来自 server.json 的环境变量元数据。支持该 Registry 的客户端可以据此预填配置。

其他目录的维护者提交状态见 docs/RELEASE_CHECKLIST.md。

快速安装

Claude Code
claude mcp add --transport stdio mysql-legacy \
  --env MYSQL_LEGACY_HOST=127.0.0.1 \
  --env MYSQL_LEGACY_USER=legacy_reader \
  --env MYSQL_LEGACY_PASSWORD=replace-with-a-secret \
  --env MYSQL_LEGACY_DATABASE=legacy_app \
  -- npx -y mysql-legacy-mcp
Codex
codex mcp add mysql-legacy \
  --env MYSQL_LEGACY_HOST=127.0.0.1 \
  --env MYSQL_LEGACY_USER=legacy_reader \
  --env MYSQL_LEGACY_PASSWORD=replace-with-a-secret \
  --env MYSQL_LEGACY_DATABASE=legacy_app \
  -- npx -y mysql-legacy-mcp
Cursor 和其他客户端
{
  "mcpServers": {
    "mysql-legacy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mysql-legacy-mcp"],
      "env": {
        "MYSQL_LEGACY_HOST": "127.0.0.1",
        "MYSQL_LEGACY_USER": "legacy_reader",
        "MYSQL_LEGACY_PASSWORD": "replace-with-a-secret",
        "MYSQL_LEGACY_DATABASE": "legacy_app"
      }
    }
  }
}

请使用客户端所需的架构。Claude Desktop、Codex、VS Code、Windsurf、Gemini、Trae、Qoder 等产品的完整复制粘贴式说明,请参阅安装指南。

兼容性

MySQL状态
5.0已验证:5.0.51a
5.1已验证:5.1.73
5.5已验证:5.5.62
5.6已验证:5.6.51
5.7仅验证参考:5.7.44
8.0非目标版本;不支持默认的 caching_sha2_password

每个经过测试的目标版本都通过了全部 11 个工具的测试——包括 7 个只读工具和 4 个选择启用的写入工具。测试时既检查了 MYSQL_LEGACY_ALLOW_* 标志保持默认值 false 的情况,也检查了显式启用的情况;所有测试均通过真实的 MCP stdio 会话完成。在 MySQL 5.6.5 及更高版本上,测试还实际运行了 mysql_legacy_select 使用的 START TRANSACTION READ ONLY 路径;低于该版本时,则测试了静默回退到普通查询的路径。确切的来源、测试条件和 MySQL 8.0 的边界记录在兼容性审计中。测试不涵盖 4.1 以前版本的 old_password、自定义连接字符集、TLS 或你的服务端确切的补丁级别。

与现代 MySQL MCP 服务的对比

服务声明的 MySQL 基线重点
mysql-legacy-mcp已通过实时测试:5.0–5.6默认检查旧版架构并执行 SELECT;可选择启用 INSERT/UPDATE/DELETE/DDL,且 UPDATE/DELETE 始终要求包含 WHERE 子句
@benborla29/mcp-server-mysql5.7+;推荐 8.0+TLS、SSH 隧道和可选写入等现代 MySQL 功能

这是兼容性方面的区别,不是基准测试:如果你需要现代数据库功能,请选择现代服务。

功能

  • 只读 SELECT 工具,带有解析器检查和结果大小限制;在 MySQL 5.6.5+ 上通过只读事务封装
  • 基于 SHOW 的数据库、表、列、CREATE TABLE 和索引检查
  • 可选择启用的 INSERT/UPDATE/DELETE/DDL 工具;默认均禁用,并分别受各自的 MYSQL_LEGACY_ALLOW_* 标志控制;UPDATE 和 DELETE 始终要求包含 WHERE 子句
  • 一小组池化的 MySQL 连接(MYSQL_LEGACY_POOL_SIZE);不依赖 CTE、JSON 函数或现代元数据列

工具

工具用途
mysql_legacy_ping返回 VERSION()
mysql_legacy_select执行一条已解析的 SELECT 语句
mysql_legacy_insert执行一条 INSERT 语句(可选择启用,MYSQL_LEGACY_ALLOW_INSERT)
mysql_legacy_update执行一条必须包含 WHERE 子句的 UPDATE 语句(可选择启用,MYSQL_LEGACY_ALLOW_UPDATE)
mysql_legacy_delete执行一条必须包含 WHERE 子句的 DELETE 语句(可选择启用,MYSQL_LEGACY_ALLOW_DELETE)
mysql_legacy_ddl执行一条表级 CREATE/ALTER/DROP/TRUNCATE/RENAME 语句(可选择启用,MYSQL_LEGACY_ALLOW_DDL)
mysql_legacy_list_databases列出数据库
mysql_legacy_list_tables列出表和视图
mysql_legacy_describe_table显示列
mysql_legacy_show_create_table显示表 DDL
mysql_legacy_list_indexes显示索引

文档

项目缘起

这个项目源于一项 QA/全栈工作流:需要借助 AI 检查生产环境中的 MySQL 5.1 数据库。它是一款专用工具,用于探索旧版架构并准备迁移。

贡献

请参阅 CONTRIBUTING.md,了解如何提出更改、在本地运行检查,以及兼容性声明需要提供哪些证据。快速开始:

npm ci
npm run check
npm run smoke:static

如需进行经授权的数据库测试,请参阅兼容性审计中的冒烟测试说明。

许可证

MIT。

评论

支持 Markdown

第一次接触 MCP?

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

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