@neverinfamous/mysql-mcp 2.1.0 → 2.3.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 (802) hide show
  1. package/.env.example +14 -4
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +7 -1
  3. package/.github/ISSUE_TEMPLATE/feature_request.md +6 -1
  4. package/.github/dependabot.yml +15 -0
  5. package/.github/pull_request_template.md +5 -0
  6. package/.github/workflows/codeql.yml +41 -42
  7. package/.github/workflows/docker-publish.yml +247 -210
  8. package/.github/workflows/publish-npm.yml +16 -6
  9. package/CHANGELOG.md +357 -22
  10. package/CODE_MODE.md +245 -0
  11. package/CODE_OF_CONDUCT.md +2 -0
  12. package/DOCKER_README.md +250 -161
  13. package/Dockerfile +2 -2
  14. package/README.md +239 -182
  15. package/SECURITY.md +0 -8
  16. package/VERSION +1 -1
  17. package/dist/__tests__/mocks/adapter.d.ts +3 -3
  18. package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
  19. package/dist/__tests__/mocks/adapter.js +51 -35
  20. package/dist/__tests__/mocks/adapter.js.map +1 -1
  21. package/dist/__tests__/mocks/index.d.ts +4 -4
  22. package/dist/__tests__/mocks/index.d.ts.map +1 -1
  23. package/dist/__tests__/mocks/index.js +2 -2
  24. package/dist/__tests__/mocks/index.js.map +1 -1
  25. package/dist/__tests__/mocks/mysql.d.ts +2 -2
  26. package/dist/__tests__/mocks/mysql.d.ts.map +1 -1
  27. package/dist/__tests__/mocks/mysql.js +14 -14
  28. package/dist/__tests__/mocks/mysql.js.map +1 -1
  29. package/dist/__tests__/setup.d.ts.map +1 -1
  30. package/dist/__tests__/setup.js +7 -7
  31. package/dist/__tests__/setup.js.map +1 -1
  32. package/dist/adapters/DatabaseAdapter.d.ts +2 -2
  33. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -1
  34. package/dist/adapters/DatabaseAdapter.js +69 -40
  35. package/dist/adapters/DatabaseAdapter.js.map +1 -1
  36. package/dist/adapters/mysql/MySQLAdapter.d.ts +14 -4
  37. package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -1
  38. package/dist/adapters/mysql/MySQLAdapter.js +152 -116
  39. package/dist/adapters/mysql/MySQLAdapter.js.map +1 -1
  40. package/dist/adapters/mysql/SchemaManager.d.ts +1 -1
  41. package/dist/adapters/mysql/SchemaManager.d.ts.map +1 -1
  42. package/dist/adapters/mysql/SchemaManager.js +76 -56
  43. package/dist/adapters/mysql/SchemaManager.js.map +1 -1
  44. package/dist/adapters/mysql/index.d.ts +2 -2
  45. package/dist/adapters/mysql/index.js +2 -2
  46. package/dist/adapters/mysql/prompts/backupStrategy.d.ts +1 -1
  47. package/dist/adapters/mysql/prompts/backupStrategy.d.ts.map +1 -1
  48. package/dist/adapters/mysql/prompts/backupStrategy.js +21 -9
  49. package/dist/adapters/mysql/prompts/backupStrategy.js.map +1 -1
  50. package/dist/adapters/mysql/prompts/clusterSetup.d.ts +1 -1
  51. package/dist/adapters/mysql/prompts/clusterSetup.d.ts.map +1 -1
  52. package/dist/adapters/mysql/prompts/clusterSetup.js +3 -3
  53. package/dist/adapters/mysql/prompts/clusterSetup.js.map +1 -1
  54. package/dist/adapters/mysql/prompts/docstoreSetup.d.ts +1 -1
  55. package/dist/adapters/mysql/prompts/docstoreSetup.js +3 -3
  56. package/dist/adapters/mysql/prompts/docstoreSetup.js.map +1 -1
  57. package/dist/adapters/mysql/prompts/eventScheduler.d.ts +1 -1
  58. package/dist/adapters/mysql/prompts/eventScheduler.js +3 -3
  59. package/dist/adapters/mysql/prompts/eventScheduler.js.map +1 -1
  60. package/dist/adapters/mysql/prompts/healthCheck.d.ts +1 -1
  61. package/dist/adapters/mysql/prompts/healthCheck.d.ts.map +1 -1
  62. package/dist/adapters/mysql/prompts/healthCheck.js +10 -6
  63. package/dist/adapters/mysql/prompts/healthCheck.js.map +1 -1
  64. package/dist/adapters/mysql/prompts/index.d.ts +10 -3
  65. package/dist/adapters/mysql/prompts/index.d.ts.map +1 -1
  66. package/dist/adapters/mysql/prompts/index.js +106 -63
  67. package/dist/adapters/mysql/prompts/index.js.map +1 -1
  68. package/dist/adapters/mysql/prompts/indexTuning.d.ts +1 -1
  69. package/dist/adapters/mysql/prompts/indexTuning.d.ts.map +1 -1
  70. package/dist/adapters/mysql/prompts/indexTuning.js +11 -7
  71. package/dist/adapters/mysql/prompts/indexTuning.js.map +1 -1
  72. package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts +1 -1
  73. package/dist/adapters/mysql/prompts/mysqlshSetup.js +4 -4
  74. package/dist/adapters/mysql/prompts/mysqlshSetup.js.map +1 -1
  75. package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts +1 -1
  76. package/dist/adapters/mysql/prompts/proxysqlSetup.js +3 -3
  77. package/dist/adapters/mysql/prompts/proxysqlSetup.js.map +1 -1
  78. package/dist/adapters/mysql/prompts/replicationSetup.d.ts +1 -1
  79. package/dist/adapters/mysql/prompts/replicationSetup.d.ts.map +1 -1
  80. package/dist/adapters/mysql/prompts/replicationSetup.js +13 -7
  81. package/dist/adapters/mysql/prompts/replicationSetup.js.map +1 -1
  82. package/dist/adapters/mysql/prompts/routerSetup.d.ts +1 -1
  83. package/dist/adapters/mysql/prompts/routerSetup.d.ts.map +1 -1
  84. package/dist/adapters/mysql/prompts/routerSetup.js +8 -3
  85. package/dist/adapters/mysql/prompts/routerSetup.js.map +1 -1
  86. package/dist/adapters/mysql/prompts/spatialSetup.d.ts +1 -1
  87. package/dist/adapters/mysql/prompts/spatialSetup.js +3 -3
  88. package/dist/adapters/mysql/prompts/spatialSetup.js.map +1 -1
  89. package/dist/adapters/mysql/prompts/sysSchema.d.ts +1 -1
  90. package/dist/adapters/mysql/prompts/sysSchema.d.ts.map +1 -1
  91. package/dist/adapters/mysql/prompts/sysSchema.js +3 -3
  92. package/dist/adapters/mysql/prompts/sysSchema.js.map +1 -1
  93. package/dist/adapters/mysql/resources/capabilities.d.ts +2 -2
  94. package/dist/adapters/mysql/resources/capabilities.d.ts.map +1 -1
  95. package/dist/adapters/mysql/resources/capabilities.js +19 -16
  96. package/dist/adapters/mysql/resources/capabilities.js.map +1 -1
  97. package/dist/adapters/mysql/resources/cluster.d.ts +2 -2
  98. package/dist/adapters/mysql/resources/cluster.d.ts.map +1 -1
  99. package/dist/adapters/mysql/resources/cluster.js +17 -15
  100. package/dist/adapters/mysql/resources/cluster.js.map +1 -1
  101. package/dist/adapters/mysql/resources/docstore.d.ts +2 -2
  102. package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -1
  103. package/dist/adapters/mysql/resources/docstore.js +12 -12
  104. package/dist/adapters/mysql/resources/docstore.js.map +1 -1
  105. package/dist/adapters/mysql/resources/events.d.ts +2 -2
  106. package/dist/adapters/mysql/resources/events.d.ts.map +1 -1
  107. package/dist/adapters/mysql/resources/events.js +12 -12
  108. package/dist/adapters/mysql/resources/events.js.map +1 -1
  109. package/dist/adapters/mysql/resources/health.d.ts +2 -2
  110. package/dist/adapters/mysql/resources/health.d.ts.map +1 -1
  111. package/dist/adapters/mysql/resources/health.js +36 -32
  112. package/dist/adapters/mysql/resources/health.js.map +1 -1
  113. package/dist/adapters/mysql/resources/index.d.ts +11 -3
  114. package/dist/adapters/mysql/resources/index.d.ts.map +1 -1
  115. package/dist/adapters/mysql/resources/index.js +28 -20
  116. package/dist/adapters/mysql/resources/index.js.map +1 -1
  117. package/dist/adapters/mysql/resources/indexes.d.ts +2 -2
  118. package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -1
  119. package/dist/adapters/mysql/resources/indexes.js +12 -12
  120. package/dist/adapters/mysql/resources/indexes.js.map +1 -1
  121. package/dist/adapters/mysql/resources/innodb.d.ts +2 -2
  122. package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -1
  123. package/dist/adapters/mysql/resources/innodb.js +37 -36
  124. package/dist/adapters/mysql/resources/innodb.js.map +1 -1
  125. package/dist/adapters/mysql/resources/locks.d.ts +2 -2
  126. package/dist/adapters/mysql/resources/locks.d.ts.map +1 -1
  127. package/dist/adapters/mysql/resources/locks.js +14 -14
  128. package/dist/adapters/mysql/resources/locks.js.map +1 -1
  129. package/dist/adapters/mysql/resources/performance.d.ts +2 -2
  130. package/dist/adapters/mysql/resources/performance.d.ts.map +1 -1
  131. package/dist/adapters/mysql/resources/performance.js +30 -29
  132. package/dist/adapters/mysql/resources/performance.js.map +1 -1
  133. package/dist/adapters/mysql/resources/pool.d.ts +2 -2
  134. package/dist/adapters/mysql/resources/pool.d.ts.map +1 -1
  135. package/dist/adapters/mysql/resources/pool.js +9 -9
  136. package/dist/adapters/mysql/resources/pool.js.map +1 -1
  137. package/dist/adapters/mysql/resources/processlist.d.ts +2 -2
  138. package/dist/adapters/mysql/resources/processlist.d.ts.map +1 -1
  139. package/dist/adapters/mysql/resources/processlist.js +9 -9
  140. package/dist/adapters/mysql/resources/processlist.js.map +1 -1
  141. package/dist/adapters/mysql/resources/replication.d.ts +2 -2
  142. package/dist/adapters/mysql/resources/replication.d.ts.map +1 -1
  143. package/dist/adapters/mysql/resources/replication.js +42 -35
  144. package/dist/adapters/mysql/resources/replication.js.map +1 -1
  145. package/dist/adapters/mysql/resources/schema.d.ts +2 -2
  146. package/dist/adapters/mysql/resources/schema.d.ts.map +1 -1
  147. package/dist/adapters/mysql/resources/schema.js +8 -8
  148. package/dist/adapters/mysql/resources/schema.js.map +1 -1
  149. package/dist/adapters/mysql/resources/spatial.d.ts +2 -2
  150. package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -1
  151. package/dist/adapters/mysql/resources/spatial.js +9 -9
  152. package/dist/adapters/mysql/resources/spatial.js.map +1 -1
  153. package/dist/adapters/mysql/resources/status.d.ts +2 -2
  154. package/dist/adapters/mysql/resources/status.d.ts.map +1 -1
  155. package/dist/adapters/mysql/resources/status.js +10 -10
  156. package/dist/adapters/mysql/resources/status.js.map +1 -1
  157. package/dist/adapters/mysql/resources/sysschema.d.ts +2 -2
  158. package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -1
  159. package/dist/adapters/mysql/resources/sysschema.js +10 -10
  160. package/dist/adapters/mysql/resources/sysschema.js.map +1 -1
  161. package/dist/adapters/mysql/resources/tables.d.ts +2 -2
  162. package/dist/adapters/mysql/resources/tables.d.ts.map +1 -1
  163. package/dist/adapters/mysql/resources/tables.js +8 -8
  164. package/dist/adapters/mysql/resources/tables.js.map +1 -1
  165. package/dist/adapters/mysql/resources/variables.d.ts +2 -2
  166. package/dist/adapters/mysql/resources/variables.d.ts.map +1 -1
  167. package/dist/adapters/mysql/resources/variables.js +10 -10
  168. package/dist/adapters/mysql/resources/variables.js.map +1 -1
  169. package/dist/adapters/mysql/tools/admin/backup.d.ts +2 -2
  170. package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -1
  171. package/dist/adapters/mysql/tools/admin/backup.js +193 -101
  172. package/dist/adapters/mysql/tools/admin/backup.js.map +1 -1
  173. package/dist/adapters/mysql/tools/admin/index.d.ts +2 -2
  174. package/dist/adapters/mysql/tools/admin/index.js +6 -6
  175. package/dist/adapters/mysql/tools/admin/index.js.map +1 -1
  176. package/dist/adapters/mysql/tools/admin/maintenance.d.ts +2 -2
  177. package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -1
  178. package/dist/adapters/mysql/tools/admin/maintenance.js +97 -66
  179. package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -1
  180. package/dist/adapters/mysql/tools/admin/monitoring.d.ts +2 -2
  181. package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -1
  182. package/dist/adapters/mysql/tools/admin/monitoring.js +215 -79
  183. package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -1
  184. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts +2 -2
  185. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -1
  186. package/dist/adapters/mysql/tools/cluster/group-replication.js +90 -74
  187. package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -1
  188. package/dist/adapters/mysql/tools/cluster/index.d.ts +2 -2
  189. package/dist/adapters/mysql/tools/cluster/index.js +3 -3
  190. package/dist/adapters/mysql/tools/cluster/index.js.map +1 -1
  191. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts +2 -2
  192. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -1
  193. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +225 -97
  194. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -1
  195. package/dist/adapters/mysql/tools/codemode/index.d.ts +38 -0
  196. package/dist/adapters/mysql/tools/codemode/index.d.ts.map +1 -0
  197. package/dist/adapters/mysql/tools/codemode/index.js +203 -0
  198. package/dist/adapters/mysql/tools/codemode/index.js.map +1 -0
  199. package/dist/adapters/mysql/tools/core.d.ts +2 -2
  200. package/dist/adapters/mysql/tools/core.d.ts.map +1 -1
  201. package/dist/adapters/mysql/tools/core.js +234 -114
  202. package/dist/adapters/mysql/tools/core.js.map +1 -1
  203. package/dist/adapters/mysql/tools/docstore.d.ts +2 -2
  204. package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -1
  205. package/dist/adapters/mysql/tools/docstore.js +252 -117
  206. package/dist/adapters/mysql/tools/docstore.js.map +1 -1
  207. package/dist/adapters/mysql/tools/events.d.ts +2 -2
  208. package/dist/adapters/mysql/tools/events.d.ts.map +1 -1
  209. package/dist/adapters/mysql/tools/events.js +236 -113
  210. package/dist/adapters/mysql/tools/events.js.map +1 -1
  211. package/dist/adapters/mysql/tools/index.d.ts +19 -19
  212. package/dist/adapters/mysql/tools/index.d.ts.map +1 -1
  213. package/dist/adapters/mysql/tools/index.js +19 -19
  214. package/dist/adapters/mysql/tools/index.js.map +1 -1
  215. package/dist/adapters/mysql/tools/json/core.d.ts +2 -2
  216. package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -1
  217. package/dist/adapters/mysql/tools/json/core.js +225 -131
  218. package/dist/adapters/mysql/tools/json/core.js.map +1 -1
  219. package/dist/adapters/mysql/tools/json/enhanced.d.ts +2 -2
  220. package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -1
  221. package/dist/adapters/mysql/tools/json/enhanced.js +274 -163
  222. package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -1
  223. package/dist/adapters/mysql/tools/json/helpers.d.ts +2 -2
  224. package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -1
  225. package/dist/adapters/mysql/tools/json/helpers.js +141 -57
  226. package/dist/adapters/mysql/tools/json/helpers.js.map +1 -1
  227. package/dist/adapters/mysql/tools/json/index.d.ts +2 -2
  228. package/dist/adapters/mysql/tools/json/index.js +6 -6
  229. package/dist/adapters/mysql/tools/json/index.js.map +1 -1
  230. package/dist/adapters/mysql/tools/partitioning.d.ts +2 -2
  231. package/dist/adapters/mysql/tools/partitioning.d.ts.map +1 -1
  232. package/dist/adapters/mysql/tools/partitioning.js +180 -64
  233. package/dist/adapters/mysql/tools/partitioning.js.map +1 -1
  234. package/dist/adapters/mysql/tools/performance/analysis.d.ts +2 -2
  235. package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -1
  236. package/dist/adapters/mysql/tools/performance/analysis.js +184 -101
  237. package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -1
  238. package/dist/adapters/mysql/tools/performance/index.d.ts +2 -2
  239. package/dist/adapters/mysql/tools/performance/index.js +4 -4
  240. package/dist/adapters/mysql/tools/performance/index.js.map +1 -1
  241. package/dist/adapters/mysql/tools/performance/optimization.d.ts +3 -3
  242. package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -1
  243. package/dist/adapters/mysql/tools/performance/optimization.js +229 -77
  244. package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -1
  245. package/dist/adapters/mysql/tools/proxysql.d.ts +2 -2
  246. package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -1
  247. package/dist/adapters/mysql/tools/proxysql.js +213 -125
  248. package/dist/adapters/mysql/tools/proxysql.js.map +1 -1
  249. package/dist/adapters/mysql/tools/replication.d.ts +2 -2
  250. package/dist/adapters/mysql/tools/replication.d.ts.map +1 -1
  251. package/dist/adapters/mysql/tools/replication.js +117 -66
  252. package/dist/adapters/mysql/tools/replication.js.map +1 -1
  253. package/dist/adapters/mysql/tools/roles.d.ts +2 -2
  254. package/dist/adapters/mysql/tools/roles.d.ts.map +1 -1
  255. package/dist/adapters/mysql/tools/roles.js +276 -84
  256. package/dist/adapters/mysql/tools/roles.js.map +1 -1
  257. package/dist/adapters/mysql/tools/router.d.ts +2 -2
  258. package/dist/adapters/mysql/tools/router.d.ts.map +1 -1
  259. package/dist/adapters/mysql/tools/router.js +174 -109
  260. package/dist/adapters/mysql/tools/router.js.map +1 -1
  261. package/dist/adapters/mysql/tools/schema/constraints.d.ts +2 -2
  262. package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -1
  263. package/dist/adapters/mysql/tools/schema/constraints.js +24 -15
  264. package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -1
  265. package/dist/adapters/mysql/tools/schema/index.d.ts +2 -2
  266. package/dist/adapters/mysql/tools/schema/index.d.ts.map +1 -1
  267. package/dist/adapters/mysql/tools/schema/index.js +7 -7
  268. package/dist/adapters/mysql/tools/schema/index.js.map +1 -1
  269. package/dist/adapters/mysql/tools/schema/management.d.ts +2 -2
  270. package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -1
  271. package/dist/adapters/mysql/tools/schema/management.js +99 -42
  272. package/dist/adapters/mysql/tools/schema/management.js.map +1 -1
  273. package/dist/adapters/mysql/tools/schema/routines.d.ts +2 -2
  274. package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -1
  275. package/dist/adapters/mysql/tools/schema/routines.js +36 -19
  276. package/dist/adapters/mysql/tools/schema/routines.js.map +1 -1
  277. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts +2 -2
  278. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -1
  279. package/dist/adapters/mysql/tools/schema/scheduled_events.js +26 -13
  280. package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -1
  281. package/dist/adapters/mysql/tools/schema/triggers.d.ts +2 -2
  282. package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -1
  283. package/dist/adapters/mysql/tools/schema/triggers.js +24 -13
  284. package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -1
  285. package/dist/adapters/mysql/tools/schema/views.d.ts +2 -2
  286. package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -1
  287. package/dist/adapters/mysql/tools/schema/views.js +59 -28
  288. package/dist/adapters/mysql/tools/schema/views.js.map +1 -1
  289. package/dist/adapters/mysql/tools/security/audit.d.ts +2 -2
  290. package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -1
  291. package/dist/adapters/mysql/tools/security/audit.js +61 -55
  292. package/dist/adapters/mysql/tools/security/audit.js.map +1 -1
  293. package/dist/adapters/mysql/tools/security/data-protection.d.ts +2 -2
  294. package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -1
  295. package/dist/adapters/mysql/tools/security/data-protection.js +193 -80
  296. package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -1
  297. package/dist/adapters/mysql/tools/security/encryption.d.ts +2 -2
  298. package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -1
  299. package/dist/adapters/mysql/tools/security/encryption.js +86 -67
  300. package/dist/adapters/mysql/tools/security/encryption.js.map +1 -1
  301. package/dist/adapters/mysql/tools/security/index.d.ts +2 -2
  302. package/dist/adapters/mysql/tools/security/index.js +4 -4
  303. package/dist/adapters/mysql/tools/security/index.js.map +1 -1
  304. package/dist/adapters/mysql/tools/shell/backup.d.ts +1 -1
  305. package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -1
  306. package/dist/adapters/mysql/tools/shell/backup.js +122 -63
  307. package/dist/adapters/mysql/tools/shell/backup.js.map +1 -1
  308. package/dist/adapters/mysql/tools/shell/common.d.ts.map +1 -1
  309. package/dist/adapters/mysql/tools/shell/common.js +61 -37
  310. package/dist/adapters/mysql/tools/shell/common.js.map +1 -1
  311. package/dist/adapters/mysql/tools/shell/data-transfer.d.ts +1 -1
  312. package/dist/adapters/mysql/tools/shell/data-transfer.d.ts.map +1 -1
  313. package/dist/adapters/mysql/tools/shell/data-transfer.js +125 -69
  314. package/dist/adapters/mysql/tools/shell/data-transfer.js.map +1 -1
  315. package/dist/adapters/mysql/tools/shell/index.d.ts +2 -2
  316. package/dist/adapters/mysql/tools/shell/index.js +6 -6
  317. package/dist/adapters/mysql/tools/shell/index.js.map +1 -1
  318. package/dist/adapters/mysql/tools/shell/info.d.ts +1 -1
  319. package/dist/adapters/mysql/tools/shell/info.d.ts.map +1 -1
  320. package/dist/adapters/mysql/tools/shell/info.js +12 -12
  321. package/dist/adapters/mysql/tools/shell/info.js.map +1 -1
  322. package/dist/adapters/mysql/tools/shell/restore.d.ts +1 -1
  323. package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -1
  324. package/dist/adapters/mysql/tools/shell/restore.js +128 -43
  325. package/dist/adapters/mysql/tools/shell/restore.js.map +1 -1
  326. package/dist/adapters/mysql/tools/shell/utilities.d.ts +1 -1
  327. package/dist/adapters/mysql/tools/shell/utilities.d.ts.map +1 -1
  328. package/dist/adapters/mysql/tools/shell/utilities.js +42 -18
  329. package/dist/adapters/mysql/tools/shell/utilities.js.map +1 -1
  330. package/dist/adapters/mysql/tools/spatial/geometry.d.ts +2 -2
  331. package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -1
  332. package/dist/adapters/mysql/tools/spatial/geometry.js +85 -46
  333. package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -1
  334. package/dist/adapters/mysql/tools/spatial/index.d.ts +2 -2
  335. package/dist/adapters/mysql/tools/spatial/index.js +5 -5
  336. package/dist/adapters/mysql/tools/spatial/index.js.map +1 -1
  337. package/dist/adapters/mysql/tools/spatial/operations.d.ts +2 -2
  338. package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -1
  339. package/dist/adapters/mysql/tools/spatial/operations.js +175 -106
  340. package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -1
  341. package/dist/adapters/mysql/tools/spatial/queries.d.ts +2 -2
  342. package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -1
  343. package/dist/adapters/mysql/tools/spatial/queries.js +144 -100
  344. package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -1
  345. package/dist/adapters/mysql/tools/spatial/setup.d.ts +2 -2
  346. package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -1
  347. package/dist/adapters/mysql/tools/spatial/setup.js +122 -34
  348. package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -1
  349. package/dist/adapters/mysql/tools/stats/comparative.d.ts +2 -2
  350. package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -1
  351. package/dist/adapters/mysql/tools/stats/comparative.js +159 -107
  352. package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -1
  353. package/dist/adapters/mysql/tools/stats/descriptive.d.ts +2 -2
  354. package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -1
  355. package/dist/adapters/mysql/tools/stats/descriptive.js +268 -205
  356. package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -1
  357. package/dist/adapters/mysql/tools/stats/index.d.ts +2 -2
  358. package/dist/adapters/mysql/tools/stats/index.js +3 -3
  359. package/dist/adapters/mysql/tools/stats/index.js.map +1 -1
  360. package/dist/adapters/mysql/tools/sysschema/activity.d.ts +2 -2
  361. package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -1
  362. package/dist/adapters/mysql/tools/sysschema/activity.js +23 -23
  363. package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -1
  364. package/dist/adapters/mysql/tools/sysschema/index.d.ts +2 -2
  365. package/dist/adapters/mysql/tools/sysschema/index.js +4 -4
  366. package/dist/adapters/mysql/tools/sysschema/index.js.map +1 -1
  367. package/dist/adapters/mysql/tools/sysschema/performance.d.ts +2 -2
  368. package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -1
  369. package/dist/adapters/mysql/tools/sysschema/performance.js +58 -43
  370. package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -1
  371. package/dist/adapters/mysql/tools/sysschema/resources.d.ts +2 -2
  372. package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -1
  373. package/dist/adapters/mysql/tools/sysschema/resources.js +58 -33
  374. package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -1
  375. package/dist/adapters/mysql/tools/text/fulltext.d.ts +4 -3
  376. package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -1
  377. package/dist/adapters/mysql/tools/text/fulltext.js +214 -55
  378. package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -1
  379. package/dist/adapters/mysql/tools/text/index.d.ts +3 -3
  380. package/dist/adapters/mysql/tools/text/index.d.ts.map +1 -1
  381. package/dist/adapters/mysql/tools/text/index.js +6 -5
  382. package/dist/adapters/mysql/tools/text/index.js.map +1 -1
  383. package/dist/adapters/mysql/tools/text/processing.d.ts +2 -2
  384. package/dist/adapters/mysql/tools/text/processing.d.ts.map +1 -1
  385. package/dist/adapters/mysql/tools/text/processing.js +175 -122
  386. package/dist/adapters/mysql/tools/text/processing.js.map +1 -1
  387. package/dist/adapters/mysql/tools/transactions.d.ts +2 -2
  388. package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -1
  389. package/dist/adapters/mysql/tools/transactions.js +162 -85
  390. package/dist/adapters/mysql/tools/transactions.js.map +1 -1
  391. package/dist/adapters/mysql/types/proxysql-types.d.ts +7 -2
  392. package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -1
  393. package/dist/adapters/mysql/types/proxysql-types.js +52 -30
  394. package/dist/adapters/mysql/types/proxysql-types.js.map +1 -1
  395. package/dist/adapters/mysql/types/router-types.d.ts +1 -1
  396. package/dist/adapters/mysql/types/router-types.js +17 -17
  397. package/dist/adapters/mysql/types/router-types.js.map +1 -1
  398. package/dist/adapters/mysql/types/shell-types.d.ts +1 -2
  399. package/dist/adapters/mysql/types/shell-types.d.ts.map +1 -1
  400. package/dist/adapters/mysql/types/shell-types.js +255 -82
  401. package/dist/adapters/mysql/types/shell-types.js.map +1 -1
  402. package/dist/adapters/mysql/types.d.ts +976 -80
  403. package/dist/adapters/mysql/types.d.ts.map +1 -1
  404. package/dist/adapters/mysql/types.js +1317 -170
  405. package/dist/adapters/mysql/types.js.map +1 -1
  406. package/dist/auth/AuthorizationServerDiscovery.d.ts +1 -1
  407. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -1
  408. package/dist/auth/AuthorizationServerDiscovery.js +16 -14
  409. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -1
  410. package/dist/auth/OAuthResourceServer.d.ts +1 -1
  411. package/dist/auth/OAuthResourceServer.d.ts.map +1 -1
  412. package/dist/auth/OAuthResourceServer.js +4 -4
  413. package/dist/auth/OAuthResourceServer.js.map +1 -1
  414. package/dist/auth/TokenValidator.d.ts +1 -1
  415. package/dist/auth/TokenValidator.d.ts.map +1 -1
  416. package/dist/auth/TokenValidator.js +30 -20
  417. package/dist/auth/TokenValidator.js.map +1 -1
  418. package/dist/auth/errors.d.ts.map +1 -1
  419. package/dist/auth/errors.js +24 -24
  420. package/dist/auth/errors.js.map +1 -1
  421. package/dist/auth/index.d.ts +7 -7
  422. package/dist/auth/index.d.ts.map +1 -1
  423. package/dist/auth/index.js +6 -6
  424. package/dist/auth/index.js.map +1 -1
  425. package/dist/auth/middleware.d.ts +2 -2
  426. package/dist/auth/middleware.d.ts.map +1 -1
  427. package/dist/auth/middleware.js +28 -24
  428. package/dist/auth/middleware.js.map +1 -1
  429. package/dist/auth/scopes.d.ts +2 -2
  430. package/dist/auth/scopes.d.ts.map +1 -1
  431. package/dist/auth/scopes.js +23 -16
  432. package/dist/auth/scopes.js.map +1 -1
  433. package/dist/auth/types.d.ts +2 -2
  434. package/dist/auth/types.d.ts.map +1 -1
  435. package/dist/cli/args.d.ts +1 -1
  436. package/dist/cli/args.d.ts.map +1 -1
  437. package/dist/cli/args.js +82 -68
  438. package/dist/cli/args.js.map +1 -1
  439. package/dist/cli.d.ts +1 -1
  440. package/dist/cli.d.ts.map +1 -1
  441. package/dist/cli.js +44 -34
  442. package/dist/cli.js.map +1 -1
  443. package/dist/codemode/api.d.ts +69 -0
  444. package/dist/codemode/api.d.ts.map +1 -0
  445. package/dist/codemode/api.js +1035 -0
  446. package/dist/codemode/api.js.map +1 -0
  447. package/dist/codemode/index.d.ts +13 -0
  448. package/dist/codemode/index.d.ts.map +1 -0
  449. package/dist/codemode/index.js +17 -0
  450. package/dist/codemode/index.js.map +1 -0
  451. package/dist/codemode/sandbox-factory.d.ts +72 -0
  452. package/dist/codemode/sandbox-factory.d.ts.map +1 -0
  453. package/dist/codemode/sandbox-factory.js +88 -0
  454. package/dist/codemode/sandbox-factory.js.map +1 -0
  455. package/dist/codemode/sandbox.d.ts +96 -0
  456. package/dist/codemode/sandbox.d.ts.map +1 -0
  457. package/dist/codemode/sandbox.js +345 -0
  458. package/dist/codemode/sandbox.js.map +1 -0
  459. package/dist/codemode/security.d.ts +44 -0
  460. package/dist/codemode/security.d.ts.map +1 -0
  461. package/dist/codemode/security.js +149 -0
  462. package/dist/codemode/security.js.map +1 -0
  463. package/dist/codemode/types.d.ts +137 -0
  464. package/dist/codemode/types.d.ts.map +1 -0
  465. package/dist/codemode/types.js +46 -0
  466. package/dist/codemode/types.js.map +1 -0
  467. package/dist/codemode/worker-sandbox.d.ts +82 -0
  468. package/dist/codemode/worker-sandbox.d.ts.map +1 -0
  469. package/dist/codemode/worker-sandbox.js +244 -0
  470. package/dist/codemode/worker-sandbox.js.map +1 -0
  471. package/dist/codemode/worker-script.d.ts +8 -0
  472. package/dist/codemode/worker-script.d.ts.map +1 -0
  473. package/dist/codemode/worker-script.js +113 -0
  474. package/dist/codemode/worker-script.js.map +1 -0
  475. package/dist/constants/ServerInstructions.d.ts +2 -2
  476. package/dist/constants/ServerInstructions.d.ts.map +1 -1
  477. package/dist/constants/ServerInstructions.js +252 -36
  478. package/dist/constants/ServerInstructions.js.map +1 -1
  479. package/dist/filtering/ToolConstants.d.ts +12 -12
  480. package/dist/filtering/ToolConstants.d.ts.map +1 -1
  481. package/dist/filtering/ToolConstants.js +253 -214
  482. package/dist/filtering/ToolConstants.js.map +1 -1
  483. package/dist/filtering/ToolFilter.d.ts +2 -2
  484. package/dist/filtering/ToolFilter.d.ts.map +1 -1
  485. package/dist/filtering/ToolFilter.js +47 -36
  486. package/dist/filtering/ToolFilter.js.map +1 -1
  487. package/dist/index.d.ts +9 -9
  488. package/dist/index.d.ts.map +1 -1
  489. package/dist/index.js +7 -7
  490. package/dist/index.js.map +1 -1
  491. package/dist/logging/McpLogging.d.ts +2 -2
  492. package/dist/logging/McpLogging.d.ts.map +1 -1
  493. package/dist/logging/McpLogging.js +16 -13
  494. package/dist/logging/McpLogging.js.map +1 -1
  495. package/dist/logging/index.d.ts +1 -1
  496. package/dist/logging/index.js +1 -1
  497. package/dist/pool/ConnectionPool.d.ts +3 -3
  498. package/dist/pool/ConnectionPool.d.ts.map +1 -1
  499. package/dist/pool/ConnectionPool.js +30 -26
  500. package/dist/pool/ConnectionPool.js.map +1 -1
  501. package/dist/progress/ProgressReporter.d.ts +1 -1
  502. package/dist/progress/ProgressReporter.d.ts.map +1 -1
  503. package/dist/progress/ProgressReporter.js +5 -5
  504. package/dist/progress/ProgressReporter.js.map +1 -1
  505. package/dist/progress/index.d.ts +1 -1
  506. package/dist/progress/index.d.ts.map +1 -1
  507. package/dist/progress/index.js +1 -1
  508. package/dist/progress/index.js.map +1 -1
  509. package/dist/server/McpServer.d.ts +3 -3
  510. package/dist/server/McpServer.d.ts.map +1 -1
  511. package/dist/server/McpServer.js +58 -53
  512. package/dist/server/McpServer.js.map +1 -1
  513. package/dist/transports/http.d.ts +3 -3
  514. package/dist/transports/http.d.ts.map +1 -1
  515. package/dist/transports/http.js +36 -33
  516. package/dist/transports/http.js.map +1 -1
  517. package/dist/transports/index.d.ts +1 -1
  518. package/dist/transports/index.d.ts.map +1 -1
  519. package/dist/transports/index.js +1 -1
  520. package/dist/transports/index.js.map +1 -1
  521. package/dist/types/index.d.ts +6 -6
  522. package/dist/types/index.d.ts.map +1 -1
  523. package/dist/types/index.js +1 -1
  524. package/dist/types/index.js.map +1 -1
  525. package/dist/types/modules/database.d.ts +1 -1
  526. package/dist/types/modules/database.d.ts.map +1 -1
  527. package/dist/types/modules/errors.d.ts.map +1 -1
  528. package/dist/types/modules/errors.js +15 -15
  529. package/dist/types/modules/errors.js.map +1 -1
  530. package/dist/types/modules/oauth.d.ts +1 -1
  531. package/dist/types/modules/oauth.d.ts.map +1 -1
  532. package/dist/types/modules/query.d.ts +8 -8
  533. package/dist/types/modules/query.d.ts.map +1 -1
  534. package/dist/types/modules/server.d.ts +5 -3
  535. package/dist/types/modules/server.d.ts.map +1 -1
  536. package/dist/types/modules/tools.d.ts +6 -6
  537. package/dist/types/modules/tools.d.ts.map +1 -1
  538. package/dist/utils/logger.d.ts +2 -2
  539. package/dist/utils/logger.d.ts.map +1 -1
  540. package/dist/utils/logger.js +58 -55
  541. package/dist/utils/logger.js.map +1 -1
  542. package/dist/utils/promptGenerator.d.ts +1 -1
  543. package/dist/utils/promptGenerator.d.ts.map +1 -1
  544. package/dist/utils/promptGenerator.js +24 -16
  545. package/dist/utils/promptGenerator.js.map +1 -1
  546. package/dist/utils/validators.d.ts +21 -2
  547. package/dist/utils/validators.d.ts.map +1 -1
  548. package/dist/utils/validators.js +101 -13
  549. package/dist/utils/validators.js.map +1 -1
  550. package/eslint.config.js +117 -81
  551. package/package.json +66 -64
  552. package/releases/release-notes.md +32 -26
  553. package/releases/v2.0.0-release-notes.md +99 -51
  554. package/releases/v2.1.0-release-notes.md +14 -5
  555. package/releases/v2.2.0-release-notes.md +239 -0
  556. package/releases/v2.3.0-release-notes.md +191 -0
  557. package/server.json +1 -1
  558. package/src/__tests__/cli.test.ts +302 -247
  559. package/src/__tests__/index.test.ts +21 -21
  560. package/src/__tests__/mocks/adapter.ts +204 -163
  561. package/src/__tests__/mocks/index.ts +30 -23
  562. package/src/__tests__/mocks/mysql.ts +94 -84
  563. package/src/__tests__/perf.test.ts +207 -203
  564. package/src/__tests__/performance.test.ts +173 -164
  565. package/src/__tests__/setup.ts +26 -21
  566. package/src/adapters/DatabaseAdapter.ts +386 -340
  567. package/src/adapters/__tests__/DatabaseAdapter.test.ts +455 -377
  568. package/src/adapters/mysql/MySQLAdapter.ts +560 -486
  569. package/src/adapters/mysql/SchemaManager.ts +251 -208
  570. package/src/adapters/mysql/__tests__/MySQLAdapter.integration.test.ts +150 -147
  571. package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +590 -477
  572. package/src/adapters/mysql/__tests__/SchemaManager.test.ts +196 -154
  573. package/src/adapters/mysql/index.ts +2 -2
  574. package/src/adapters/mysql/prompts/__tests__/indexTuning.test.ts +33 -26
  575. package/src/adapters/mysql/prompts/__tests__/prompts.test.ts +277 -239
  576. package/src/adapters/mysql/prompts/backupStrategy.ts +29 -17
  577. package/src/adapters/mysql/prompts/clusterSetup.ts +11 -10
  578. package/src/adapters/mysql/prompts/docstoreSetup.ts +10 -10
  579. package/src/adapters/mysql/prompts/eventScheduler.ts +10 -10
  580. package/src/adapters/mysql/prompts/healthCheck.ts +20 -15
  581. package/src/adapters/mysql/prompts/index.ts +202 -145
  582. package/src/adapters/mysql/prompts/indexTuning.ts +22 -17
  583. package/src/adapters/mysql/prompts/mysqlshSetup.ts +11 -11
  584. package/src/adapters/mysql/prompts/proxysqlSetup.ts +10 -10
  585. package/src/adapters/mysql/prompts/replicationSetup.ts +24 -16
  586. package/src/adapters/mysql/prompts/routerSetup.ts +15 -10
  587. package/src/adapters/mysql/prompts/spatialSetup.ts +10 -10
  588. package/src/adapters/mysql/prompts/sysSchema.ts +11 -10
  589. package/src/adapters/mysql/resources/__tests__/capabilities.test.ts +118 -47
  590. package/src/adapters/mysql/resources/__tests__/cluster.test.ts +163 -104
  591. package/src/adapters/mysql/resources/__tests__/docstore.test.ts +88 -81
  592. package/src/adapters/mysql/resources/__tests__/events.test.ts +94 -83
  593. package/src/adapters/mysql/resources/__tests__/health.test.ts +131 -91
  594. package/src/adapters/mysql/resources/__tests__/indexes.test.ts +125 -102
  595. package/src/adapters/mysql/resources/__tests__/innodb.test.ts +86 -62
  596. package/src/adapters/mysql/resources/__tests__/locks.test.ts +142 -104
  597. package/src/adapters/mysql/resources/__tests__/performance.test.ts +81 -58
  598. package/src/adapters/mysql/resources/__tests__/pool.test.ts +45 -40
  599. package/src/adapters/mysql/resources/__tests__/processlist.test.ts +39 -23
  600. package/src/adapters/mysql/resources/__tests__/replication.test.ts +265 -211
  601. package/src/adapters/mysql/resources/__tests__/resources.test.ts +121 -109
  602. package/src/adapters/mysql/resources/__tests__/schema.test.ts +29 -23
  603. package/src/adapters/mysql/resources/__tests__/spatial.test.ts +58 -45
  604. package/src/adapters/mysql/resources/__tests__/status.test.ts +62 -45
  605. package/src/adapters/mysql/resources/__tests__/sysschema.test.ts +99 -60
  606. package/src/adapters/mysql/resources/__tests__/tables.test.ts +41 -32
  607. package/src/adapters/mysql/resources/__tests__/variables.test.ts +77 -49
  608. package/src/adapters/mysql/resources/capabilities.ts +61 -42
  609. package/src/adapters/mysql/resources/cluster.ts +58 -49
  610. package/src/adapters/mysql/resources/docstore.ts +46 -41
  611. package/src/adapters/mysql/resources/events.ts +37 -31
  612. package/src/adapters/mysql/resources/health.ts +98 -74
  613. package/src/adapters/mysql/resources/index.ts +55 -47
  614. package/src/adapters/mysql/resources/indexes.ts +66 -51
  615. package/src/adapters/mysql/resources/innodb.ts +98 -81
  616. package/src/adapters/mysql/resources/locks.ts +43 -40
  617. package/src/adapters/mysql/resources/performance.ts +80 -67
  618. package/src/adapters/mysql/resources/pool.ts +23 -20
  619. package/src/adapters/mysql/resources/processlist.ts +23 -18
  620. package/src/adapters/mysql/resources/replication.ts +124 -105
  621. package/src/adapters/mysql/resources/schema.ts +23 -18
  622. package/src/adapters/mysql/resources/spatial.ts +31 -26
  623. package/src/adapters/mysql/resources/status.ts +27 -22
  624. package/src/adapters/mysql/resources/sysschema.ts +41 -36
  625. package/src/adapters/mysql/resources/tables.ts +23 -18
  626. package/src/adapters/mysql/resources/variables.ts +27 -22
  627. package/src/adapters/mysql/tools/__tests__/cluster.test.ts +419 -311
  628. package/src/adapters/mysql/tools/__tests__/core.test.ts +701 -382
  629. package/src/adapters/mysql/tools/__tests__/docstore.test.ts +782 -413
  630. package/src/adapters/mysql/tools/__tests__/events.test.ts +806 -486
  631. package/src/adapters/mysql/tools/__tests__/json_core.test.ts +326 -259
  632. package/src/adapters/mysql/tools/__tests__/json_enhanced.test.ts +452 -352
  633. package/src/adapters/mysql/tools/__tests__/json_helpers.test.ts +203 -128
  634. package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +576 -340
  635. package/src/adapters/mysql/tools/__tests__/replication.test.ts +796 -390
  636. package/src/adapters/mysql/tools/__tests__/roles.test.ts +423 -166
  637. package/src/adapters/mysql/tools/__tests__/router.test.ts +644 -540
  638. package/src/adapters/mysql/tools/__tests__/security.test.ts +746 -421
  639. package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +246 -173
  640. package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +244 -205
  641. package/src/adapters/mysql/tools/__tests__/spatial.test.ts +443 -298
  642. package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +535 -150
  643. package/src/adapters/mysql/tools/__tests__/stats.test.ts +861 -553
  644. package/src/adapters/mysql/tools/__tests__/transactions.test.ts +452 -263
  645. package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +612 -372
  646. package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +550 -257
  647. package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +549 -352
  648. package/src/adapters/mysql/tools/admin/backup.ts +339 -215
  649. package/src/adapters/mysql/tools/admin/index.ts +46 -46
  650. package/src/adapters/mysql/tools/admin/maintenance.ts +180 -130
  651. package/src/adapters/mysql/tools/admin/monitoring.ts +373 -199
  652. package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +200 -186
  653. package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +399 -95
  654. package/src/adapters/mysql/tools/cluster/group-replication.ts +218 -183
  655. package/src/adapters/mysql/tools/cluster/index.ts +27 -27
  656. package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +413 -251
  657. package/src/adapters/mysql/tools/codemode/index.ts +249 -0
  658. package/src/adapters/mysql/tools/core.ts +425 -285
  659. package/src/adapters/mysql/tools/docstore.ts +478 -276
  660. package/src/adapters/mysql/tools/events.ts +441 -285
  661. package/src/adapters/mysql/tools/index.ts +31 -20
  662. package/src/adapters/mysql/tools/json/__tests__/core.test.ts +456 -199
  663. package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +554 -298
  664. package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +195 -74
  665. package/src/adapters/mysql/tools/json/__tests__/validation.test.ts +106 -72
  666. package/src/adapters/mysql/tools/json/core.ts +368 -263
  667. package/src/adapters/mysql/tools/json/enhanced.ts +368 -229
  668. package/src/adapters/mysql/tools/json/helpers.ts +205 -113
  669. package/src/adapters/mysql/tools/json/index.ts +46 -46
  670. package/src/adapters/mysql/tools/partitioning.ts +289 -140
  671. package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +664 -249
  672. package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +436 -179
  673. package/src/adapters/mysql/tools/performance/analysis.ts +319 -215
  674. package/src/adapters/mysql/tools/performance/index.ts +33 -33
  675. package/src/adapters/mysql/tools/performance/optimization.ts +438 -183
  676. package/src/adapters/mysql/tools/proxysql.ts +462 -320
  677. package/src/adapters/mysql/tools/replication.ts +233 -180
  678. package/src/adapters/mysql/tools/roles.ts +429 -171
  679. package/src/adapters/mysql/tools/router.ts +410 -292
  680. package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +157 -82
  681. package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +226 -101
  682. package/src/adapters/mysql/tools/schema/__tests__/routines.test.ts +80 -35
  683. package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +59 -40
  684. package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +65 -40
  685. package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +146 -77
  686. package/src/adapters/mysql/tools/schema/constraints.ts +61 -42
  687. package/src/adapters/mysql/tools/schema/index.ts +26 -35
  688. package/src/adapters/mysql/tools/schema/management.ts +167 -94
  689. package/src/adapters/mysql/tools/schema/routines.ts +79 -48
  690. package/src/adapters/mysql/tools/schema/scheduled_events.ts +53 -32
  691. package/src/adapters/mysql/tools/schema/triggers.ts +51 -33
  692. package/src/adapters/mysql/tools/schema/views.ts +96 -53
  693. package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +216 -158
  694. package/src/adapters/mysql/tools/security/__tests__/data-protection.test.ts +154 -98
  695. package/src/adapters/mysql/tools/security/__tests__/encryption.test.ts +174 -138
  696. package/src/adapters/mysql/tools/security/audit.ts +213 -193
  697. package/src/adapters/mysql/tools/security/data-protection.ts +342 -198
  698. package/src/adapters/mysql/tools/security/encryption.ts +233 -193
  699. package/src/adapters/mysql/tools/security/index.ts +26 -26
  700. package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +443 -283
  701. package/src/adapters/mysql/tools/shell/__tests__/common.test.ts +183 -130
  702. package/src/adapters/mysql/tools/shell/__tests__/data-transfer.test.ts +516 -353
  703. package/src/adapters/mysql/tools/shell/__tests__/info.test.ts +65 -63
  704. package/src/adapters/mysql/tools/shell/__tests__/restore.test.ts +260 -174
  705. package/src/adapters/mysql/tools/shell/__tests__/utilities.test.ts +161 -143
  706. package/src/adapters/mysql/tools/shell/backup.ts +280 -188
  707. package/src/adapters/mysql/tools/shell/common.ts +203 -153
  708. package/src/adapters/mysql/tools/shell/data-transfer.ts +286 -200
  709. package/src/adapters/mysql/tools/shell/index.ts +29 -29
  710. package/src/adapters/mysql/tools/shell/info.ts +35 -31
  711. package/src/adapters/mysql/tools/shell/restore.ts +236 -121
  712. package/src/adapters/mysql/tools/shell/utilities.ts +86 -45
  713. package/src/adapters/mysql/tools/spatial/__tests__/geometry.test.ts +129 -89
  714. package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +284 -148
  715. package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +340 -245
  716. package/src/adapters/mysql/tools/spatial/geometry.ts +120 -74
  717. package/src/adapters/mysql/tools/spatial/index.ts +33 -33
  718. package/src/adapters/mysql/tools/spatial/operations.ts +254 -171
  719. package/src/adapters/mysql/tools/spatial/queries.ts +221 -165
  720. package/src/adapters/mysql/tools/spatial/setup.ts +180 -73
  721. package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +188 -130
  722. package/src/adapters/mysql/tools/stats/comparative.ts +261 -187
  723. package/src/adapters/mysql/tools/stats/descriptive.ts +414 -322
  724. package/src/adapters/mysql/tools/stats/index.ts +23 -23
  725. package/src/adapters/mysql/tools/sysschema/__tests__/activity.test.ts +99 -71
  726. package/src/adapters/mysql/tools/sysschema/__tests__/io_summary_fix.test.ts +21 -18
  727. package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +149 -108
  728. package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +243 -104
  729. package/src/adapters/mysql/tools/sysschema/activity.ts +72 -64
  730. package/src/adapters/mysql/tools/sysschema/index.ts +24 -24
  731. package/src/adapters/mysql/tools/sysschema/performance.ts +140 -115
  732. package/src/adapters/mysql/tools/sysschema/resources.ts +140 -99
  733. package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +526 -145
  734. package/src/adapters/mysql/tools/text/__tests__/processing.test.ts +452 -193
  735. package/src/adapters/mysql/tools/text/fulltext.ts +327 -123
  736. package/src/adapters/mysql/tools/text/index.ts +32 -30
  737. package/src/adapters/mysql/tools/text/processing.ts +281 -212
  738. package/src/adapters/mysql/tools/transactions.ts +288 -197
  739. package/src/adapters/mysql/types/__tests__/shell-types.test.ts +204 -202
  740. package/src/adapters/mysql/types/proxysql-types.ts +142 -109
  741. package/src/adapters/mysql/types/router-types.ts +36 -36
  742. package/src/adapters/mysql/types/shell-types.ts +280 -94
  743. package/src/adapters/mysql/types.ts +1475 -164
  744. package/src/auth/AuthorizationServerDiscovery.ts +127 -113
  745. package/src/auth/OAuthResourceServer.ts +67 -62
  746. package/src/auth/TokenValidator.ts +136 -119
  747. package/src/auth/__tests__/AuthorizationServerDiscovery.test.ts +295 -274
  748. package/src/auth/__tests__/OAuthResourceServer.test.ts +180 -169
  749. package/src/auth/__tests__/TokenValidator.test.ts +297 -285
  750. package/src/auth/__tests__/errors.test.ts +180 -175
  751. package/src/auth/__tests__/middleware.test.ts +281 -247
  752. package/src/auth/__tests__/scopes.test.ts +136 -134
  753. package/src/auth/errors.ts +56 -56
  754. package/src/auth/index.ts +23 -17
  755. package/src/auth/middleware.ts +161 -139
  756. package/src/auth/scopes.ts +134 -107
  757. package/src/auth/types.ts +155 -155
  758. package/src/cli/__tests__/args.test.ts +241 -216
  759. package/src/cli/__tests__/main.test.ts +191 -158
  760. package/src/cli/args.ts +285 -258
  761. package/src/cli.ts +150 -127
  762. package/src/codemode/api.ts +1224 -0
  763. package/src/codemode/index.ts +51 -0
  764. package/src/codemode/sandbox-factory.ts +146 -0
  765. package/src/codemode/sandbox.ts +450 -0
  766. package/src/codemode/security.ts +188 -0
  767. package/src/codemode/types.ts +194 -0
  768. package/src/codemode/worker-sandbox.ts +326 -0
  769. package/src/codemode/worker-script.ts +144 -0
  770. package/src/constants/ServerInstructions.ts +295 -70
  771. package/src/filtering/ToolConstants.ts +311 -272
  772. package/src/filtering/ToolFilter.ts +254 -220
  773. package/src/filtering/__tests__/ToolFilter.test.ts +469 -396
  774. package/src/index.ts +62 -57
  775. package/src/logging/McpLogging.ts +128 -119
  776. package/src/logging/__tests__/McpLogging.test.ts +223 -223
  777. package/src/logging/index.ts +2 -2
  778. package/src/pool/ConnectionPool.ts +260 -246
  779. package/src/pool/__tests__/ConnectionPool.test.ts +452 -418
  780. package/src/progress/ProgressReporter.ts +123 -123
  781. package/src/progress/__tests__/ProgressReporter.test.ts +235 -229
  782. package/src/progress/index.ts +6 -2
  783. package/src/server/McpServer.ts +305 -285
  784. package/src/server/__tests__/McpServer.test.ts +333 -291
  785. package/src/transports/__tests__/http.test.ts +658 -527
  786. package/src/transports/http.ts +237 -203
  787. package/src/transports/index.ts +6 -2
  788. package/src/types/__tests__/types.test.ts +197 -193
  789. package/src/types/index.ts +49 -37
  790. package/src/types/modules/database.ts +65 -63
  791. package/src/types/modules/errors.ts +41 -37
  792. package/src/types/modules/oauth.ts +46 -46
  793. package/src/types/modules/query.ts +75 -75
  794. package/src/types/modules/server.ts +21 -18
  795. package/src/types/modules/tools.ts +182 -178
  796. package/src/utils/__tests__/logger.test.ts +424 -414
  797. package/src/utils/__tests__/validators.test.ts +250 -165
  798. package/src/utils/logger.ts +344 -330
  799. package/src/utils/promptGenerator.ts +58 -47
  800. package/src/utils/validators.ts +217 -91
  801. package/tsconfig.json +41 -50
  802. package/vitest.config.ts +23 -23
