mcpField
M
MySQL Legacy MCP

MySQL Legacy MCP

Local
github.comDatabases0Updated 5w ago

About MySQL Legacy MCP

MySQL Legacy MCP is a stdio server for inspecting and querying legacy MySQL databases, with live verification for versions 5.0–5.6. It targets agents and developers working with older schemas; write tools are disabled by default and enabled individually.

Key features

  1. 01SELECT with parser checks and result limits
  2. 02SHOW-based schema and index inspection
  3. 03Opt-in INSERT, UPDATE, DELETE, and DDL
  4. 04UPDATE and DELETE require a WHERE clause
  5. 05Connection pooling for MySQL

Use cases

  1. 01Inspect schemas in legacy MySQL databases
  2. 02Query MySQL 5.0–5.6 through an MCP client
  3. 03Enable specific write operations when needed

MCP support

The stdio MCP server exposes tools for SELECT queries, database and schema inspection, and individually opt-in write operations.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"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>"
}
}
}
}
Run commandnpx -y mysql-legacy-mcp
Environment variables to set
MYSQL_LEGACY_HOSTDatabase host or local tunnel endpoint
MYSQL_LEGACY_USERDedicated database reader account
MYSQL_LEGACY_PASSWORDSecretNonempty 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+

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmysql-legacy-mcp0.2.1

Tools

11

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

MySQL Legacy MCP

CI npm License: MIT Glama Indexed on TensorBlock MCP Index

MCP server for legacy MySQL 5.0–5.6 databases through stdio. The package is on npm as mysql-legacy-mcp and in the official MCP Registry as io.github.Rufflet/mysql-legacy-mcp.

It uses MySQL 5.1-compatible SQL and SHOW metadata queries. Live MCP tests cover MySQL 5.0.51a, 5.1.73, 5.5.62, and 5.6.51. It is deliberately small: read-only by default, with INSERT/UPDATE/DELETE/DDL as opt-in tools disabled unless explicitly enabled; no TLS configuration, and no custom authentication or charset options.

Is this for you?

  • You need an AI agent to inspect a MySQL 5.0, 5.1, 5.5, or 5.6 database.
  • Your current MySQL MCP server assumes MySQL 5.7+, JSON functions, or newer information_schema fields.
  • You need schema inspection and SELECT queries, with write operations off by default and opt-in per statement type.

If you are seeing ER_NOT_SUPPORTED_AUTH_MODE, HANDSHAKE_INSECURE_AUTH, Old password authentication is not supported, legacy TLS errors, or garbled cp1251 / latin1 text, read Troubleshooting first. Those symptoms are not all solved by this package.

Requirements

  • Node.js 18.14.1 or later
  • npm
  • A dedicated MySQL account with only the required read and metadata privileges

Where it is listed

Installation is always local stdio via npm (npx -y mysql-legacy-mcp). Directory pages do not make that faster; they are discovery indexes. The official MCP Registry is the machine-readable source (io.github.Rufflet/mysql-legacy-mcp) that aggregators ingest, including env-var metadata from server.json. Clients that speak that registry can pre-fill configuration from it.

Maintainer submission status for other directories is in docs/RELEASE_CHECKLIST.md.

Quick install

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 and other clients
{
  "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"
      }
    }
  }
}

Use the schema required by your client. Full copy-paste instructions for Claude Desktop, Codex, VS Code, Windsurf, Gemini, Trae, Qoder, and more are in the Installation guide.

Compatibility

MySQLStatus
5.0Verified: 5.0.51a
5.1Verified: 5.1.73
5.5Verified: 5.5.62
5.6Verified: 5.6.51
5.7Verified reference only: 5.7.44
8.0Not a target; default caching_sha2_password is unsupported

Each tested target passed all 11 tools — the 7 read-only tools plus the 4 opt-in write tools, with MYSQL_LEGACY_ALLOW_* flags checked both left at their default false and explicitly enabled — through a real MCP stdio session. On MySQL 5.6.5 and later, this also exercised the actual START TRANSACTION READ ONLY path used by mysql_legacy_select; below that version it exercised the silent plain-query fallback. Exact sources, test conditions, and the MySQL 8.0 boundary are recorded in the compatibility audit. This does not cover pre-4.1 old_password, custom connection charsets, TLS, or your server's exact patch level.

Compared with modern MySQL MCP servers

ServerStated MySQL baselineFocus
mysql-legacy-mcpVerified live: 5.0–5.6Legacy schema inspection and SELECT by default; opt-in INSERT/UPDATE/DELETE/DDL, with UPDATE/DELETE always requiring a WHERE clause
@benborla29/mcp-server-mysql5.7+; 8.0+ recommendedModern MySQL features such as TLS, SSH tunnels, and optional writes

This is a compatibility distinction, not a benchmark: choose the modern server for its modern-database features.

Features

  • Read-only SELECT tool with parser checks and result-size limits, wrapped in a read-only transaction on MySQL 5.6.5+
  • SHOW-based database, table, column, CREATE TABLE, and index inspection
  • Opt-in INSERT/UPDATE/DELETE/DDL tools, each disabled by default and gated by its own MYSQL_LEGACY_ALLOW_* flag; UPDATE and DELETE always require a WHERE clause
  • A small pooled set of MySQL connections (MYSQL_LEGACY_POOL_SIZE); no reliance on CTEs, JSON functions, or modern metadata columns

Tools

ToolPurpose
mysql_legacy_pingReturn VERSION()
mysql_legacy_selectRun one parsed SELECT statement
mysql_legacy_insertRun one INSERT statement (opt-in, MYSQL_LEGACY_ALLOW_INSERT)
mysql_legacy_updateRun one UPDATE statement with a required WHERE clause (opt-in, MYSQL_LEGACY_ALLOW_UPDATE)
mysql_legacy_deleteRun one DELETE statement with a required WHERE clause (opt-in, MYSQL_LEGACY_ALLOW_DELETE)
mysql_legacy_ddlRun one table-level CREATE/ALTER/DROP/TRUNCATE/RENAME statement (opt-in, MYSQL_LEGACY_ALLOW_DDL)
mysql_legacy_list_databasesList databases
mysql_legacy_list_tablesList tables and views
mysql_legacy_describe_tableShow columns
mysql_legacy_show_create_tableShow table DDL
mysql_legacy_list_indexesShow indexes

Documentation

Why this exists

This project came from a QA/fullstack workflow that needed AI-assisted inspection of a production MySQL 5.1 database. It is a focused utility for exploring legacy schemas and preparing migrations.

Contributing

See CONTRIBUTING.md for how to propose changes, run checks locally, and what evidence a compatibility claim needs. Quick start:

npm ci
npm run check
npm run smoke:static

For authorized database testing, see the smoke-test instructions in the compatibility audit.

License

MIT.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.