关于 MySQL Legacy MCP
MySQL Legacy MCP 是用于检查和查询旧版 MySQL 数据库的 stdio 服务,已对 5.0–5.6 版本进行实时验证。它面向处理旧版架构的 Agent 和开发者;写入工具默认关闭,可逐项启用。
主要功能
- 01带解析器检查和结果限制的 SELECT
- 02基于 SHOW 的架构与索引检查
- 03可选启用 INSERT、UPDATE、DELETE 和 DDL
- 04UPDATE 与 DELETE 必须带 WHERE 子句
- 05MySQL 连接池
适用场景
- 01检查旧版 MySQL 数据库架构
- 02通过 MCP 客户端查询 MySQL 5.0–5.6
- 03按需启用特定写入操作
MCP 相关
stdio MCP 服务提供 SELECT 查询、数据库与架构检查工具,以及可逐项选择启用的写入操作工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mysql-legacy-mcpMYSQL_LEGACY_HOSTDatabase host or local tunnel endpointMYSQL_LEGACY_USERDedicated database reader accountMYSQL_LEGACY_PASSWORD密钥Nonempty database account passwordMYSQL_LEGACY_PORTTCP port, 1–65535MYSQL_LEGACY_DATABASEOptional default databaseMYSQL_LEGACY_HIDE_SYSTEM_DATABASESHide mysql and information_schema from listingsMYSQL_LEGACY_QUERY_TIMEOUTDriver query timeout, 100–60000 millisecondsMYSQL_LEGACY_MAX_ROWSSELECT response row limit, 1–1000MYSQL_LEGACY_MAX_RESULT_BYTESSELECT row-data JSON byte limit, 1024–1048576MYSQL_LEGACY_CONNECT_TIMEOUTConnection-establishment timeout, 100–60000 millisecondsMYSQL_LEGACY_POOL_SIZEPooled connection limit, 1–50MYSQL_LEGACY_ALLOW_INSERTEnable the mysql_legacy_insert toolMYSQL_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
11收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
MySQL Legacy MCP
通过 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-mysql | 5.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。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。