@@ -4,12 +4,18 @@
4
4
  * Tools for managing MySQL InnoDB Cluster.
5
5
  * 5 tools total: status, instances, topology, router status, switchover.
6
6
  */
7
- import { z } from 'zod';
7
+ import { z } from "zod";
8
8
  // =============================================================================
9
9
  // Schemas
10
10
  // =============================================================================
11
11
  const LimitSchema = z.object({
12
- limit: z.number().default(100).describe('Maximum number of results')
12
+ limit: z.number().default(100).describe("Maximum number of results"),
13
+ });
14
+ const SummarySchema = z.object({
15
+ summary: z
16
+ .boolean()
17
+ .optional()
18
+ .describe("If true, return condensed output without configuration blobs"),
13
19
  });
14
20
  // =============================================================================
15
21
  // Tool Creation Functions
@@ -19,17 +25,18 @@ const LimitSchema = z.object({
19
25
  */
20
26
  export function createClusterStatusTool(adapter) {
21
27
  return {
22
- name: 'mysql_cluster_status',
23
- title: 'MySQL Cluster Status',
24
- description: 'Get overall InnoDB Cluster status (requires mysql_innodb_cluster_metadata schema).',
25
- group: 'cluster',
26
- inputSchema: z.object({}),
27
- requiredScopes: ['read'],
28
+ name: "mysql_cluster_status",
29
+ title: "MySQL Cluster Status",
30
+ description: "Get overall InnoDB Cluster status (requires mysql_innodb_cluster_metadata schema).",
31
+ group: "cluster",
32
+ inputSchema: SummarySchema,
33
+ requiredScopes: ["read"],
28
34
  annotations: {
29
35
  readOnlyHint: true,
30
- idempotentHint: true
36
+ idempotentHint: true,
31
37
  },
32
- handler: async (_params, _context) => {
38
+ handler: async (params, _context) => {
39
+ const { summary } = SummarySchema.parse(params);
33
40
  try {
34
41
  // Check for cluster metadata schema
35
42
  const schemaCheck = await adapter.executeQuery(`
@@ -46,17 +53,17 @@ export function createClusterStatusTool(adapter) {
46
53
  `);
47
54
  return {
48
55
  isInnoDBCluster: false,
49
- message: 'InnoDB Cluster metadata not found. Using Group Replication status.',
50
- onlineMembers: (grResult.rows?.[0])?.['memberCount'] ?? 0
56
+ message: "InnoDB Cluster metadata not found. Using Group Replication status.",
57
+ onlineMembers: grResult.rows?.[0]?.["memberCount"] ?? 0,
51
58
  };
52
59
  }
53
- // Get cluster info - use SELECT * to handle schema variations across versions
60
+ // Get cluster info
54
61
  const clusterResult = await adapter.executeQuery(`
55
- SELECT *
62
+ SELECT cluster_id, cluster_name, description, cluster_type, primary_mode
56
63
  FROM mysql_innodb_cluster_metadata.clusters
57
64
  LIMIT 1
58
65
  `);
59
- const cluster = clusterResult.rows?.[0];
66
+ const clusterBasic = clusterResult.rows?.[0];
60
67
  // Get instance count
61
68
  const instanceResult = await adapter.executeQuery(`
62
69
  SELECT COUNT(*) as count
@@ -67,21 +74,50 @@ export function createClusterStatusTool(adapter) {
67
74
  SELECT COUNT(*) as count
68
75
  FROM mysql_innodb_cluster_metadata.routers
69
76
  `);
77
+ // Summary mode: return only essential metadata
78
+ if (summary) {
79
+ return {
80
+ isInnoDBCluster: true,
81
+ cluster: clusterBasic ?? null,
82
+ instanceCount: instanceResult.rows?.[0]?.["count"] ?? 0,
83
+ routerCount: routerResult.rows?.[0]?.["count"] ?? 0,
84
+ };
85
+ }
86
+ // Full mode: include all cluster metadata including options/attributes
87
+ const fullClusterResult = await adapter.executeQuery(`
88
+ SELECT *
89
+ FROM mysql_innodb_cluster_metadata.clusters
90
+ LIMIT 1
91
+ `);
92
+ // Strip bulky Router Configuration blob from router_options to reduce payload
93
+ const cluster = fullClusterResult.rows?.[0] ?? null;
94
+ if (cluster?.["router_options"] != null) {
95
+ try {
96
+ const opts = typeof cluster["router_options"] === "string"
97
+ ? JSON.parse(cluster["router_options"])
98
+ : cluster["router_options"];
99
+ delete opts["Configuration"];
100
+ cluster["router_options"] = opts;
101
+ }
102
+ catch {
103
+ // Keep original if parsing fails
104
+ }
105
+ }
70
106
  return {
71
107
  isInnoDBCluster: true,
72
- cluster: cluster ?? null,
73
- instanceCount: (instanceResult.rows?.[0])?.['count'] ?? 0,
74
- routerCount: (routerResult.rows?.[0])?.['count'] ?? 0
108
+ cluster,
109
+ instanceCount: instanceResult.rows?.[0]?.["count"] ?? 0,
110
+ routerCount: routerResult.rows?.[0]?.["count"] ?? 0,
75
111
  };
76
112
  }
77
113
  catch (error) {
78
114
  return {
79
115
  isInnoDBCluster: false,
80
- message: 'Unable to query cluster metadata. Ensure InnoDB Cluster is properly configured.',
81
- error: error instanceof Error ? error.message : String(error)
116
+ message: "Unable to query cluster metadata. Ensure InnoDB Cluster is properly configured.",
117
+ error: error instanceof Error ? error.message : String(error),
82
118
  };
83
119
  }
84
- }
120
+ },
85
121
  };
86
122
  }
87
123
  /**
@@ -89,15 +125,15 @@ export function createClusterStatusTool(adapter) {
89
125
  */
90
126
  export function createClusterInstancesTool(adapter) {
91
127
  return {
92
- name: 'mysql_cluster_instances',
93
- title: 'MySQL Cluster Instances',
94
- description: 'List all instances in the InnoDB Cluster.',
95
- group: 'cluster',
128
+ name: "mysql_cluster_instances",
129
+ title: "MySQL Cluster Instances",
130
+ description: "List all instances in the InnoDB Cluster.",
131
+ group: "cluster",
96
132
  inputSchema: LimitSchema,
97
- requiredScopes: ['read'],
133
+ requiredScopes: ["read"],
98
134
  annotations: {
99
135
  readOnlyHint: true,
100
- idempotentHint: true
136
+ idempotentHint: true,
101
137
  },
102
138
  handler: async (params, _context) => {
103
139
  const { limit } = LimitSchema.parse(params);
@@ -110,8 +146,8 @@ export function createClusterInstancesTool(adapter) {
110
146
  i.mysql_server_uuid as serverUuid,
111
147
  i.instance_name as instanceName,
112
148
  i.description,
113
- m.MEMBER_STATE as memberState,
114
- m.MEMBER_ROLE as memberRole
149
+ COALESCE(m.MEMBER_STATE, 'OFFLINE') as memberState,
150
+ COALESCE(m.MEMBER_ROLE, 'NONE') as memberRole
115
151
  FROM mysql_innodb_cluster_metadata.instances i
116
152
  LEFT JOIN performance_schema.replication_group_members m
117
153
  ON i.mysql_server_uuid = m.MEMBER_ID
@@ -119,7 +155,7 @@ export function createClusterInstancesTool(adapter) {
119
155
  `);
120
156
  return {
121
157
  instances: result.rows ?? [],
122
- count: result.rows?.length ?? 0
158
+ count: result.rows?.length ?? 0,
123
159
  };
124
160
  }
125
161
  catch {
@@ -135,12 +171,12 @@ export function createClusterInstancesTool(adapter) {
135
171
  LIMIT ${String(limit)}
136
172
  `);
137
173
  return {
138
- source: 'group_replication',
174
+ source: "group_replication",
139
175
  instances: grResult.rows ?? [],
140
- count: grResult.rows?.length ?? 0
176
+ count: grResult.rows?.length ?? 0,
141
177
  };
142
178
  }
143
- }
179
+ },
144
180
  };
145
181
  }
