@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.
Files changed (344) hide show
  1. package/.dockerignore +1 -0
  2. package/.gitattributes +18 -0
  3. package/.github/workflows/codeql.yml +2 -2
  4. package/.github/workflows/docker-publish.yml +5 -5
  5. package/CHANGELOG.md +276 -1
  6. package/DOCKER_README.md +81 -40
  7. package/README.md +87 -46
  8. package/VERSION +1 -1
  9. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  10. package/dist/__tests__/mocks/adapter.js +2 -0
  11. package/dist/__tests__/mocks/adapter.js.map +1 -1
  12. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  13. package/dist/adapters/DatabaseAdapter.js +50 -9
  14. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  15. package/dist/adapters/mysql/MySQLAdapter.d.ts +6 -0
  16. package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
  17. package/dist/adapters/mysql/MySQLAdapter.js +8 -0
  18. package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
  19. package/dist/adapters/mysql/SchemaManager.js +16 -15
  20. package/dist/adapters/mysql/SchemaManager.js.map +1 -1
  21. package/dist/adapters/mysql/prompts/index.js +10 -20
  22. package/dist/adapters/mysql/prompts/index.js.map +1 -1
  23. package/dist/adapters/mysql/prompts/proxysqlSetup.js +1 -1
  24. package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
  25. package/dist/adapters/mysql/resources/docstore.js +10 -7
  26. package/dist/adapters/mysql/resources/docstore.js.map +1 -1
  27. package/dist/adapters/mysql/resources/events.js +11 -8
  28. package/dist/adapters/mysql/resources/events.js.map +1 -1
  29. package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
  30. package/dist/adapters/mysql/resources/indexes.js +12 -15
  31. package/dist/adapters/mysql/resources/indexes.js.map +1 -1
  32. package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
  33. package/dist/adapters/mysql/resources/innodb.js +20 -17
  34. package/dist/adapters/mysql/resources/innodb.js.map +1 -1
  35. package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
  36. package/dist/adapters/mysql/resources/locks.js +9 -6
  37. package/dist/adapters/mysql/resources/locks.js.map +1 -1
  38. package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
  39. package/dist/adapters/mysql/resources/performance.js +15 -15
  40. package/dist/adapters/mysql/resources/performance.js.map +1 -1
  41. package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
  42. package/dist/adapters/mysql/resources/spatial.js +9 -6
  43. package/dist/adapters/mysql/resources/spatial.js.map +1 -1
  44. package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
  45. package/dist/adapters/mysql/resources/sysschema.js +12 -9
  46. package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
  47. package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
  48. package/dist/adapters/mysql/tools/admin/backup.js +170 -121
  49. package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
  50. package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
  51. package/dist/adapters/mysql/tools/admin/maintenance.js +106 -57
  52. package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
  53. package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
  54. package/dist/adapters/mysql/tools/admin/monitoring.js +183 -101
  55. package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
  56. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
  57. package/dist/adapters/mysql/tools/cluster/group-replication.js +164 -120
  58. package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
  59. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
  60. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +212 -145
  61. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
  62. package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -1
  63. package/dist/adapters/mysql/tools/codemode/index.js +6 -4
  64. package/dist/adapters/mysql/tools/codemode/index.js.map +1 -1
  65. package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
  66. package/dist/adapters/mysql/tools/core.js +152 -29
  67. package/dist/adapters/mysql/tools/core.js.map +1 -1
  68. package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
  69. package/dist/adapters/mysql/tools/docstore.js +340 -163
  70. package/dist/adapters/mysql/tools/docstore.js.map +1 -1
  71. package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
  72. package/dist/adapters/mysql/tools/events.js +284 -198
  73. package/dist/adapters/mysql/tools/events.js.map +1 -1
  74. package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
  75. package/dist/adapters/mysql/tools/json/core.js +11 -39
  76. package/dist/adapters/mysql/tools/json/core.js.map +1 -1
  77. package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
  78. package/dist/adapters/mysql/tools/json/enhanced.js +15 -33
  79. package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
  80. package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
  81. package/dist/adapters/mysql/tools/json/helpers.js +13 -24
  82. package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
  83. package/dist/adapters/mysql/tools/partitioning.js +3 -0
  84. package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
  85. package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
  86. package/dist/adapters/mysql/tools/performance/analysis.js +89 -60
  87. package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
  88. package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
  89. package/dist/adapters/mysql/tools/performance/optimization.js +151 -127
  90. package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
  91. package/dist/adapters/mysql/tools/proxysql.d.ts +1 -1
  92. package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
  93. package/dist/adapters/mysql/tools/proxysql.js +289 -176
  94. package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
  95. package/dist/adapters/mysql/tools/replication.js +75 -49
  96. package/dist/adapters/mysql/tools/replication.js.map +1 -1
  97. package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
  98. package/dist/adapters/mysql/tools/roles.js +224 -182
  99. package/dist/adapters/mysql/tools/roles.js.map +1 -1
  100. package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
  101. package/dist/adapters/mysql/tools/router.js +168 -67
  102. package/dist/adapters/mysql/tools/router.js.map +1 -1
  103. package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
  104. package/dist/adapters/mysql/tools/schema/constraints.js +21 -3
  105. package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
  106. package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
  107. package/dist/adapters/mysql/tools/schema/management.js +61 -14
  108. package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
  109. package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
  110. package/dist/adapters/mysql/tools/schema/routines.js +27 -4
  111. package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
  112. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
  113. package/dist/adapters/mysql/tools/schema/scheduled_events.js +24 -3
  114. package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
  115. package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
  116. package/dist/adapters/mysql/tools/schema/triggers.js +23 -2
  117. package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
  118. package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
  119. package/dist/adapters/mysql/tools/schema/views.js +47 -7
  120. package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
  121. package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
  122. package/dist/adapters/mysql/tools/security/audit.js +102 -34
  123. package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
  124. package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
  125. package/dist/adapters/mysql/tools/security/data-protection.js +264 -205
  126. package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
  127. package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
  128. package/dist/adapters/mysql/tools/security/encryption.js +137 -104
  129. package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
  130. package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
  131. package/dist/adapters/mysql/tools/shell/backup.js +71 -59
  132. package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
  133. package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
  134. package/dist/adapters/mysql/tools/shell/restore.js +61 -47
  135. package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
  136. package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
  137. package/dist/adapters/mysql/tools/spatial/geometry.js +19 -5
  138. package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
  139. package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
  140. package/dist/adapters/mysql/tools/spatial/operations.js +42 -17
  141. package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
  142. package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
  143. package/dist/adapters/mysql/tools/spatial/queries.js +109 -57
  144. package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
  145. package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
  146. package/dist/adapters/mysql/tools/spatial/setup.js +103 -50
  147. package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
  148. package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
  149. package/dist/adapters/mysql/tools/stats/comparative.js +128 -79
  150. package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
  151. package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
  152. package/dist/adapters/mysql/tools/stats/descriptive.js +174 -102
  153. package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
  154. package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
  155. package/dist/adapters/mysql/tools/sysschema/activity.js +50 -25
  156. package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
  157. package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
  158. package/dist/adapters/mysql/tools/sysschema/performance.js +121 -66
  159. package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
  160. package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
  161. package/dist/adapters/mysql/tools/sysschema/resources.js +101 -64
  162. package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
  163. package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
  164. package/dist/adapters/mysql/tools/text/fulltext.js +18 -32
  165. package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
  166. package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
  167. package/dist/adapters/mysql/tools/transactions.js +48 -23
  168. package/dist/adapters/mysql/tools/transactions.js.map +1 -1
  169. package/dist/adapters/mysql/types/proxysql-types.d.ts +15 -0
  170. package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
  171. package/dist/adapters/mysql/types/proxysql-types.js +33 -1
  172. package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
  173. package/dist/adapters/mysql/types/router-types.d.ts +1 -1
  174. package/dist/adapters/mysql/types/router-types.js +1 -1
  175. package/dist/adapters/mysql/types/router-types.js.map +1 -1
  176. package/dist/adapters/mysql/types/shell-types.js +2 -2
  177. package/dist/adapters/mysql/types/shell-types.js.map +1 -1
  178. package/dist/adapters/mysql/types.d.ts +485 -21
  179. package/dist/adapters/mysql/types.d.ts.map +1 -1
  180. package/dist/adapters/mysql/types.js +546 -19
  181. package/dist/adapters/mysql/types.js.map +1 -1
  182. package/dist/auth/scopes.js +1 -1
  183. package/dist/auth/scopes.js.map +1 -1
  184. package/dist/codemode/api.d.ts +3 -2
  185. package/dist/codemode/api.d.ts.map +1 -1
  186. package/dist/codemode/api.js +80 -5
  187. package/dist/codemode/api.js.map +1 -1
  188. package/dist/codemode/sandbox-factory.js +1 -1
  189. package/dist/codemode/sandbox-factory.js.map +1 -1
  190. package/dist/codemode/types.d.ts +26 -0
  191. package/dist/codemode/types.d.ts.map +1 -1
  192. package/dist/codemode/types.js +2 -0
  193. package/dist/codemode/types.js.map +1 -1
  194. package/dist/codemode/worker-sandbox.d.ts +4 -2
  195. package/dist/codemode/worker-sandbox.d.ts.map +1 -1
  196. package/dist/codemode/worker-sandbox.js +66 -7
  197. package/dist/codemode/worker-sandbox.js.map +1 -1
  198. package/dist/codemode/worker-script.d.ts +3 -0
  199. package/dist/codemode/worker-script.d.ts.map +1 -1
  200. package/dist/codemode/worker-script.js +128 -75
  201. package/dist/codemode/worker-script.js.map +1 -1
  202. package/dist/constants/ServerInstructions.d.ts +1 -1
  203. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  204. package/dist/constants/ServerInstructions.js +37 -31
  205. package/dist/constants/ServerInstructions.js.map +1 -1
  206. package/dist/filtering/ToolConstants.d.ts +1 -1
  207. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  208. package/dist/filtering/ToolConstants.js +1 -2
  209. package/dist/filtering/ToolConstants.js.map +1 -1
  210. package/dist/pool/ConnectionPool.d.ts.map +1 -1
  211. package/dist/pool/ConnectionPool.js.map +1 -1
  212. package/dist/transports/http.d.ts.map +1 -1
  213. package/dist/transports/http.js +6 -0
  214. package/dist/transports/http.js.map +1 -1
  215. package/dist/utils/validators.d.ts +1 -1
  216. package/dist/utils/validators.d.ts.map +1 -1
  217. package/dist/utils/validators.js.map +1 -1
  218. package/package.json +4 -4
  219. package/releases/v3.0.0-release-notes.md +81 -0
  220. package/src/__tests__/mocks/adapter.ts +3 -0
  221. package/src/__tests__/perf.test.ts +6 -6
  222. package/src/adapters/DatabaseAdapter.ts +58 -9
  223. package/src/adapters/__tests__/DatabaseAdapter.test.ts +89 -8
  224. package/src/adapters/mysql/MySQLAdapter.ts +17 -2
  225. package/src/adapters/mysql/SchemaManager.ts +21 -21
  226. package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +1 -1
  227. package/src/adapters/mysql/prompts/index.ts +12 -22
  228. package/src/adapters/mysql/prompts/proxysqlSetup.ts +1 -1
  229. package/src/adapters/mysql/resources/docstore.ts +13 -10
  230. package/src/adapters/mysql/resources/events.ts +12 -12
  231. package/src/adapters/mysql/resources/indexes.ts +17 -19
  232. package/src/adapters/mysql/resources/innodb.ts +23 -22
  233. package/src/adapters/mysql/resources/locks.ts +9 -7
  234. package/src/adapters/mysql/resources/performance.ts +23 -18
  235. package/src/adapters/mysql/resources/spatial.ts +9 -7
  236. package/src/adapters/mysql/resources/sysschema.ts +12 -11
  237. package/src/adapters/mysql/tools/__tests__/core.test.ts +126 -55
  238. package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -88
  239. package/src/adapters/mysql/tools/__tests__/events.test.ts +281 -103
  240. package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +128 -28
  241. package/src/adapters/mysql/tools/__tests__/replication.test.ts +48 -2
  242. package/src/adapters/mysql/tools/__tests__/roles.test.ts +15 -18
  243. package/src/adapters/mysql/tools/__tests__/router.test.ts +32 -5
  244. package/src/adapters/mysql/tools/__tests__/security.test.ts +126 -2
  245. package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +84 -76
  246. package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +47 -50
  247. package/src/adapters/mysql/tools/__tests__/spatial.test.ts +11 -10
  248. package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +54 -38
  249. package/src/adapters/mysql/tools/__tests__/stats.test.ts +285 -152
  250. package/src/adapters/mysql/tools/__tests__/transactions.test.ts +13 -13
  251. package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +171 -25
  252. package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +240 -4
  253. package/src/adapters/mysql/tools/admin/__tests__/monitoring-summary.test.ts +274 -0
  254. package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +94 -5
  255. package/src/adapters/mysql/tools/admin/backup.ts +193 -143
  256. package/src/adapters/mysql/tools/admin/maintenance.ts +118 -69
  257. package/src/adapters/mysql/tools/admin/monitoring.ts +201 -125
  258. package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +69 -0
  259. package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +141 -0
  260. package/src/adapters/mysql/tools/cluster/group-replication.ts +172 -132
  261. package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +231 -157
  262. package/src/adapters/mysql/tools/codemode/__tests__/codemode-tool.test.ts +227 -0
  263. package/src/adapters/mysql/tools/codemode/index.ts +5 -3
  264. package/src/adapters/mysql/tools/core.ts +152 -38
  265. package/src/adapters/mysql/tools/docstore.ts +422 -205
  266. package/src/adapters/mysql/tools/events.ts +334 -233
  267. package/src/adapters/mysql/tools/json/__tests__/core.test.ts +20 -0
  268. package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +82 -50
  269. package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +42 -3
  270. package/src/adapters/mysql/tools/json/core.ts +21 -42
  271. package/src/adapters/mysql/tools/json/enhanced.ts +22 -37
  272. package/src/adapters/mysql/tools/json/helpers.ts +21 -25
  273. package/src/adapters/mysql/tools/partitioning.ts +3 -0
  274. package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +98 -5
  275. package/src/adapters/mysql/tools/performance/__tests__/optimization-coverage.test.ts +515 -0
  276. package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +187 -0
  277. package/src/adapters/mysql/tools/performance/analysis.ts +95 -69
  278. package/src/adapters/mysql/tools/performance/optimization.ts +182 -153
  279. package/src/adapters/mysql/tools/proxysql.ts +314 -209
  280. package/src/adapters/mysql/tools/replication.ts +84 -57
  281. package/src/adapters/mysql/tools/roles.ts +274 -226
  282. package/src/adapters/mysql/tools/router.ts +181 -85
  283. package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +13 -0
  284. package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +60 -25
  285. package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +11 -0
  286. package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +25 -4
  287. package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +46 -14
  288. package/src/adapters/mysql/tools/schema/constraints.ts +22 -3
  289. package/src/adapters/mysql/tools/schema/management.ts +60 -15
  290. package/src/adapters/mysql/tools/schema/routines.ts +26 -4
  291. package/src/adapters/mysql/tools/schema/scheduled_events.ts +25 -3
  292. package/src/adapters/mysql/tools/schema/triggers.ts +27 -2
  293. package/src/adapters/mysql/tools/schema/views.ts +46 -8
  294. package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +90 -4
  295. package/src/adapters/mysql/tools/security/audit.ts +113 -39
  296. package/src/adapters/mysql/tools/security/data-protection.ts +293 -233
  297. package/src/adapters/mysql/tools/security/encryption.ts +172 -139
  298. package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +29 -0
  299. package/src/adapters/mysql/tools/shell/backup.ts +90 -73
  300. package/src/adapters/mysql/tools/shell/restore.ts +62 -48
  301. package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +22 -14
  302. package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +65 -51
  303. package/src/adapters/mysql/tools/spatial/geometry.ts +23 -7
  304. package/src/adapters/mysql/tools/spatial/operations.ts +60 -31
  305. package/src/adapters/mysql/tools/spatial/queries.ts +142 -65
  306. package/src/adapters/mysql/tools/spatial/setup.ts +121 -55
  307. package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +12 -10
  308. package/src/adapters/mysql/tools/stats/comparative.ts +150 -98
  309. package/src/adapters/mysql/tools/stats/descriptive.ts +204 -127
  310. package/src/adapters/mysql/tools/sysschema/__tests__/error-paths.test.ts +222 -0
  311. package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +45 -0
  312. package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +6 -3
  313. package/src/adapters/mysql/tools/sysschema/activity.ts +52 -27
  314. package/src/adapters/mysql/tools/sysschema/performance.ts +132 -68
  315. package/src/adapters/mysql/tools/sysschema/resources.ts +105 -67
  316. package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +45 -17
  317. package/src/adapters/mysql/tools/text/fulltext.ts +27 -38
  318. package/src/adapters/mysql/tools/transactions.ts +49 -24
  319. package/src/adapters/mysql/types/proxysql-types.ts +38 -1
  320. package/src/adapters/mysql/types/router-types.ts +1 -1
  321. package/src/adapters/mysql/types/shell-types.ts +2 -2
  322. package/src/adapters/mysql/types.ts +632 -19
  323. package/src/auth/__tests__/scopes.test.ts +2 -2
  324. package/src/auth/scopes.ts +1 -1
  325. package/src/codemode/__tests__/api.test.ts +417 -0
  326. package/src/codemode/__tests__/sandbox-factory.test.ts +158 -0
  327. package/src/codemode/__tests__/sandbox.test.ts +301 -0
  328. package/src/codemode/__tests__/security.test.ts +368 -0
  329. package/src/codemode/__tests__/worker-sandbox.test.ts +179 -0
  330. package/src/codemode/__tests__/worker-script.test.ts +226 -0
  331. package/src/codemode/api.ts +89 -5
  332. package/src/codemode/sandbox-factory.ts +1 -1
  333. package/src/codemode/types.ts +34 -0
  334. package/src/codemode/worker-sandbox.ts +74 -7
  335. package/src/codemode/worker-script.ts +157 -86
  336. package/src/constants/ServerInstructions.ts +37 -31
  337. package/src/filtering/ToolConstants.ts +1 -2
  338. package/src/filtering/__tests__/ToolFilter.test.ts +9 -9
  339. package/src/pool/ConnectionPool.ts +4 -1
  340. package/src/transports/__tests__/http.test.ts +15 -3
  341. package/src/transports/http.ts +12 -0
  342. package/src/utils/validators.ts +2 -1
  343. package/vitest.config.ts +3 -1
  344. 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 18, 2026**
