Three calls take you from "which databases are here" to "what columns does this table have", which is exactly the path a query against unfamiliar data starts down. execute_query is stated as read-only, so this server is not the thing that writes to your database — but list_databases and the per-call database parameter mean its reach is whatever the MySQL user was granted, and that narrowing belongs in the grant rather than here.
Four read tools over a MySQL connection: the databases it can see, the tables inside one, a table's schema, and a read-only query.
- Every database the connection is able to reach
- The tables in a database you name
- The schema for a specific table
- A read-only SQL query, run against a database you name
A reachable MySQL server and five environment variables that address it: MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD and MYSQL_DATABASE.
One command plus a key — npm install -g mysql-mcp-server, then supply credentials