146
182
  /**
@@ -148,18 +184,18 @@ export function createClusterInstancesTool(adapter) {
148
184
  */
149
185
  export function createClusterTopologyTool(adapter) {
150
186
  return {
151
- name: 'mysql_cluster_topology',
152
- title: 'MySQL Cluster Topology',
153
- description: 'Get a visual representation of the cluster topology.',
154
- group: 'cluster',
187
+ name: "mysql_cluster_topology",
188
+ title: "MySQL Cluster Topology",
189
+ description: "Get a visual representation of the cluster topology.",
190
+ group: "cluster",
155
191
  inputSchema: z.object({}),
156
- requiredScopes: ['read'],
192
+ requiredScopes: ["read"],
157
193
  annotations: {
158
194
  readOnlyHint: true,
159
- idempotentHint: true
195
+ idempotentHint: true,
160
196
  },
161
197
  handler: async (_params, _context) => {
162
- // Get all members
198
+ // Get all GR members
163
199
  const membersResult = await adapter.executeQuery(`
164
200
  SELECT
165
201
  MEMBER_ID as id,
@@ -172,51 +208,82 @@ export function createClusterTopologyTool(adapter) {
172
208
  ORDER BY MEMBER_ROLE DESC, MEMBER_HOST
173
209
  `);
174
210
  const members = membersResult.rows ?? [];
211
+ const grMemberIds = new Set(members.map((m) => m["id"]).filter(Boolean));
212
+ // Cross-reference with cluster metadata for offline instances
213
+ let metadataOffline = [];
214
+ try {
215
+ const metaResult = await adapter.executeQuery(`
216
+ SELECT
217
+ mysql_server_uuid as id,
218
+ SUBSTRING_INDEX(address, ':', 1) as host,
219
+ CAST(SUBSTRING_INDEX(address, ':', -1) AS UNSIGNED) as port
220
+ FROM mysql_innodb_cluster_metadata.instances
221
+ `);
222
+ if (metaResult.rows) {
223
+ metadataOffline = metaResult.rows
224
+ .filter((i) => !grMemberIds.has(i["id"]))
225
+ .map((i) => ({
226
+ id: i["id"],
227
+ host: i["host"],
228
+ port: i["port"],
229
+ state: "OFFLINE",
230
+ role: "NONE",
231
+ version: null,
232
+ source: "metadata",
233
+ }));
234
+ }
235
+ }
236
+ catch {
237
+ // Cluster metadata not available; skip
238
+ }
175
239
  // Build topology representation
176
240
  const topology = {
177
- primary: members.filter(m => (m)['role'] === 'PRIMARY'),
178
- secondaries: members.filter(m => (m)['role'] === 'SECONDARY'),
179
- recovering: members.filter(m => (m)['state'] === 'RECOVERING'),
180
- offline: members.filter(m => (m)['state'] !== 'ONLINE' &&
181
- (m)['state'] !== 'RECOVERING')
241
+ primary: members.filter((m) => m["role"] === "PRIMARY"),
242
+ secondaries: members.filter((m) => m["role"] === "SECONDARY"),
243
+ recovering: members.filter((m) => m["state"] === "RECOVERING"),
244
+ offline: [
245
+ ...members.filter((m) => m["state"] !== "ONLINE" && m["state"] !== "RECOVERING"),
246
+ ...metadataOffline,
247
+ ],
182
248
  };
183
249
  // Generate ASCII visualization
184
- let ascii = '=== MySQL Cluster Topology ===\n\n';
250
+ let ascii = "=== MySQL Cluster Topology ===\n\n";
185
251
  if (topology.primary.length > 0) {
186
- ascii += ' PRIMARY:\n';
252
+ ascii += " PRIMARY:\n";
187
253
  for (const p of topology.primary) {
188
254
  const pm = p;
189
- ascii += ` ★ ${pm['host']}:${String(pm['port'])} (${pm['state']})\n`;
255
+ ascii += ` ★ ${pm["host"]}:${String(pm["port"])} (${pm["state"]})\n`;
190
256
  }
191
257
  }
192
258
  if (topology.secondaries.length > 0) {
193
- ascii += '\n SECONDARY:\n';
259
+ ascii += "\n SECONDARY:\n";
194
260
  for (const s of topology.secondaries) {
195
261
  const sm = s;
196
- ascii += ` ○ ${sm['host']}:${String(sm['port'])} (${sm['state']})\n`;
262
+ ascii += ` ○ ${sm["host"]}:${String(sm["port"])} (${sm["state"]})\n`;
197
263
  }
198
264
  }
199
265
  if (topology.recovering.length > 0) {
200
- ascii += '\n RECOVERING:\n';
266
+ ascii += "\n RECOVERING:\n";
201
267
  for (const r of topology.recovering) {
202
268
  const rm = r;
203
- ascii += ` ⟳ ${rm['host']}:${String(rm['port'])}\n`;
269
+ ascii += ` ⟳ ${rm["host"]}:${String(rm["port"])}\n`;
204
270
  }
205
271
  }
206
272
  if (topology.offline.length > 0) {
207
- ascii += '\n OFFLINE/ERROR:\n';
273
+ ascii += "\n OFFLINE/ERROR:\n";
208
274
  for (const o of topology.offline) {
209
275
  const om = o;
210
- ascii += ` ✗ ${om['host']}:${String(om['port'])} (${om['state']})\n`;
276
+ ascii += ` ✗ ${om["host"]}:${String(om["port"])} (${om["state"]})\n`;
211
277
  }
212
278
  }
279
+ const allMembers = members.length + metadataOffline.length;
213
280
  return {
214
281
  topology,
215
282
  visualization: ascii,
216
- totalMembers: members.length,
217
- onlineMembers: members.filter(m => (m)['state'] === 'ONLINE').length
283
+ totalMembers: allMembers,
284
+ onlineMembers: members.filter((m) => m["state"] === "ONLINE").length,
218
285
  };
219
- }
286
+ },
220
287
  };
