Back to Browse

Mysql Legacy MCP Server

by Rufflet
Data & AnalyticsLow Risk10.0Local
Free

Inspect and query MySQL 5.0–5.6; opt-in INSERT/UPDATE/DELETE/DDL. Live-verified 5.0–8.0.

About

Inspect and query MySQL 5.0–5.6; opt-in INSERT/UPDATE/DELETE/DDL. Live-verified 5.0–8.0.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (4 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.

5 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

database

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Database host or local tunnel endpointOptional

Environment variable: MYSQL_LEGACY_HOST

Dedicated database reader accountOptional

Environment variable: MYSQL_LEGACY_USER

Nonempty database account passwordRequired

Environment variable: MYSQL_LEGACY_PASSWORD

TCP port, 1–65535Optional

Environment variable: MYSQL_LEGACY_PORT

Optional default databaseOptional

Environment variable: MYSQL_LEGACY_DATABASE

Hide mysql and information_schema from listingsOptional

Environment variable: MYSQL_LEGACY_HIDE_SYSTEM_DATABASES

Driver query timeout, 100–60000 millisecondsOptional

Environment variable: MYSQL_LEGACY_QUERY_TIMEOUT

SELECT response row limit, 1–1000Optional

Environment variable: MYSQL_LEGACY_MAX_ROWS

SELECT row-data JSON byte limit, 1024–1048576Optional

Environment variable: MYSQL_LEGACY_MAX_RESULT_BYTES

Connection-establishment timeout, 100–60000 millisecondsOptional

Environment variable: MYSQL_LEGACY_CONNECT_TIMEOUT

Pooled connection limit, 1–50Optional

Environment variable: MYSQL_LEGACY_POOL_SIZE

Enable the mysql_legacy_insert toolOptional

Environment variable: MYSQL_LEGACY_ALLOW_INSERT

Enable the mysql_legacy_update tool (WHERE clause always required)Optional

Environment variable: MYSQL_LEGACY_ALLOW_UPDATE

Enable the mysql_legacy_delete tool (WHERE clause always required)Optional

Environment variable: MYSQL_LEGACY_ALLOW_DELETE

Enable the mysql_legacy_ddl tool (table-level statements only)Optional

Environment variable: MYSQL_LEGACY_ALLOW_DDL

Disable the read-only transaction wrap around mysql_legacy_select on MySQL 5.6.5+Optional

Environment variable: MYSQL_LEGACY_DISABLE_READ_ONLY_TRANSACTIONS

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-rufflet-mysql-legacy-mcp": {
      "env": {
        "MYSQL_LEGACY_HOST": "your-mysql-legacy-host-here",
        "MYSQL_LEGACY_PORT": "your-mysql-legacy-port-here",
        "MYSQL_LEGACY_USER": "your-mysql-legacy-user-here",
        "MYSQL_LEGACY_DATABASE": "your-mysql-legacy-database-here",
        "MYSQL_LEGACY_MAX_ROWS": "your-mysql-legacy-max-rows-here",
        "MYSQL_LEGACY_PASSWORD": "your-mysql-legacy-password-here",
        "MYSQL_LEGACY_ALLOW_DDL": "your-mysql-legacy-allow-ddl-here",
        "MYSQL_LEGACY_POOL_SIZE": "your-mysql-legacy-pool-size-here",
        "MYSQL_LEGACY_ALLOW_DELETE": "your-mysql-legacy-allow-delete-here",
        "MYSQL_LEGACY_ALLOW_INSERT": "your-mysql-legacy-allow-insert-here",
        "MYSQL_LEGACY_ALLOW_UPDATE": "your-mysql-legacy-allow-update-here",
        "MYSQL_LEGACY_QUERY_TIMEOUT": "your-mysql-legacy-query-timeout-here",
        "MYSQL_LEGACY_CONNECT_TIMEOUT": "your-mysql-legacy-connect-timeout-here",
        "MYSQL_LEGACY_MAX_RESULT_BYTES": "your-mysql-legacy-max-result-bytes-here",
        "MYSQL_LEGACY_HIDE_SYSTEM_DATABASES": "your-mysql-legacy-hide-system-databases-here",
        "MYSQL_LEGACY_DISABLE_READ_ONLY_TRANSACTIONS": "your-mysql-legacy-disable-read-only-transactions-here"
      },
      "args": [
        "-y",
        "mysql-legacy-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub 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.

Reviews

No reviews yet

Be the first to review this server!