# mysql-mcp v3.0.0 Release Notes
## π Major Release β February 26, 2026
**mysql-mcp v3.0.0** is a landmark release delivering **Code Mode with worker-thread sandbox isolation**, **OAuth 2.1 authentication**, **deterministic error handling** across all 192 tools, and hundreds of bug fixes and security hardening improvements.
### β¨ Highlights
#### Code Mode (`mysql_execute_code`)
New sandboxed code execution tool enabling AI agents to compose multi-step MySQL workflows as JavaScript/TypeScript code. Features:
- **Worker-thread isolation** β separate V8 isolate via `worker_threads` with `MessagePort` RPC bridge
- **Readonly enforcement** β write methods return structured errors when `readonly: true`
- **Memory limits** β enforced `resourceLimits` (`maxOldGenerationSizeMb`, `maxYoungGenerationSizeMb`)
- **Full API access** β all 24 tool groups available via `mysql.*` namespace
- **Auto-injection** β `mysql_execute_code` included in all tool filter presets
#### OAuth 2.1 + Configurable Server Host
- HTTP/SSE transport with `--server-host` / `MCP_HOST` binding configuration
- RFC 9728/8414 compliance with granular scopes (`read`, `write`, `admin`, `full`, `db:*`, `table:*:*`)
#### Deterministic Error Handling
Every tool now returns structured `{success, error}` responses β no raw exceptions, no silent failures. Agents get actionable context instead of cryptic MySQL error codes.
#### Parameter Aliases (Split Schema Pattern)
Tools accept alternative parameter names automatically normalized via Zod schema preprocessing: `table`/`tableName`/`name`, `query`/`sql`, `where`/`filter`, `column`/`col`.
### π Security
- **Worker sandbox API bridge** β `MessagePort`-based RPC for Code Mode isolation
- **Code Mode readonly enforcement** β write tools blocked when `readonly: true`
- **SQL injection fixes** β `mysql_doc_find` filter, `mysql_create_schema` charset/collation, `mysql_security_user_privileges` identifier quoting
- **ProxySQL credential redaction** β variables containing `password`/`credentials` auto-redacted
- **CVE patches** β `hono` timing comparison (GHSA-gq3j-xvxp-8hrf), `rollup` path traversal (GHSA-mw96-cpmx-2vgc), `ajv` ReDoS (GHSA-2g4f-4pwh-qvx6), `qs` arrayLimit bypass (GHSA-w7fw-mjwx-w883), `tar` path traversal (CVE-2026-26960)
- **HTTP security headers** β HSTS, Referrer-Policy, Permissions-Policy
- **Sandbox pattern hardening** β bracket-notation constructor access and `Reflect.construct` bypass detection
### β‘ Performance
- **Cache invalidation after DDL** β `clearSchemaCache()` on 14 DDL handlers across 7 files
- **Parallelized queries** β `SchemaManager.describeTable()` and 8 resource handlers use `Promise.all()`
- **Test suite parallelism** β 4 workers, ~37s total runtime (44% faster)
### π Breaking Changes
- **`proxysql_hostgroups` removed** β use `proxysql_connection_pool` (with `hostgroup_id` filtering) instead. Tool count: 193 β 192
- **`reason` β `error` field normalization** β all `{success: false}` error responses use `error` field; `reason` reserved for informational `{success: true, skipped: true}` responses
- **`mysql_drop_table` default** β `ifExists` default changed from `true` to `false`
- **`mysql2` 3.18.0 type** β adjusted `QueryValues` type constraint on `execute()`/`query()`
### π¦ Dependencies
- `@modelcontextprotocol/sdk`: 1.26.0 β 1.27.1
- `@types/node`: 25.2.3 β 25.3.1
- `eslint`: 10.0.0 β 10.0.2
- `mysql2`: 3.17.2 β 3.18.1
- `typescript-eslint`: 8.56.0 β 8.56.1
### ποΈ Infrastructure
- **Default branch** renamed from `master` to `main`
- **`.gitattributes`** β enforces LF line endings with CRLF exceptions for Windows scripts
- **Vitest JSON reporter** β `test-results.json` output for agent consumption
---
### Installation
```bash
# NPM
npm install -g @neverinfamous/mysql-mcp@3.0.0
# Docker
docker pull writenotenow/mysql-mcp:v3.0.0
```
**Full Changelog:** [v2.3.1...v3.0.0](https://github.com/neverinfamous/mysql-mcp/compare/v2.3.1...v3.0.0)