221
288
  }
222
289
  /**
@@ -224,18 +291,54 @@ export function createClusterTopologyTool(adapter) {
224
291
  */
225
292
  export function createClusterRouterStatusTool(adapter) {
226
293
  return {
227
- name: 'mysql_cluster_router_status',
228
- title: 'MySQL Cluster Router Status',
229
- description: 'Get status of MySQL Routers connected to the cluster.',
230
- group: 'cluster',
231
- inputSchema: z.object({}),
232
- requiredScopes: ['read'],
294
+ name: "mysql_cluster_router_status",
295
+ title: "MySQL Cluster Router Status",
296
+ description: "Get status of MySQL Routers connected to the cluster.",
297
+ group: "cluster",
298
+ inputSchema: SummarySchema,
299
+ requiredScopes: ["read"],
233
300
  annotations: {
234
301
  readOnlyHint: true,
235
- idempotentHint: true
302
+ idempotentHint: true,
236
303
  },
237
- handler: async (_params, _context) => {
304
+ handler: async (params, _context) => {
305
+ const { summary } = SummarySchema.parse(params);
306
+ // Compute staleness: null lastCheckIn or >1 hour old
307
+ const computeStale = (lastCheckIn) => {
308
+ if (lastCheckIn == null)
309
+ return true;
310
+ const checkInTime = new Date(lastCheckIn).getTime();
311
+ if (isNaN(checkInTime))
312
+ return true;
313
+ return Date.now() - checkInTime > 3_600_000; // 1 hour
314
+ };
238
315
  try {
316
+ // Summary mode: return only essential router info
317
+ if (summary) {
318
+ const result = await adapter.executeQuery(`
319
+ SELECT
320
+ router_id as routerId,
321
+ router_name as routerName,
322
+ address,
323
+ version,
324
+ last_check_in as lastCheckIn,
325
+ JSON_UNQUOTE(JSON_EXTRACT(attributes, '$.ROEndpoint')) as roPort,
326
+ JSON_UNQUOTE(JSON_EXTRACT(attributes, '$.RWEndpoint')) as rwPort,
327
+ JSON_UNQUOTE(JSON_EXTRACT(attributes, '$.LocalCluster')) as localCluster
328
+ FROM mysql_innodb_cluster_metadata.routers
329
+ `);
330
+ const routers = (result.rows ?? []).map((r) => ({
331
+ ...r,
332
+ isStale: computeStale(r["lastCheckIn"]),
333
+ }));
334
+ const staleCount = routers.filter((r) => r.isStale).length;
335
+ return {
336
+ routers,
337
+ count: routers.length,
338
+ staleCount,
339
+ };
340
+ }
341
+ // Full mode: include attributes but strip bulky Configuration blob
239
342
  const result = await adapter.executeQuery(`
240
343
  SELECT
241
344
  router_id as routerId,
@@ -246,19 +349,40 @@ export function createClusterRouterStatusTool(adapter) {
246
349
  attributes
247
350
  FROM mysql_innodb_cluster_metadata.routers
248
351
  `);
352
+ const routers = (result.rows ?? []).map((r) => {
353
+ let processed = r;
354
+ if (r["attributes"] != null) {
355
+ try {
356
+ const attrs = typeof r["attributes"] === "string"
357
+ ? JSON.parse(r["attributes"])
358
+ : r["attributes"];
359
+ delete attrs["Configuration"];
360
+ processed = { ...r, attributes: attrs };
361
+ }
362
+ catch {
363
+ // Keep original if parsing fails
364
+ }
365
+ }
366
+ return {
367
+ ...processed,
368
+ isStale: computeStale(processed["lastCheckIn"]),
369
+ };
370
+ });
371
+ const staleCount = routers.filter((r) => r.isStale).length;
249
372
  return {
250
- routers: result.rows ?? [],
251
- count: result.rows?.length ?? 0
373
+ routers,
374
+ count: routers.length,
375
+ staleCount,
252
376
  };
253
377
  }
254
378
  catch {
255
379
  return {
256
380
  available: false,
257
- message: 'Router metadata not available. Ensure InnoDB Cluster is configured.',
258
- suggestion: 'Use mysql_router_status tool if connecting directly to Router REST API.'
381
+ message: "Router metadata not available. Ensure InnoDB Cluster is configured.",
382
+ suggestion: "Use mysql_router_status tool if connecting directly to Router REST API.",
259
383
  };
260
384
  }
261
- }
385
+ },
262
386
  };
263
387
  }
