The validation layer is the point: a named set of destructive statements is refused before it reaches MySQL, and the delete-everything pattern is caught specifically. That is a floor, not a permission model — the account in MYSQL_USER still decides the real reach, and this is where you narrow it. Note the project's documentation is written in Portuguese.
A small MySQL server with a validation layer in front of the connection. Queries are checked before they run, table names are sanitised, and the connection is reused across calls. Alongside the two tools it publishes the database, table and schema listings as resources.
- SQL executed against the configured database, with the statement validated first
- The structure of a named table described
- The available databases, the current database's tables and the full schema, published as readable resources
- DROP DATABASE and DROP TABLE refused, and DELETE guarded against the WHERE 1=1 pattern
Node.js, a reachable MySQL server, and five values in the environment that address it: MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD and MYSQL_DATABASE.
Build from source — clone the repository and build it, then point your client at the binary
