v1.2.0
Added
- MySQL and MariaDB support:
engine: mysqlorengine: mariadbwith amysql+pymysql://URL.
All seven tools work on them. MySQL and MariaDB have no schema level, soschemais always
nullin responses and adb.tablename is rejected as a cross-database reference. execute_sqlandpii_safeon MySQL and MariaDB, withLIMITin place ofTOP. Apiirule
for these engines must not setschema.TIMEresults are returned astimevalues within a
day; longer values fail withDATABASE_ERROR.- Stored procedures on MySQL and MariaDB report the body from
information_schema.ROUTINES, which
isnullwhen the login may not see it. COUNT(*)is accepted on themysqldialect.
Changed
- Breaking: the project is renamed from
sql-mini-mcptosql-safe-mcp. The package, the
Python module (sql_safe_mcp), the command (sql-safe-mcp), the example configuration file, and
every environment variable (SQL_MINI_MCP_CONFIGis nowSQL_SAFE_MCP_CONFIG) change; the old
names are not kept as aliases. Thesql-mini-mcppackage on PyPI becomes a deprecated shim that
depends onsql-safe-mcp. - The
QUERY_REJECTEDreason for a non-integer row limit now reads
TOP/LIMIT must be a non-negative integer literal.
Security
- MySQL and MariaDB sessions drop
NO_BACKSLASH_ESCAPES, so the string escaping in the generated
SQL always means what the validated query means, even if the server enables that mode. - The validation pipeline takes its SQL dialect only from the trusted server configuration and
requires it explicitly; policy, tokens, and the validated query are shared by every engine.
Install and run directly from this tag:
uvx --from git+https://github.com/proprock/sql-safe-mcp@v1.2.0 sql-safe-mcp
See README.md for configuration and usage.