3
+ **Last Updated February 26, 2026**
4
4
 
5
5
  [![GitHub](https://img.shields.io/badge/GitHub-neverinfamous/mysql--mcp-blue?logo=github)](https://github.com/neverinfamous/mysql-mcp)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -9,31 +9,33 @@
9
9
  [![Docker Pulls](https://img.shields.io/docker/pulls/writenotenow/mysql-mcp)](https://hub.docker.com/r/writenotenow/mysql-mcp)
10
10
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](SECURITY.md)
11
11
  ![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)
12
- ![Tests](https://img.shields.io/badge/Tests-1835%20passing-brightgreen.svg)
13
- ![Coverage](https://img.shields.io/badge/Coverage-86%25-green.svg)
12
+ ![Tests](https://img.shields.io/badge/Tests-2169%20passing-brightgreen.svg)
13
+ ![Coverage](https://img.shields.io/badge/Coverage-90%25-brightgreen.svg)
14
14
 
15
- **[📚 Full Documentation (Wiki)](https://github.com/neverinfamous/mysql-mcp/wiki)** • **[Changelog](https://github.com/neverinfamous/mysql-mcp/blob/master/CHANGELOG.md)** • **[Security](https://github.com/neverinfamous/mysql-mcp/blob/master/SECURITY.md)** • **[Release Article](https://adamic.tech/articles/mysql-mcp-server)**
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 | Description |
24
- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
25
- | **193 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
- | **Production-Ready Security** | SQL injection protection, parameterized queries, input validation, and audit capabilities |
35
- | **Strict TypeScript** | 100% type-safe codebase with 1833 tests and 86% coverage |
36
- | **MCP 2025-11-25 Compliant** | Full protocol support with tool safety hints, resource priorities, and progress notifications |
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 193 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.
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` | 32 | Combine individual groups |
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` | 42 | External Tools | cluster, proxysql, router, shell, codemode |
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` | 12 | ProxySQL management |
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/master/src/constants/ServerInstructions.ts) for per-tool details.
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 18, 2026**
5
+ **Last Updated February 26, 2026**
6
6
 
7
7
  [![GitHub](https://img.shields.io/badge/GitHub-neverinfamous/mysql--mcp-blue?logo=github)](https://github.com/neverinfamous/mysql-mcp)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -11,31 +11,33 @@
11
11
  [![Docker Pulls](https://img.shields.io/docker/pulls/writenotenow/mysql-mcp)](https://hub.docker.com/r/writenotenow/mysql-mcp)
12
12
  [![Security](https://img.shields.io/badge/Security-Enhanced-green.svg)](SECURITY.md)
13
13
  ![TypeScript](https://img.shields.io/badge/TypeScript-Strict-blue.svg)
14
- ![Tests](https://img.shields.io/badge/Tests-1835%20passing-brightgreen.svg)
15
- ![Coverage](https://img.shields.io/badge/Coverage-86%25-green.svg)
14
+ ![Tests](https://img.shields.io/badge/Tests-2169%20passing-brightgreen.svg)
15
+ ![Coverage](https://img.shields.io/badge/Coverage-90%25-brightgreen.svg)
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 | Description |
26
- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
27
- | **193 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
- | **Production-Ready Security** | SQL injection protection, parameterized queries, input validation, and audit capabilities |
37
- | **Strict TypeScript** | 100% type-safe codebase with 1833 tests and 86% coverage |
38
- | **MCP 2025-11-25 Compliant** | Full protocol support with tool safety hints, resource priorities, and progress notifications |
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 193 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.
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` | 32 | Combine individual groups |
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` | 42 | External Tools | cluster, proxysql, router, shell, codemode |
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` | 12 | ProxySQL management |
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 (42 Tools for InnoDB Cluster Deployments)
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 193 tools, 18 resources, and 19 prompts interactively.
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 (~86%) using Vitest.
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 101 test files use shared mocks for consistency
685
+ - All 111 test files use shared mocks for consistency
645
686
  - Tests run without database connection (fully mocked)
646
- - ~80 second total runtime
687
+ - ~28 second total runtime
647
688
 
648
689
  **Test Coverage:**
649
690
 
650
691
  | Component | Coverage | Notes |
651
692
  | --------------- | -------- | --------------------- |
652
- | **Global** | **86%+** | Statement coverage |
693
+ | **Global** | **90%+** | Statement coverage |
653
694
  | MySQLAdapter | 93%+ | Adapter logic covered |
654
- | Branch Coverage | ~72% | High branch coverage |
655
- | Tools (All) | 98%+ | 1833 tests passing |
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
- 2.3.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,CA2EA;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
+ {"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"}
@@ -150,6 +150,8 @@ export function createMockMySQLAdapter() {
150
150
  registerPrompts: vi.fn(),
151
151
  // Pool access
152
152
  getPool: vi.fn().mockReturnValue(null),
153
+ // Schema cache invalidation
154
+ clearSchemaCache: vi.fn(),
153
155
  };
154
156
  }
155
157
  /**
@@ -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":"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"}
1
+ {"version":3,"file":"DatabaseAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/DatabaseAdapter.ts"],"names":[],"mappings":"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"}
@@ -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 schema from prompt.arguments definitions
158
- const zodShape = {};
159
- if (prompt.arguments) {
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
- zodShape[arg.name] = arg.required
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: zodShape,
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":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB;;GAEG;AACH,MAAM,wBAAwB,GAAa;IACzC,cAAc;IACd,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS,EAAE,6BAA6B;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAAa;IAC/B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,OAAgB,eAAe;IAUnC,uBAAuB;IACb,SAAS,GAAG,KAAK,CAAC;IAiB5B;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAgGD;;;;OAIG;IACH,aAAa,CAAC,MAAiB,EAAE,YAAyB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAChC,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CACT,cAAc,UAAU,IAAI,KAAK,CAAC,MAAM,eAAe,IAAI,CAAC,IAAI,EAAE,CACnE,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,MAAiB,EAAE,IAAoB;QAC5D,6CAA6C;QAC7C,gEAAgE;QAChE,MAAM,WAAW,GAA4B;YAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QAEF,sDAAsD;QACtD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,4CAA4C;QAC5C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAChD,CAAC;QAED,mDAAmD;QACnD,sDAAsD;QACtD,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,GAAG,WAAW;YACd,WAAW,EAAE,IAAI,CAAC,WAAwB;SAC3C,EACD,KAAK,EAAE,MAAe,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EACF,OAAO,MAAM,KAAK,QAAQ;4BACxB,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAiB;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,MAAM,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACO,gBAAgB,CACxB,MAAiB,EACjB,QAA4B;QAE5B,2DAA2D;QAC3D,MAAM,YAAY,GAA4B;YAC5C,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,kBAAkB;SAClD,CAAC;QAEF,wBAAwB;QACxB,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,YAAY,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;QACzC,CAAC;QAED,oEAAoE;QACpE,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACzB,YAAY,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;QACrD,CAAC;QAED,MAAM,CAAC,gBAAgB,CACrB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,GAAG,EACZ,YAA2D,EAC3D,KAAK,EAAE,GAAQ,EAAE,EAAE;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;wBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,kBAAkB;wBACjD,IAAI,EACF,OAAO,MAAM,KAAK,QAAQ;4BACxB,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAiB;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,MAAM,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,MAAiB,EAAE,MAAwB;QAClE,6DAA6D;QAC7D,+EAA+E;QAC/E,EAAE;QACF,0EAA0E;QAC1E,wEAAwE;QACxE,sEAAsE;QACtE,yEAAyE;QACzE,gDAAgD;QAChD,IAAI,UAAiD,CAAC;QACtD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,UAAU,GAAG,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACnC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CACtC,MAAM,CAAC,IAAI,EACX;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU;SACX,EACD,KAAK,EAAE,YAAY,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,gEAAgE;YAChE,MAAM,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAA2B,CAAC;YAE5D,uCAAuC;YACvC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,oDAAoD;gBACpD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;qBACrC,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,WAAW,EAAE,CACnF;qBACA,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO;oBACL,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,MAAe;4BACrB,OAAO,EAAE;gCACP,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,KAAK,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,WAAW,uBAAuB,OAAO,+DAA+D;6BAC7I;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAe;wBACrB,OAAO,EAAE;4BACP,IAAI,EAAE,MAAe;4BACrB,IAAI,EACF,OAAO,MAAM,KAAK,QAAQ;gCACxB,CAAC,CAAC,MAAM;gCACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,wEAAwE;QACxE,uEAAuE;QACvE,iEAAiE;QACjE,sEAAsE;QACtE,uEAAuE;QACvE,uDAAuD;QACvD,2EAA2E;QAC3E,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,UAAU,CAAC,UAEzB,CAAC;YACF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAuB,EAAE,EAAE;gBAC5C,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBACjB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAE5E;;;;OAIG;IACH,aAAa,CAAC,GAAW,EAAE,UAAmB;QAC5C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE/C,+BAA+B;QAC/B,KAAK,MAAM,OAAO,IAAI,wBAAwB,EAAE,CAAC;YAC/C,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CACb,mBAAmB,OAAO,6BAA6B,CACxD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,SAAkB;QAC9B,OAAO;YACL,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE;SAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,sBAAsB,EAAE;SAC1C,CAAC;IACJ,CAAC;CACF"}