264
388
  /**
@@ -266,15 +390,15 @@ export function createClusterRouterStatusTool(adapter) {
266
390
  */
267
391
  export function createClusterSwitchoverTool(adapter) {
268
392
  return {
269
- name: 'mysql_cluster_switchover',
270
- title: 'MySQL Cluster Switchover Analysis',
271
- description: 'Analyze cluster state and provide switchover recommendations.',
272
- group: 'cluster',
393
+ name: "mysql_cluster_switchover",
394
+ title: "MySQL Cluster Switchover Analysis",
395
+ description: "Analyze cluster state and provide switchover recommendations.",
396
+ group: "cluster",
273
397
  inputSchema: z.object({}),
274
- requiredScopes: ['read'],
398
+ requiredScopes: ["read"],
275
399
  annotations: {
276
400
  readOnlyHint: true,
277
- idempotentHint: true
401
+ idempotentHint: true,
278
402
  },
279
403
  handler: async (_params, _context) => {
280
404
  // Get current members status
@@ -293,39 +417,39 @@ export function createClusterSwitchoverTool(adapter) {
293
417
  ON m.MEMBER_ID = s.MEMBER_ID
294
418
  `);
295
419
  const members = membersResult.rows ?? [];
296
- const onlineSecondaries = members.filter(m => {
420
+ const onlineSecondaries = members.filter((m) => {
297
421
  const member = m;
298
- return member['state'] === 'ONLINE' && member['role'] === 'SECONDARY';
422
+ return member["state"] === "ONLINE" && member["role"] === "SECONDARY";
299
423
  });
300
424
  // Analyze each secondary for switchover suitability
301
- const candidates = onlineSecondaries.map(s => {
425
+ const candidates = onlineSecondaries.map((s) => {
302
426
  const sec = s;
303
- const txQueue = sec['txQueue'] ?? 0;
304
- const applierQueue = sec['applierQueue'] ?? 0;
427
+ const txQueue = sec["txQueue"] ?? 0;
428
+ const applierQueue = sec["applierQueue"] ?? 0;
305
429
  const totalQueue = txQueue + applierQueue;
306
430
  let suitability;
307
431
  let reason;
308
432
  if (totalQueue === 0) {
309
- suitability = 'GOOD';
310
- reason = 'Fully synchronized';
433
+ suitability = "GOOD";
434
+ reason = "Fully synchronized";
311
435
  }
312
436
  else if (totalQueue < 100) {
313
- suitability = 'ACCEPTABLE';
437
+ suitability = "ACCEPTABLE";
314
438
  reason = `Minor lag: ${String(totalQueue)} transactions pending`;
315
439
  }
316
440
  else {
317
- suitability = 'NOT_RECOMMENDED';
441
+ suitability = "NOT_RECOMMENDED";
318
442
  reason = `Significant lag: ${String(totalQueue)} transactions pending`;
319
443
  }
320
444
  return {
321
- memberId: sec['memberId'],
322
- host: sec['host'],
323
- port: sec['port'],
324
- version: sec['version'],
445
+ memberId: sec["memberId"],
446
+ host: sec["host"],
447
+ port: sec["port"],
448
+ version: sec["version"],
325
449
  txQueue,
326
450
  applierQueue,
327
451
  suitability,
328
- reason
452
+ reason,
329
453
  };
330
454
  });
331
455
  // Sort by suitability
@@ -335,17 +459,21 @@ export function createClusterSwitchoverTool(adapter) {
335
459
  });
336
460
  const firstCandidate = candidates[0];
337
461
  return {
338
- currentPrimary: members.find(m => (m)['role'] === 'PRIMARY'),
462
+ currentPrimary: members.find((m) => m["role"] === "PRIMARY"),
339
463
  candidates,
340
- recommendedTarget: candidates.length > 0 && firstCandidate && firstCandidate.suitability !== 'NOT_RECOMMENDED'
464
+ recommendedTarget: candidates.length > 0 &&
465
+ firstCandidate &&
466
+ firstCandidate.suitability !== "NOT_RECOMMENDED"
341
467
  ? firstCandidate
342
468
  : null,
343
- canSwitchover: candidates.some(c => c.suitability !== 'NOT_RECOMMENDED'),
344
- warning: candidates.every(c => c.suitability === 'NOT_RECOMMENDED')
345
- ? 'All secondaries have significant replication lag. Switchover not recommended.'
346
- : undefined
469
+ canSwitchover: candidates.some((c) => c.suitability !== "NOT_RECOMMENDED"),
470
+ warning: onlineSecondaries.length === 0
471
+ ? "No online secondaries available for switchover."
472
+ : candidates.every((c) => c.suitability === "NOT_RECOMMENDED")
473
+ ? "All secondaries have significant replication lag. Switchover not recommended."
474
+ : undefined,
347
475
  };
348
- }
476
+ },
349
477
  };
350
478
  }
351
479
  //# sourceMappingURL=innodb-cluster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"innodb-cluster.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/cluster/innodb-cluster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"innodb-cluster.js","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/cluster/innodb-cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * mysql-mcp - Code Mode Tool: mysql_execute_code
3
+ *
4
+ * MCP tool that executes LLM-generated code in a sandboxed environment
5
+ * with access to all MySQL tools via the mysql.* API.
6
+ */
7
+ import { z } from "zod";
8
+ import type { MySQLAdapter } from "../../MySQLAdapter.js";
9
+ import type { ToolDefinition } from "../../../../types/index.js";
10
+ export declare const ExecuteCodeSchema: z.ZodObject<{
11
+ code: z.ZodString;
12
+ timeout: z.ZodOptional<z.ZodNumber>;
13
+ readonly: z.ZodOptional<z.ZodBoolean>;
14
+ }, z.core.$strip>;
15
+ export declare const ExecuteCodeOutputSchema: z.ZodObject<{
16
+ success: z.ZodBoolean;
17
+ result: z.ZodOptional<z.ZodUnknown>;
18
+ error: z.ZodOptional<z.ZodString>;
19
+ metrics: z.ZodOptional<z.ZodObject<{
20
+ wallTimeMs: z.ZodNumber;
21
+ cpuTimeMs: z.ZodNumber;
22
+ memoryUsedMb: z.ZodNumber;
23
+ }, z.core.$strip>>;
24
+ hint: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>;
26
+ /**
27
+ * Create the mysql_execute_code tool
28
+ */
29
+ export declare function createExecuteCodeTool(adapter: MySQLAdapter): ToolDefinition;
30
+ /**
31
+ * Get all Code Mode tools
32
+ */
33
+ export declare function getCodeModeTools(adapter: MySQLAdapter): ToolDefinition[];
34
+ /**
35
+ * Cleanup Code Mode resources (call on server shutdown)
36
+ */
37
+ export declare function cleanupCodeMode(): void;
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/mysql/tools/codemode/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,4BAA4B,CAAC;AAWpC,eAAO,MAAM,iBAAiB;;;;iBAc5B,CAAC;AAGH,eAAO,MAAM,uBAAuB;;;;;;;;;;iBAkBlC,CAAC;AA4BH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CA8I3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,EAAE,CAExE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}