@neverinfamous/mysql-mcp 2.3.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +1 -0
- package/.gitattributes +18 -0
- package/.github/workflows/codeql.yml +2 -2
- package/.github/workflows/docker-publish.yml +5 -5
- package/CHANGELOG.md +276 -1
- package/DOCKER_README.md +81 -40
- package/README.md +87 -46
- package/VERSION +1 -1
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +2 -0
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +50 -9
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/mysql/MySQLAdapter.d.ts +6 -0
- package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
- package/dist/adapters/mysql/MySQLAdapter.js +8 -0
- package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
- package/dist/adapters/mysql/SchemaManager.js +16 -15
- package/dist/adapters/mysql/SchemaManager.js.map +1 -1
- package/dist/adapters/mysql/prompts/index.js +10 -20
- package/dist/adapters/mysql/prompts/index.js.map +1 -1
- package/dist/adapters/mysql/prompts/proxysqlSetup.js +1 -1
- package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/docstore.js +10 -7
- package/dist/adapters/mysql/resources/docstore.js.map +1 -1
- package/dist/adapters/mysql/resources/events.js +11 -8
- package/dist/adapters/mysql/resources/events.js.map +1 -1
- package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/indexes.js +12 -15
- package/dist/adapters/mysql/resources/indexes.js.map +1 -1
- package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/innodb.js +20 -17
- package/dist/adapters/mysql/resources/innodb.js.map +1 -1
- package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/locks.js +9 -6
- package/dist/adapters/mysql/resources/locks.js.map +1 -1
- package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/performance.js +15 -15
- package/dist/adapters/mysql/resources/performance.js.map +1 -1
- package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/spatial.js +9 -6
- package/dist/adapters/mysql/resources/spatial.js.map +1 -1
- package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
- package/dist/adapters/mysql/resources/sysschema.js +12 -9
- package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/backup.js +170 -121
- package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/maintenance.js +106 -57
- package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
- package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/admin/monitoring.js +183 -101
- package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/cluster/group-replication.js +164 -120
- package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +212 -145
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
- package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/codemode/index.js +6 -4
- package/dist/adapters/mysql/tools/codemode/index.js.map +1 -1
- package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/core.js +152 -29
- package/dist/adapters/mysql/tools/core.js.map +1 -1
- package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/docstore.js +340 -163
- package/dist/adapters/mysql/tools/docstore.js.map +1 -1
- package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/events.js +284 -198
- package/dist/adapters/mysql/tools/events.js.map +1 -1
- package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/core.js +11 -39
- package/dist/adapters/mysql/tools/json/core.js.map +1 -1
- package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/enhanced.js +15 -33
- package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
- package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/json/helpers.js +13 -24
- package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
- package/dist/adapters/mysql/tools/partitioning.js +3 -0
- package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/performance/analysis.js +89 -60
- package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
- package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/performance/optimization.js +151 -127
- package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
- package/dist/adapters/mysql/tools/proxysql.d.ts +1 -1
- package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/proxysql.js +289 -176
- package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
- package/dist/adapters/mysql/tools/replication.js +75 -49
- package/dist/adapters/mysql/tools/replication.js.map +1 -1
- package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/roles.js +224 -182
- package/dist/adapters/mysql/tools/roles.js.map +1 -1
- package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/router.js +168 -67
- package/dist/adapters/mysql/tools/router.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/constraints.js +21 -3
- package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/management.js +61 -14
- package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/routines.js +27 -4
- package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/scheduled_events.js +24 -3
- package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/triggers.js +23 -2
- package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
- package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/schema/views.js +47 -7
- package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
- package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/audit.js +102 -34
- package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
- package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/data-protection.js +264 -205
- package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
- package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/security/encryption.js +137 -104
- package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/backup.js +71 -59
- package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
- package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/shell/restore.js +61 -47
- package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/geometry.js +19 -5
- package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/operations.js +42 -17
- package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/queries.js +109 -57
- package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
- package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/spatial/setup.js +103 -50
- package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/stats/comparative.js +128 -79
- package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
- package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/stats/descriptive.js +174 -102
- package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/activity.js +50 -25
- package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/performance.js +121 -66
- package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/sysschema/resources.js +101 -64
- package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
- package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/text/fulltext.js +18 -32
- package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
- package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
- package/dist/adapters/mysql/tools/transactions.js +48 -23
- package/dist/adapters/mysql/tools/transactions.js.map +1 -1
- package/dist/adapters/mysql/types/proxysql-types.d.ts +15 -0
- package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
- package/dist/adapters/mysql/types/proxysql-types.js +33 -1
- package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
- package/dist/adapters/mysql/types/router-types.d.ts +1 -1
- package/dist/adapters/mysql/types/router-types.js +1 -1
- package/dist/adapters/mysql/types/router-types.js.map +1 -1
- package/dist/adapters/mysql/types/shell-types.js +2 -2
- package/dist/adapters/mysql/types/shell-types.js.map +1 -1
- package/dist/adapters/mysql/types.d.ts +485 -21
- package/dist/adapters/mysql/types.d.ts.map +1 -1
- package/dist/adapters/mysql/types.js +546 -19
- package/dist/adapters/mysql/types.js.map +1 -1
- package/dist/auth/scopes.js +1 -1
- package/dist/auth/scopes.js.map +1 -1
- package/dist/codemode/api.d.ts +3 -2
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/api.js +80 -5
- package/dist/codemode/api.js.map +1 -1
- package/dist/codemode/sandbox-factory.js +1 -1
- package/dist/codemode/sandbox-factory.js.map +1 -1
- package/dist/codemode/types.d.ts +26 -0
- package/dist/codemode/types.d.ts.map +1 -1
- package/dist/codemode/types.js +2 -0
- package/dist/codemode/types.js.map +1 -1
- package/dist/codemode/worker-sandbox.d.ts +4 -2
- package/dist/codemode/worker-sandbox.d.ts.map +1 -1
- package/dist/codemode/worker-sandbox.js +66 -7
- package/dist/codemode/worker-sandbox.js.map +1 -1
- package/dist/codemode/worker-script.d.ts +3 -0
- package/dist/codemode/worker-script.d.ts.map +1 -1
- package/dist/codemode/worker-script.js +128 -75
- package/dist/codemode/worker-script.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +37 -31
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +1 -1
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +1 -2
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/pool/ConnectionPool.d.ts.map +1 -1
- package/dist/pool/ConnectionPool.js.map +1 -1
- package/dist/transports/http.d.ts.map +1 -1
- package/dist/transports/http.js +6 -0
- package/dist/transports/http.js.map +1 -1
- package/dist/utils/validators.d.ts +1 -1
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js.map +1 -1
- package/package.json +4 -4
- package/releases/v3.0.0-release-notes.md +81 -0
- package/src/__tests__/mocks/adapter.ts +3 -0
- package/src/__tests__/perf.test.ts +6 -6
- package/src/adapters/DatabaseAdapter.ts +58 -9
- package/src/adapters/__tests__/DatabaseAdapter.test.ts +89 -8
- package/src/adapters/mysql/MySQLAdapter.ts +17 -2
- package/src/adapters/mysql/SchemaManager.ts +21 -21
- package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +1 -1
- package/src/adapters/mysql/prompts/index.ts +12 -22
- package/src/adapters/mysql/prompts/proxysqlSetup.ts +1 -1
- package/src/adapters/mysql/resources/docstore.ts +13 -10
- package/src/adapters/mysql/resources/events.ts +12 -12
- package/src/adapters/mysql/resources/indexes.ts +17 -19
- package/src/adapters/mysql/resources/innodb.ts +23 -22
- package/src/adapters/mysql/resources/locks.ts +9 -7
- package/src/adapters/mysql/resources/performance.ts +23 -18
- package/src/adapters/mysql/resources/spatial.ts +9 -7
- package/src/adapters/mysql/resources/sysschema.ts +12 -11
- package/src/adapters/mysql/tools/__tests__/core.test.ts +126 -55
- package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -88
- package/src/adapters/mysql/tools/__tests__/events.test.ts +281 -103
- package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +128 -28
- package/src/adapters/mysql/tools/__tests__/replication.test.ts +48 -2
- package/src/adapters/mysql/tools/__tests__/roles.test.ts +15 -18
- package/src/adapters/mysql/tools/__tests__/router.test.ts +32 -5
- package/src/adapters/mysql/tools/__tests__/security.test.ts +126 -2
- package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +84 -76
- package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +47 -50
- package/src/adapters/mysql/tools/__tests__/spatial.test.ts +11 -10
- package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +54 -38
- package/src/adapters/mysql/tools/__tests__/stats.test.ts +285 -152
- package/src/adapters/mysql/tools/__tests__/transactions.test.ts +13 -13
- package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +171 -25
- package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +240 -4
- package/src/adapters/mysql/tools/admin/__tests__/monitoring-summary.test.ts +274 -0
- package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +94 -5
- package/src/adapters/mysql/tools/admin/backup.ts +193 -143
- package/src/adapters/mysql/tools/admin/maintenance.ts +118 -69
- package/src/adapters/mysql/tools/admin/monitoring.ts +201 -125
- package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +69 -0
- package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +141 -0
- package/src/adapters/mysql/tools/cluster/group-replication.ts +172 -132
- package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +231 -157
- package/src/adapters/mysql/tools/codemode/__tests__/codemode-tool.test.ts +227 -0
- package/src/adapters/mysql/tools/codemode/index.ts +5 -3
- package/src/adapters/mysql/tools/core.ts +152 -38
- package/src/adapters/mysql/tools/docstore.ts +422 -205
- package/src/adapters/mysql/tools/events.ts +334 -233
- package/src/adapters/mysql/tools/json/__tests__/core.test.ts +20 -0
- package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +82 -50
- package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +42 -3
- package/src/adapters/mysql/tools/json/core.ts +21 -42
- package/src/adapters/mysql/tools/json/enhanced.ts +22 -37
- package/src/adapters/mysql/tools/json/helpers.ts +21 -25
- package/src/adapters/mysql/tools/partitioning.ts +3 -0
- package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +98 -5
- package/src/adapters/mysql/tools/performance/__tests__/optimization-coverage.test.ts +515 -0
- package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +187 -0
- package/src/adapters/mysql/tools/performance/analysis.ts +95 -69
- package/src/adapters/mysql/tools/performance/optimization.ts +182 -153
- package/src/adapters/mysql/tools/proxysql.ts +314 -209
- package/src/adapters/mysql/tools/replication.ts +84 -57
- package/src/adapters/mysql/tools/roles.ts +274 -226
- package/src/adapters/mysql/tools/router.ts +181 -85
- package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +13 -0
- package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +60 -25
- package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +11 -0
- package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +25 -4
- package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +46 -14
- package/src/adapters/mysql/tools/schema/constraints.ts +22 -3
- package/src/adapters/mysql/tools/schema/management.ts +60 -15
- package/src/adapters/mysql/tools/schema/routines.ts +26 -4
- package/src/adapters/mysql/tools/schema/scheduled_events.ts +25 -3
- package/src/adapters/mysql/tools/schema/triggers.ts +27 -2
- package/src/adapters/mysql/tools/schema/views.ts +46 -8
- package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +90 -4
- package/src/adapters/mysql/tools/security/audit.ts +113 -39
- package/src/adapters/mysql/tools/security/data-protection.ts +293 -233
- package/src/adapters/mysql/tools/security/encryption.ts +172 -139
- package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +29 -0
- package/src/adapters/mysql/tools/shell/backup.ts +90 -73
- package/src/adapters/mysql/tools/shell/restore.ts +62 -48
- package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +22 -14
- package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +65 -51
- package/src/adapters/mysql/tools/spatial/geometry.ts +23 -7
- package/src/adapters/mysql/tools/spatial/operations.ts +60 -31
- package/src/adapters/mysql/tools/spatial/queries.ts +142 -65
- package/src/adapters/mysql/tools/spatial/setup.ts +121 -55
- package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +12 -10
- package/src/adapters/mysql/tools/stats/comparative.ts +150 -98
- package/src/adapters/mysql/tools/stats/descriptive.ts +204 -127
- package/src/adapters/mysql/tools/sysschema/__tests__/error-paths.test.ts +222 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +45 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +6 -3
- package/src/adapters/mysql/tools/sysschema/activity.ts +52 -27
- package/src/adapters/mysql/tools/sysschema/performance.ts +132 -68
- package/src/adapters/mysql/tools/sysschema/resources.ts +105 -67
- package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +45 -17
- package/src/adapters/mysql/tools/text/fulltext.ts +27 -38
- package/src/adapters/mysql/tools/transactions.ts +49 -24
- package/src/adapters/mysql/types/proxysql-types.ts +38 -1
- package/src/adapters/mysql/types/router-types.ts +1 -1
- package/src/adapters/mysql/types/shell-types.ts +2 -2
- package/src/adapters/mysql/types.ts +632 -19
- package/src/auth/__tests__/scopes.test.ts +2 -2
- package/src/auth/scopes.ts +1 -1
- package/src/codemode/__tests__/api.test.ts +417 -0
- package/src/codemode/__tests__/sandbox-factory.test.ts +158 -0
- package/src/codemode/__tests__/sandbox.test.ts +301 -0
- package/src/codemode/__tests__/security.test.ts +368 -0
- package/src/codemode/__tests__/worker-sandbox.test.ts +179 -0
- package/src/codemode/__tests__/worker-script.test.ts +226 -0
- package/src/codemode/api.ts +89 -5
- package/src/codemode/sandbox-factory.ts +1 -1
- package/src/codemode/types.ts +34 -0
- package/src/codemode/worker-sandbox.ts +74 -7
- package/src/codemode/worker-script.ts +157 -86
- package/src/constants/ServerInstructions.ts +37 -31
- package/src/filtering/ToolConstants.ts +1 -2
- package/src/filtering/__tests__/ToolFilter.test.ts +9 -9
- package/src/pool/ConnectionPool.ts +4 -1
- package/src/transports/__tests__/http.test.ts +15 -3
- package/src/transports/http.ts +12 -0
- package/src/utils/validators.ts +2 -1
- package/vitest.config.ts +3 -1
- package/CODE_MODE.md +0 -245
package/DOCKER_README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MySQL MCP Server
|
|
2
2
|
|
|
3
|
-
**Last Updated February
|
|
3
|
+
**Last Updated February 26, 2026**
|
|
4
4
|
|
|
5
5
|
[](https://github.com/neverinfamous/mysql-mcp)
|
|
6
6
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -9,31 +9,33 @@
|
|
|
9
9
|
[](https://hub.docker.com/r/writenotenow/mysql-mcp)
|
|
10
10
|
[](SECURITY.md)
|
|
11
11
|

|
|
12
|
-

|
|
13
|
+

|
|
14
14
|
|
|
15
|
-
**[📚 Full Documentation (Wiki)](https://github.com/neverinfamous/mysql-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/mysql-mcp/blob/
|
|
15
|
+
**[📚 Full Documentation (Wiki)](https://github.com/neverinfamous/mysql-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/mysql-mcp/blob/main/CHANGELOG.md)** • **[Security](https://github.com/neverinfamous/mysql-mcp/blob/main/SECURITY.md)** • **[Release Article](https://adamic.tech/articles/mysql-mcp-server)**
|
|
16
16
|
|
|
17
17
|
## The Most Comprehensive MySQL MCP Server Available
|
|
18
18
|
|
|
19
|
-
**mysql-mcp** is the definitive **Model Context Protocol server for MySQL** — empowering AI assistants like AntiGravity, Claude, Cursor, and other MCP clients with **unparalleled database capabilities**. Built for developers who demand enterprise-grade features without sacrificing ease of use.
|
|
19
|
+
**mysql-mcp** is the definitive **Model Context Protocol server for MySQL** — empowering AI assistants like AntiGravity, Claude, Cursor, and other MCP clients with **unparalleled database capabilities**, **deterministic error handling**, and **process-isolated sandboxed code execution**. Built for developers who demand enterprise-grade features without sacrificing ease of use.
|
|
20
20
|
|
|
21
21
|
### 🎯 What Sets Us Apart
|
|
22
22
|
|
|
23
|
-
| Feature
|
|
24
|
-
|
|
|
25
|
-
| **
|
|
26
|
-
| **18 Observability Resources**
|
|
27
|
-
| **19 AI-Powered Prompts**
|
|
28
|
-
| **OAuth 2.1 + Access Control**
|
|
29
|
-
| **Smart Tool Filtering**
|
|
30
|
-
| **HTTP Streaming Transport**
|
|
31
|
-
| **High-Performance Pooling**
|
|
32
|
-
| **Ecosystem Integrations**
|
|
33
|
-
| **Advanced Encryption**
|
|
34
|
-
| **
|
|
35
|
-
| **
|
|
36
|
-
| **
|
|
23
|
+
| Feature | Description |
|
|
24
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
25
|
+
| **192 Specialized Tools** | The largest MySQL tool collection for MCP — from core CRUD and native JSON functions (MySQL 5.7+) to advanced spatial/GIS, document store, and cluster management |
|
|
26
|
+
| **18 Observability Resources** | Real-time schema, performance metrics, process lists, status variables, replication status, and InnoDB diagnostics |
|
|
27
|
+
| **19 AI-Powered Prompts** | Guided workflows for query building, schema design, performance tuning, and infrastructure setup |
|
|
28
|
+
| **OAuth 2.1 + Access Control** | Enterprise-ready security with RFC 9728/8414 compliance, granular scopes (`read`, `write`, `admin`, `full`, `db:*`, `table:*:*`), and Keycloak integration |
|
|
29
|
+
| **Smart Tool Filtering** | 25 tool groups + 11 shortcuts let you stay within IDE limits while exposing exactly what you need |
|
|
30
|
+
| **HTTP Streaming Transport** | SSE-based streaming with `/sse`, `/messages`, and `/health` endpoints for remote deployments |
|
|
31
|
+
| **High-Performance Pooling** | Built-in connection pooling for efficient, concurrent database access |
|
|
32
|
+
| **Ecosystem Integrations** | First-class support for **MySQL Router**, **ProxySQL**, and **MySQL Shell** utilities |
|
|
33
|
+
| **Advanced Encryption** | Full TLS/SSL support for secure connections, plus tools for managing data masking, encryption monitoring, and compliance |
|
|
34
|
+
| **Deterministic Error Handling** | Every tool returns structured `{success, error}` responses — no raw exceptions, no silent failures, no misleading messages. Agents get actionable context instead of cryptic MySQL error codes |
|
|
35
|
+
| **Production-Ready Security** | SQL injection protection, parameterized queries, input validation, and audit capabilities |
|
|
36
|
+
| **Worker Sandbox Isolation** | Code Mode executes in a separate V8 isolate via `worker_threads` with a `MessagePort` RPC bridge, enforced memory limits, readonly mode, and hard timeouts |
|
|
37
|
+
| **Strict TypeScript** | 100% type-safe codebase with 2169 tests and 90% coverage |
|
|
38
|
+
| **MCP 2025-11-25 Compliant** | Full protocol support with tool safety hints, resource priorities, and progress notifications |
|
|
37
39
|
|
|
38
40
|
---
|
|
39
41
|
|
|
@@ -85,6 +87,61 @@ node dist/cli.js --transport stdio --mysql mysql://user:password@localhost:3306/
|
|
|
85
87
|
|
|
86
88
|
---
|
|
87
89
|
|
|
90
|
+
## Code Mode: Maximum Efficiency
|
|
91
|
+
|
|
92
|
+
Code Mode (`mysql_execute_code`) dramatically reduces token usage (70–90%) and is included by default in all presets.
|
|
93
|
+
|
|
94
|
+
Code executes in a **worker-thread sandbox** — a separate V8 isolate with its own memory space. All `mysql.*` API calls are forwarded to the main thread via a `MessagePort`-based RPC bridge, where the actual database operations execute. This provides:
|
|
95
|
+
|
|
96
|
+
- **Process-level isolation** — user code runs in a separate V8 instance with enforced heap limits
|
|
97
|
+
- **Readonly enforcement** — when `readonly: true`, write methods return structured errors instead of executing
|
|
98
|
+
- **Hard timeouts** — worker termination if execution exceeds the configured limit
|
|
99
|
+
- **Full API access** — all 24 tool groups are available via `mysql.*` (e.g., `mysql.core.readQuery()`, `mysql.json.extract()`)
|
|
100
|
+
|
|
101
|
+
Set `CODEMODE_ISOLATION=vm` to fall back to the in-process `vm` module sandbox if needed.
|
|
102
|
+
|
|
103
|
+
### ⚡ Code Mode Only (Maximum Token Savings)
|
|
104
|
+
|
|
105
|
+
If you control your own setup, you can run with **only Code Mode enabled** — a single tool that provides access to all 192 tools' worth of capability through the `mysql.*` API:
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"mcpServers": {
|
|
110
|
+
"mysql-mcp": {
|
|
111
|
+
"command": "node",
|
|
112
|
+
"args": [
|
|
113
|
+
"/path/to/mysql-mcp/dist/cli.js",
|
|
114
|
+
"--transport",
|
|
115
|
+
"stdio",
|
|
116
|
+
"--tool-filter",
|
|
117
|
+
"codemode"
|
|
118
|
+
],
|
|
119
|
+
"env": {
|
|
120
|
+
"MYSQL_HOST": "localhost",
|
|
121
|
+
"MYSQL_PORT": "3306",
|
|
122
|
+
"MYSQL_USER": "your_user",
|
|
123
|
+
"MYSQL_PASSWORD": "your_password",
|
|
124
|
+
"MYSQL_DATABASE": "your_database"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
This exposes just `mysql_execute_code`. The agent writes JavaScript against the typed `mysql.*` SDK — composing queries, chaining operations across all 24 tool groups, and returning exactly the data it needs — in one execution. This mirrors the [Code Mode pattern](https://blog.cloudflare.com/code-mode-mcp/) pioneered by Cloudflare for their entire API: fixed token cost regardless of how many capabilities exist.
|
|
132
|
+
|
|
133
|
+
> [!TIP]
|
|
134
|
+
> **Maximize Token Savings:** Instruct your AI agent to prefer Code Mode over individual tool calls:
|
|
135
|
+
>
|
|
136
|
+
> _"When using mysql-mcp, prefer `mysql_execute_code` (Code Mode) for multi-step database operations to minimize token usage."_
|
|
137
|
+
>
|
|
138
|
+
> For maximum savings, use `--tool-filter codemode` to run with Code Mode as your only tool. See the [Code Mode wiki](https://github.com/neverinfamous/mysql-mcp/wiki/Code-Mode) for full API documentation.
|
|
139
|
+
|
|
140
|
+
> [!NOTE]
|
|
141
|
+
> **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal Code Mode usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](https://github.com/neverinfamous/mysql-mcp/blob/main/src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
88
145
|
## ⚡ MCP Client Configuration
|
|
89
146
|
|
|
90
147
|
### HTTP/SSE Server Usage (Advanced)
|
|
@@ -204,26 +261,10 @@ docker run -p 3000:3000 writenotenow/mysql-mcp \
|
|
|
204
261
|
|
|
205
262
|
---
|
|
206
263
|
|
|
207
|
-
## Code Mode: Maximum Efficiency
|
|
208
|
-
|
|
209
|
-
Code Mode (`mysql_execute_code`) dramatically reduces token usage (70–90%) and is included by default in all presets.
|
|
210
|
-
|
|
211
|
-
> [!TIP]
|
|
212
|
-
> **Maximize Token Savings:** For the best results, instruct your AI agent to prefer Code Mode over individual tool calls. Add a rule like this to your agent's prompt or system configuration:
|
|
213
|
-
>
|
|
214
|
-
> _"When using mysql-mcp, prefer `mysql_execute_code` (Code Mode) for multi-step database operations to minimize token usage."_
|
|
215
|
-
>
|
|
216
|
-
> This ensures the agent batches operations into single calls instead of making many individual tool calls. See the [Code Mode wiki](https://github.com/neverinfamous/mysql-mcp/wiki/Code-Mode) for full API documentation.
|
|
217
|
-
|
|
218
|
-
> [!NOTE]
|
|
219
|
-
> **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal Code Mode usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](https://github.com/neverinfamous/mysql-mcp/blob/master/src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
264
|
## 🛠️ Tool Filtering
|
|
224
265
|
|
|
225
266
|
> [!IMPORTANT]
|
|
226
|
-
> **AI IDEs like Cursor have tool limits (typically 40-50 tools).** With
|
|
267
|
+
> **AI IDEs like Cursor have tool limits (typically 40-50 tools).** With 192 tools available, you MUST use tool filtering to stay within your IDE's limits. We recommend `starter` (39 tools) as a starting point. Code Mode is included in all presets by default for 70-90% token savings on multi-step operations.
|
|
227
268
|
|
|
228
269
|
### What Can You Filter?
|
|
229
270
|
|
|
@@ -232,7 +273,7 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
|
|
|
232
273
|
| Filter Pattern | Example | Tools | Description |
|
|
233
274
|
| ---------------- | --------------------------- | ----- | ------------------------- |
|
|
234
275
|
| Shortcut only | `starter` | 39 | Use a predefined bundle |
|
|
235
|
-
| Groups only | `core,json,transactions` |
|
|
276
|
+
| Groups only | `core,json,transactions` | 33 | Combine individual groups |
|
|
236
277
|
| Shortcut + Group | `starter,spatial` | 51 | Extend a shortcut |
|
|
237
278
|
| Shortcut - Tool | `starter,-mysql_drop_table` | 38 | Remove specific tools |
|
|
238
279
|
|
|
@@ -250,7 +291,7 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
|
|
|
250
291
|
| `dba-secure` | 33 | DBA Security | core, security, roles, transactions, codemode |
|
|
251
292
|
| `base-core` | 49 | Base Ops | core, json, transactions, text, schema, codemode |
|
|
252
293
|
| `base-advanced` | 41 | Advanced Features | docstore, spatial, stats, fulltext, events, codemode |
|
|
253
|
-
| `ecosystem` |
|
|
294
|
+
| `ecosystem` | 41 | External Tools | cluster, proxysql, router, shell, codemode |
|
|
254
295
|
|
|
255
296
|
### Tool Groups (25 Available)
|
|
256
297
|
|
|
@@ -278,7 +319,7 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
|
|
|
278
319
|
| `roles` | 8 | MySQL 8.0 role management |
|
|
279
320
|
| `docstore` | 9 | Document Store collections |
|
|
280
321
|
| `cluster` | 10 | Group Replication, InnoDB Cluster |
|
|
281
|
-
| `proxysql` |
|
|
322
|
+
| `proxysql` | 11 | ProxySQL management |
|
|
282
323
|
| `router` | 9 | MySQL Router REST API |
|
|
283
324
|
| `codemode` | 1 | Sandboxed code execution |
|
|
284
325
|
|
|
@@ -332,7 +373,7 @@ Schema metadata is cached to reduce repeated queries during tool/resource invoca
|
|
|
332
373
|
|
|
333
374
|
> **Tip:** Lower `METADATA_CACHE_TTL_MS` for development (e.g., `5000`), or increase it for production with stable schemas (e.g., `300000` = 5 min).
|
|
334
375
|
|
|
335
|
-
> **Built-in payload optimization:** Many tools support optional `summary: true` for condensed responses and `limit` parameters to cap result sizes. These are particularly useful for cluster status, monitoring, and sys schema tools where full responses can be large. See [`ServerInstructions.ts`](https://github.com/neverinfamous/mysql-mcp/blob/
|
|
376
|
+
> **Built-in payload optimization:** Many tools support optional `summary: true` for condensed responses and `limit` parameters to cap result sizes. These are particularly useful for cluster status, monitoring, and sys schema tools where full responses can be large. See [`ServerInstructions.ts`](https://github.com/neverinfamous/mysql-mcp/blob/main/src/constants/ServerInstructions.ts) for per-tool details.
|
|
336
377
|
|
|
337
378
|
---
|
|
338
379
|
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- mcp-name: io.github.neverinfamous/mysql-mcp -->
|
|
4
4
|
|
|
5
|
-
**Last Updated February
|
|
5
|
+
**Last Updated February 26, 2026**
|
|
6
6
|
|
|
7
7
|
[](https://github.com/neverinfamous/mysql-mcp)
|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -11,31 +11,33 @@
|
|
|
11
11
|
[](https://hub.docker.com/r/writenotenow/mysql-mcp)
|
|
12
12
|
[](SECURITY.md)
|
|
13
13
|

|
|
14
|
-

|
|
15
|
+

|
|
16
16
|
|
|
17
17
|
**[📚 Full Documentation (Wiki)](https://github.com/neverinfamous/mysql-mcp/wiki)** • **[Changelog](CHANGELOG.md)** • **[Security](SECURITY.md)** • **[Release Article](https://adamic.tech/articles/mysql-mcp-server)**
|
|
18
18
|
|
|
19
19
|
## The Most Comprehensive MySQL MCP Server Available
|
|
20
20
|
|
|
21
|
-
**mysql-mcp** is the definitive **Model Context Protocol server for MySQL** — empowering AI assistants like AntiGravity, Claude, Cursor, and other MCP clients with **unparalleled database capabilities**. Built for developers who demand enterprise-grade features without sacrificing ease of use.
|
|
21
|
+
**mysql-mcp** is the definitive **Model Context Protocol server for MySQL** — empowering AI assistants like AntiGravity, Claude, Cursor, and other MCP clients with **unparalleled database capabilities**, **deterministic error handling**, and **process-isolated sandboxed code execution**. Built for developers who demand enterprise-grade features without sacrificing ease of use.
|
|
22
22
|
|
|
23
23
|
### 🎯 What Sets Us Apart
|
|
24
24
|
|
|
25
|
-
| Feature
|
|
26
|
-
|
|
|
27
|
-
| **
|
|
28
|
-
| **18 Observability Resources**
|
|
29
|
-
| **19 AI-Powered Prompts**
|
|
30
|
-
| **OAuth 2.1 + Access Control**
|
|
31
|
-
| **Smart Tool Filtering**
|
|
32
|
-
| **HTTP Streaming Transport**
|
|
33
|
-
| **High-Performance Pooling**
|
|
34
|
-
| **Ecosystem Integrations**
|
|
35
|
-
| **Advanced Encryption**
|
|
36
|
-
| **
|
|
37
|
-
| **
|
|
38
|
-
| **
|
|
25
|
+
| Feature | Description |
|
|
26
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
27
|
+
| **192 Specialized Tools** | The largest MySQL tool collection for MCP — from core CRUD and native JSON functions (MySQL 5.7+) to advanced spatial/GIS, document store, and cluster management |
|
|
28
|
+
| **18 Observability Resources** | Real-time schema, performance metrics, process lists, status variables, replication status, and InnoDB diagnostics |
|
|
29
|
+
| **19 AI-Powered Prompts** | Guided workflows for query building, schema design, performance tuning, and infrastructure setup |
|
|
30
|
+
| **OAuth 2.1 + Access Control** | Enterprise-ready security with RFC 9728/8414 compliance, granular scopes (`read`, `write`, `admin`, `full`, `db:*`, `table:*:*`), and Keycloak integration |
|
|
31
|
+
| **Smart Tool Filtering** | 25 tool groups + 11 shortcuts let you stay within IDE limits while exposing exactly what you need |
|
|
32
|
+
| **HTTP Streaming Transport** | SSE-based streaming with `/sse`, `/messages`, and `/health` endpoints for remote deployments |
|
|
33
|
+
| **High-Performance Pooling** | Built-in connection pooling for efficient, concurrent database access |
|
|
34
|
+
| **Ecosystem Integrations** | First-class support for **MySQL Router**, **ProxySQL**, and **MySQL Shell** utilities |
|
|
35
|
+
| **Advanced Encryption** | Full TLS/SSL support for secure connections, plus tools for managing data masking, encryption monitoring, and compliance |
|
|
36
|
+
| **Deterministic Error Handling** | Every tool returns structured `{success, error}` responses — no raw exceptions, no silent failures, no misleading messages. Agents get actionable context instead of cryptic MySQL error codes |
|
|
37
|
+
| **Production-Ready Security** | SQL injection protection, parameterized queries, input validation, and audit capabilities |
|
|
38
|
+
| **Worker Sandbox Isolation** | Code Mode executes in a separate V8 isolate via `worker_threads` with a `MessagePort` RPC bridge, enforced memory limits, readonly mode, and hard timeouts |
|
|
39
|
+
| **Strict TypeScript** | 100% type-safe codebase with 2169 tests and 90% coverage |
|
|
40
|
+
| **MCP 2025-11-25 Compliant** | Full protocol support with tool safety hints, resource priorities, and progress notifications |
|
|
39
41
|
|
|
40
42
|
---
|
|
41
43
|
|
|
@@ -87,6 +89,61 @@ node dist/cli.js --transport stdio --mysql mysql://user:password@localhost:3306/
|
|
|
87
89
|
|
|
88
90
|
---
|
|
89
91
|
|
|
92
|
+
## Code Mode: Maximum Efficiency
|
|
93
|
+
|
|
94
|
+
Code Mode (`mysql_execute_code`) dramatically reduces token usage (70–90%) and is included by default in all presets.
|
|
95
|
+
|
|
96
|
+
Code executes in a **worker-thread sandbox** — a separate V8 isolate with its own memory space. All `mysql.*` API calls are forwarded to the main thread via a `MessagePort`-based RPC bridge, where the actual database operations execute. This provides:
|
|
97
|
+
|
|
98
|
+
- **Process-level isolation** — user code runs in a separate V8 instance with enforced heap limits
|
|
99
|
+
- **Readonly enforcement** — when `readonly: true`, write methods return structured errors instead of executing
|
|
100
|
+
- **Hard timeouts** — worker termination if execution exceeds the configured limit
|
|
101
|
+
- **Full API access** — all 24 tool groups are available via `mysql.*` (e.g., `mysql.core.readQuery()`, `mysql.json.extract()`)
|
|
102
|
+
|
|
103
|
+
Set `CODEMODE_ISOLATION=vm` to fall back to the in-process `vm` module sandbox if needed.
|
|
104
|
+
|
|
105
|
+
### ⚡ Code Mode Only (Maximum Token Savings)
|
|
106
|
+
|
|
107
|
+
If you control your own setup, you can run with **only Code Mode enabled** — a single tool that provides access to all 192 tools' worth of capability through the `mysql.*` API:
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"mcpServers": {
|
|
112
|
+
"mysql-mcp": {
|
|
113
|
+
"command": "node",
|
|
114
|
+
"args": [
|
|
115
|
+
"/path/to/mysql-mcp/dist/cli.js",
|
|
116
|
+
"--transport",
|
|
117
|
+
"stdio",
|
|
118
|
+
"--tool-filter",
|
|
119
|
+
"codemode"
|
|
120
|
+
],
|
|
121
|
+
"env": {
|
|
122
|
+
"MYSQL_HOST": "localhost",
|
|
123
|
+
"MYSQL_PORT": "3306",
|
|
124
|
+
"MYSQL_USER": "your_user",
|
|
125
|
+
"MYSQL_PASSWORD": "your_password",
|
|
126
|
+
"MYSQL_DATABASE": "your_database"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
This exposes just `mysql_execute_code`. The agent writes JavaScript against the typed `mysql.*` SDK — composing queries, chaining operations across all 24 tool groups, and returning exactly the data it needs — in one execution. This mirrors the [Code Mode pattern](https://blog.cloudflare.com/code-mode-mcp/) pioneered by Cloudflare for their entire API: fixed token cost regardless of how many capabilities exist.
|
|
134
|
+
|
|
135
|
+
> [!TIP]
|
|
136
|
+
> **Maximize Token Savings:** Instruct your AI agent to prefer Code Mode over individual tool calls:
|
|
137
|
+
>
|
|
138
|
+
> _"When using mysql-mcp, prefer `mysql_execute_code` (Code Mode) for multi-step database operations to minimize token usage."_
|
|
139
|
+
>
|
|
140
|
+
> For maximum savings, use `--tool-filter codemode` to run with Code Mode as your only tool. See the [Code Mode wiki](https://github.com/neverinfamous/mysql-mcp/wiki/Code-Mode) for full API documentation.
|
|
141
|
+
|
|
142
|
+
> [!NOTE]
|
|
143
|
+
> **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal Code Mode usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
90
147
|
## ⚡ MCP Client Configuration
|
|
91
148
|
|
|
92
149
|
### HTTP/SSE Server Usage (Advanced)
|
|
@@ -248,26 +305,10 @@ Use the remote hostname directly:
|
|
|
248
305
|
|
|
249
306
|
---
|
|
250
307
|
|
|
251
|
-
## Code Mode: Maximum Efficiency
|
|
252
|
-
|
|
253
|
-
Code Mode (`mysql_execute_code`) dramatically reduces token usage (70–90%) and is included by default in all presets.
|
|
254
|
-
|
|
255
|
-
> [!TIP]
|
|
256
|
-
> **Maximize Token Savings:** For the best results, instruct your AI agent to prefer Code Mode over individual tool calls. Add a rule like this to your agent's prompt or system configuration:
|
|
257
|
-
>
|
|
258
|
-
> _"When using mysql-mcp, prefer `mysql_execute_code` (Code Mode) for multi-step database operations to minimize token usage."_
|
|
259
|
-
>
|
|
260
|
-
> This ensures the agent batches operations into single calls instead of making many individual tool calls. See the [Code Mode wiki](https://github.com/neverinfamous/mysql-mcp/wiki/Code-Mode) for full API documentation.
|
|
261
|
-
|
|
262
|
-
> [!NOTE]
|
|
263
|
-
> **AntiGravity Users:** Server instructions are automatically sent to MCP clients during initialization. However, AntiGravity does not currently support MCP server instructions. For optimal Code Mode usage in AntiGravity, manually provide the contents of [`src/constants/ServerInstructions.ts`](src/constants/ServerInstructions.ts) to the agent in your prompt or user rules.
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
308
|
## 🛠️ Tool Filtering
|
|
268
309
|
|
|
269
310
|
> [!IMPORTANT]
|
|
270
|
-
> **AI IDEs like Cursor have tool limits (typically 40-50 tools).** With
|
|
311
|
+
> **AI IDEs like Cursor have tool limits (typically 40-50 tools).** With 192 tools available, you MUST use tool filtering to stay within your IDE's limits. We recommend `starter` (39 tools) as a starting point. Code Mode is included in all presets by default for 70-90% token savings on multi-step operations.
|
|
271
312
|
|
|
272
313
|
### What Can You Filter?
|
|
273
314
|
|
|
@@ -276,7 +317,7 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
|
|
|
276
317
|
| Filter Pattern | Example | Tools | Description |
|
|
277
318
|
| ---------------- | --------------------------- | ----- | ------------------------- |
|
|
278
319
|
| Shortcut only | `starter` | 39 | Use a predefined bundle |
|
|
279
|
-
| Groups only | `core,json,transactions` |
|
|
320
|
+
| Groups only | `core,json,transactions` | 33 | Combine individual groups |
|
|
280
321
|
| Shortcut + Group | `starter,spatial` | 51 | Extend a shortcut |
|
|
281
322
|
| Shortcut - Tool | `starter,-mysql_drop_table` | 38 | Remove specific tools |
|
|
282
323
|
|
|
@@ -294,7 +335,7 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
|
|
|
294
335
|
| `dba-secure` | 33 | DBA Security | core, security, roles, transactions, codemode |
|
|
295
336
|
| `base-core` | 49 | Base Ops | core, json, transactions, text, schema, codemode |
|
|
296
337
|
| `base-advanced` | 41 | Advanced Features | docstore, spatial, stats, fulltext, events, codemode |
|
|
297
|
-
| `ecosystem` |
|
|
338
|
+
| `ecosystem` | 41 | External Tools | cluster, proxysql, router, shell, codemode |
|
|
298
339
|
|
|
299
340
|
### Tool Groups (25 Available)
|
|
300
341
|
|
|
@@ -322,7 +363,7 @@ The `--tool-filter` argument accepts **shortcuts**, **groups**, or **tool names*
|
|
|
322
363
|
| `roles` | 8 | MySQL 8.0 role management |
|
|
323
364
|
| `docstore` | 9 | Document Store collections |
|
|
324
365
|
| `cluster` | 10 | Group Replication, InnoDB Cluster |
|
|
325
|
-
| `proxysql` |
|
|
366
|
+
| `proxysql` | 11 | ProxySQL management |
|
|
326
367
|
| `router` | 9 | MySQL Router REST API |
|
|
327
368
|
| `codemode` | 1 | Sandboxed code execution |
|
|
328
369
|
|
|
@@ -395,7 +436,7 @@ Add one of these configurations to your IDE's MCP settings file (e.g., `cline_mc
|
|
|
395
436
|
}
|
|
396
437
|
```
|
|
397
438
|
|
|
398
|
-
#### Option 3: Ecosystem (
|
|
439
|
+
#### Option 3: Ecosystem (41 Tools for InnoDB Cluster Deployments)
|
|
399
440
|
|
|
400
441
|
**Best for:** MySQL Router, ProxySQL, MySQL Shell, and InnoDB Cluster deployments.
|
|
401
442
|
|
|
@@ -602,7 +643,7 @@ npx @modelcontextprotocol/inspector node dist/cli.js \
|
|
|
602
643
|
--mysql mysql://user:password@localhost:3306/database
|
|
603
644
|
```
|
|
604
645
|
|
|
605
|
-
Open **http://localhost:6274** to browse all
|
|
646
|
+
Open **http://localhost:6274** to browse all 192 tools, 18 resources, and 19 prompts interactively.
|
|
606
647
|
|
|
607
648
|
**CLI mode for scripting:**
|
|
608
649
|
|
|
@@ -626,7 +667,7 @@ npx @modelcontextprotocol/inspector --cli node dist/cli.js \
|
|
|
626
667
|
|
|
627
668
|
### Unit Testing
|
|
628
669
|
|
|
629
|
-
The project maintains high test coverage (~
|
|
670
|
+
The project maintains high test coverage (~90%) using Vitest.
|
|
630
671
|
|
|
631
672
|
```bash
|
|
632
673
|
npm test
|
|
@@ -641,18 +682,18 @@ npm run test:coverage
|
|
|
641
682
|
**Test Infrastructure:**
|
|
642
683
|
|
|
643
684
|
- Centralized mock factories in `src/__tests__/mocks/`
|
|
644
|
-
- All
|
|
685
|
+
- All 111 test files use shared mocks for consistency
|
|
645
686
|
- Tests run without database connection (fully mocked)
|
|
646
|
-
- ~
|
|
687
|
+
- ~28 second total runtime
|
|
647
688
|
|
|
648
689
|
**Test Coverage:**
|
|
649
690
|
|
|
650
691
|
| Component | Coverage | Notes |
|
|
651
692
|
| --------------- | -------- | --------------------- |
|
|
652
|
-
| **Global** | **
|
|
693
|
+
| **Global** | **90%+** | Statement coverage |
|
|
653
694
|
| MySQLAdapter | 93%+ | Adapter logic covered |
|
|
654
|
-
| Branch Coverage | ~
|
|
655
|
-
| Tools (All) | 98%+ |
|
|
695
|
+
| Branch Coverage | ~75% | High branch coverage |
|
|
696
|
+
| Tools (All) | 98%+ | 2169 tests passing |
|
|
656
697
|
|
|
657
698
|
---
|
|
658
699
|
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAO,EACpC,YAAY,SAAI,GACf,WAAW,CAMb;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,UAAO,EACf,UAAU,UAAQ,GACjB,UAAU,CAOZ;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,SAAS,CAa3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,SAAS,CAQX;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,CAMjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,UAAO,GAAG,YAAY,CAarE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG;IAChE,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,iBAAiB,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,aAAa,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;CACrC,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAO,EACpC,YAAY,SAAI,GACf,WAAW,CAMb;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,UAAO,EACf,UAAU,UAAQ,GACjB,UAAU,CAOZ;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAM,GAAG,SAAS,CAa3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,SAAS,CAQX;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,CAMjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,UAAO,GAAG,YAAY,CAarE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG;IAChE,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,iBAAiB,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5C,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1C,aAAa,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;CACrC,CA8EA;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI;IAC1C,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAKA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,EAClD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,IAAI,CAWN;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,UAAU,CACvD,OAAO,sBAAsB,CAC9B,CAcA;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,SAA+B,GAC1C,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAa3C;AAED;;GAEG;AACH,wBAAgB,qCAAqC,IAAI,UAAU,CACjE,OAAO,sBAAsB,CAC9B,GAAG;IACF,cAAc,EAAE;QACd,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACnC,CAAC;CACH,CAcA;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/adapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/__tests__/mocks/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/DatabaseAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACV,MAAM,mBAAmB,CAAC;AA8B3B;;GAEG;AACH,8BAAsB,eAAe;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAErC,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAElC,uBAAuB;IACvB,SAAS,CAAC,SAAS,UAAS;IAM5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAM3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5E;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMzC;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,mBAAmB;IAE/C;;OAEG;IACH,QAAQ,CAAC,sBAAsB,IAAI,SAAS,EAAE;IAM9C;;OAEG;IACH,QAAQ,CAAC,kBAAkB,IAAI,cAAc,EAAE;IAE/C;;OAEG;IACH,QAAQ,CAAC,sBAAsB,IAAI,kBAAkB,EAAE;IAEvD;;OAEG;IACH,QAAQ,CAAC,oBAAoB,IAAI,gBAAgB,EAAE;IAEnD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAgBjE;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IA2CrE;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAQ1C;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,kBAAkB,GAC3B,IAAI;IAwCP;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAQxC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"DatabaseAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/DatabaseAdapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,UAAU,EACV,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACV,MAAM,mBAAmB,CAAC;AA8B3B;;GAEG;AACH,8BAAsB,eAAe;IACnC,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAErC,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAElC,uBAAuB;IACvB,SAAS,CAAC,SAAS,UAAS;IAM5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvD;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAM3C;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CACvB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,WAAW,CAAC;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5E;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAE3C;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAMzC;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,mBAAmB;IAE/C;;OAEG;IACH,QAAQ,CAAC,sBAAsB,IAAI,SAAS,EAAE;IAM9C;;OAEG;IACH,QAAQ,CAAC,kBAAkB,IAAI,cAAc,EAAE;IAE/C;;OAEG;IACH,QAAQ,CAAC,sBAAsB,IAAI,kBAAkB,EAAE;IAEvD;;OAEG;IACH,QAAQ,CAAC,oBAAoB,IAAI,gBAAgB,EAAE;IAEnD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAgBjE;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IA2CrE;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAQ1C;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,kBAAkB,GAC3B,IAAI;IAwCP;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAQxC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI;IA6F3E;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IA0BrD;;OAEG;IACH,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc;IAOjD;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUnC"}
|
|
@@ -154,22 +154,48 @@ export class DatabaseAdapter {
|
|
|
154
154
|
* Register a single prompt with the MCP server
|
|
155
155
|
*/
|
|
156
156
|
registerPrompt(server, prompt) {
|
|
157
|
-
// Build Zod
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
// Build a Zod raw shape from prompt.arguments so the SDK can
|
|
158
|
+
// advertise argument metadata in prompts/list via promptArgumentsFromSchema().
|
|
159
|
+
//
|
|
160
|
+
// ALL fields are .optional() because the SDK validates BEFORE our handler
|
|
161
|
+
// runs. If required fields used z.string() (non-optional), clients that
|
|
162
|
+
// invoke prompts without filling in required args would get a raw Zod
|
|
163
|
+
// error instead of our graceful guide message. Required-ness is enforced
|
|
164
|
+
// by the handler-level missing-arg check below.
|
|
165
|
+
let argsSchema;
|
|
166
|
+
if (prompt.arguments && prompt.arguments.length > 0) {
|
|
167
|
+
argsSchema = {};
|
|
160
168
|
for (const arg of prompt.arguments) {
|
|
161
|
-
|
|
162
|
-
? z.string().describe(arg.description)
|
|
163
|
-
: z.string().optional().describe(arg.description);
|
|
169
|
+
argsSchema[arg.name] = z.string().optional().describe(arg.description);
|
|
164
170
|
}
|
|
165
171
|
}
|
|
166
|
-
server.registerPrompt(prompt.name, {
|
|
172
|
+
const registered = server.registerPrompt(prompt.name, {
|
|
167
173
|
description: prompt.description,
|
|
168
|
-
argsSchema
|
|
174
|
+
argsSchema,
|
|
169
175
|
}, async (providedArgs) => {
|
|
170
176
|
const context = this.createContext();
|
|
171
177
|
// Cast args to Record<string, string> for handler compatibility
|
|
172
|
-
const args = providedArgs;
|
|
178
|
+
const args = (providedArgs ?? {});
|
|
179
|
+
// Check for missing required arguments
|
|
180
|
+
const requiredArgs = prompt.arguments?.filter((a) => a.required) ?? [];
|
|
181
|
+
const missingArgs = requiredArgs.filter((a) => !args[a.name]);
|
|
182
|
+
if (missingArgs.length > 0) {
|
|
183
|
+
// Return a helpful guide listing expected arguments
|
|
184
|
+
const argList = (prompt.arguments ?? [])
|
|
185
|
+
.map((a) => `- **${a.name}**${a.required ? " (required)" : " (optional)"}: ${a.description}`)
|
|
186
|
+
.join("\n");
|
|
187
|
+
return {
|
|
188
|
+
messages: [
|
|
189
|
+
{
|
|
190
|
+
role: "user",
|
|
191
|
+
content: {
|
|
192
|
+
type: "text",
|
|
193
|
+
text: `# ${prompt.name}\n\n${prompt.description}\n\n## Arguments\n\n${argList}\n\nPlease provide the required arguments to use this prompt.`,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
};
|
|
198
|
+
}
|
|
173
199
|
const result = await prompt.handler(args, context);
|
|
174
200
|
return {
|
|
175
201
|
messages: [
|
|
@@ -185,6 +211,21 @@ export class DatabaseAdapter {
|
|
|
185
211
|
],
|
|
186
212
|
};
|
|
187
213
|
});
|
|
214
|
+
// Patch the SDK's stored Zod object schema to accept `undefined` input.
|
|
215
|
+
// The SDK's prompts/get handler calls safeParseAsync(argsSchema, args)
|
|
216
|
+
// where args may be `undefined` when clients omit them. Zod v4's
|
|
217
|
+
// z.object().safeParse(undefined) rejects — but we need it to succeed
|
|
218
|
+
// (coercing to {}) so our handler-level required-arg check can provide
|
|
219
|
+
// a graceful guide message instead of a raw Zod crash.
|
|
220
|
+
// The metadata (shape, type) is preserved for promptArgumentsFromSchema().
|
|
221
|
+
if (registered.argsSchema) {
|
|
222
|
+
const schema = registered.argsSchema;
|
|
223
|
+
const originalRun = schema._zod.run.bind(schema._zod);
|
|
224
|
+
schema._zod.run = (ctx) => {
|
|
225
|
+
ctx.value ??= {};
|
|
226
|
+
return originalRun(ctx);
|
|
227
|
+
};
|
|
228
|
+
}
|
|
188
229
|
}
|
|
189
230
|
// =========================================================================
|
|
190
231
|
// Query Validation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatabaseAdapter.js","sourceRoot":"","sources":["../../src/adapters/DatabaseAdapter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"DatabaseAdapter.js","sourceRoot":"","sources":["../../src/adapters/DatabaseAdapter.ts"],"names":[],"mappings":"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"}
|