@neverinfamous/mysql-mcp 2.1.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 (792) hide show
  1. package/.dockerignore +41 -0
  2. package/.env.example +33 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
  5. package/.github/dependabot.yml +19 -0
  6. package/.github/pull_request_template.md +23 -0
  7. package/.github/workflows/codeql.yml +64 -0
  8. package/.github/workflows/docker-publish.yml +285 -0
  9. package/.github/workflows/publish-npm.yml +75 -0
  10. package/CHANGELOG.md +481 -0
  11. package/CODE_OF_CONDUCT.md +29 -0
  12. package/CONTRIBUTING.md +57 -0
  13. package/DOCKER_README.md +482 -0
  14. package/Dockerfile +78 -0
  15. package/LICENSE +21 -0
  16. package/README.md +594 -0
  17. package/SECURITY.md +66 -0
  18. package/VERSION +1 -0
  19. package/dist/__tests__/mocks/adapter.d.ts +80 -0
  20. package/dist/__tests__/mocks/adapter.d.ts.map +1 -0
  21. package/dist/__tests__/mocks/adapter.js +202 -0
  22. package/dist/__tests__/mocks/adapter.js.map +1 -0
  23. package/dist/__tests__/mocks/index.d.ts +11 -0
  24. package/dist/__tests__/mocks/index.d.ts.map +1 -0
  25. package/dist/__tests__/mocks/index.js +11 -0
  26. package/dist/__tests__/mocks/index.js.map +1 -0
  27. package/dist/__tests__/mocks/mysql.d.ts +36 -0
  28. package/dist/__tests__/mocks/mysql.d.ts.map +1 -0
  29. package/dist/__tests__/mocks/mysql.js +110 -0
  30. package/dist/__tests__/mocks/mysql.js.map +1 -0
  31. package/dist/__tests__/setup.d.ts +40 -0
  32. package/dist/__tests__/setup.d.ts.map +1 -0
  33. package/dist/__tests__/setup.js +45 -0
  34. package/dist/__tests__/setup.js.map +1 -0
  35. package/dist/adapters/DatabaseAdapter.d.ts +134 -0
  36. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
  37. package/dist/adapters/DatabaseAdapter.js +211 -0
  38. package/dist/adapters/DatabaseAdapter.js.map +1 -0
  39. package/dist/adapters/mysql/MySQLAdapter.d.ts +88 -0
  40. package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -0
  41. package/dist/adapters/mysql/MySQLAdapter.js +469 -0
  42. package/dist/adapters/mysql/MySQLAdapter.js.map +1 -0
  43. package/dist/adapters/mysql/SchemaManager.d.ts +36 -0
  44. package/dist/adapters/mysql/SchemaManager.d.ts.map +1 -0
  45. package/dist/adapters/mysql/SchemaManager.js +260 -0
  46. package/dist/adapters/mysql/SchemaManager.js.map +1 -0
  47. package/dist/adapters/mysql/index.d.ts +6 -0
  48. package/dist/adapters/mysql/index.d.ts.map +1 -0
  49. package/dist/adapters/mysql/index.js +7 -0
  50. package/dist/adapters/mysql/index.js.map +1 -0
  51. package/dist/adapters/mysql/prompts/backupStrategy.d.ts +8 -0
  52. package/dist/adapters/mysql/prompts/backupStrategy.d.ts.map +1 -0
  53. package/dist/adapters/mysql/prompts/backupStrategy.js +74 -0
  54. package/dist/adapters/mysql/prompts/backupStrategy.js.map +1 -0
  55. package/dist/adapters/mysql/prompts/clusterSetup.d.ts +8 -0
  56. package/dist/adapters/mysql/prompts/clusterSetup.d.ts.map +1 -0
  57. package/dist/adapters/mysql/prompts/clusterSetup.js +112 -0
  58. package/dist/adapters/mysql/prompts/clusterSetup.js.map +1 -0
  59. package/dist/adapters/mysql/prompts/docstoreSetup.d.ts +8 -0
  60. package/dist/adapters/mysql/prompts/docstoreSetup.d.ts.map +1 -0
  61. package/dist/adapters/mysql/prompts/docstoreSetup.js +117 -0
  62. package/dist/adapters/mysql/prompts/docstoreSetup.js.map +1 -0
  63. package/dist/adapters/mysql/prompts/eventScheduler.d.ts +8 -0
  64. package/dist/adapters/mysql/prompts/eventScheduler.d.ts.map +1 -0
  65. package/dist/adapters/mysql/prompts/eventScheduler.js +97 -0
  66. package/dist/adapters/mysql/prompts/eventScheduler.js.map +1 -0
  67. package/dist/adapters/mysql/prompts/healthCheck.d.ts +8 -0
  68. package/dist/adapters/mysql/prompts/healthCheck.d.ts.map +1 -0
  69. package/dist/adapters/mysql/prompts/healthCheck.js +49 -0
  70. package/dist/adapters/mysql/prompts/healthCheck.js.map +1 -0
  71. package/dist/adapters/mysql/prompts/index.d.ts +31 -0
  72. package/dist/adapters/mysql/prompts/index.d.ts.map +1 -0
  73. package/dist/adapters/mysql/prompts/index.js +308 -0
  74. package/dist/adapters/mysql/prompts/index.js.map +1 -0
  75. package/dist/adapters/mysql/prompts/indexTuning.d.ts +8 -0
  76. package/dist/adapters/mysql/prompts/indexTuning.d.ts.map +1 -0
  77. package/dist/adapters/mysql/prompts/indexTuning.js +83 -0
  78. package/dist/adapters/mysql/prompts/indexTuning.js.map +1 -0
  79. package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts +8 -0
  80. package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts.map +1 -0
  81. package/dist/adapters/mysql/prompts/mysqlshSetup.js +113 -0
  82. package/dist/adapters/mysql/prompts/mysqlshSetup.js.map +1 -0
  83. package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts +8 -0
  84. package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts.map +1 -0
  85. package/dist/adapters/mysql/prompts/proxysqlSetup.js +109 -0
  86. package/dist/adapters/mysql/prompts/proxysqlSetup.js.map +1 -0
  87. package/dist/adapters/mysql/prompts/replicationSetup.d.ts +8 -0
  88. package/dist/adapters/mysql/prompts/replicationSetup.d.ts.map +1 -0
  89. package/dist/adapters/mysql/prompts/replicationSetup.js +140 -0
  90. package/dist/adapters/mysql/prompts/replicationSetup.js.map +1 -0
  91. package/dist/adapters/mysql/prompts/routerSetup.d.ts +8 -0
  92. package/dist/adapters/mysql/prompts/routerSetup.d.ts.map +1 -0
  93. package/dist/adapters/mysql/prompts/routerSetup.js +100 -0
  94. package/dist/adapters/mysql/prompts/routerSetup.js.map +1 -0
  95. package/dist/adapters/mysql/prompts/spatialSetup.d.ts +8 -0
  96. package/dist/adapters/mysql/prompts/spatialSetup.d.ts.map +1 -0
  97. package/dist/adapters/mysql/prompts/spatialSetup.js +103 -0
  98. package/dist/adapters/mysql/prompts/spatialSetup.js.map +1 -0
  99. package/dist/adapters/mysql/prompts/sysSchema.d.ts +8 -0
  100. package/dist/adapters/mysql/prompts/sysSchema.d.ts.map +1 -0
  101. package/dist/adapters/mysql/prompts/sysSchema.js +103 -0
  102. package/dist/adapters/mysql/prompts/sysSchema.js.map +1 -0
  103. package/dist/adapters/mysql/resources/capabilities.d.ts +9 -0
  104. package/dist/adapters/mysql/resources/capabilities.d.ts.map +1 -0
  105. package/dist/adapters/mysql/resources/capabilities.js +41 -0
  106. package/dist/adapters/mysql/resources/capabilities.js.map +1 -0
  107. package/dist/adapters/mysql/resources/cluster.d.ts +7 -0
  108. package/dist/adapters/mysql/resources/cluster.d.ts.map +1 -0
  109. package/dist/adapters/mysql/resources/cluster.js +61 -0
  110. package/dist/adapters/mysql/resources/cluster.js.map +1 -0
  111. package/dist/adapters/mysql/resources/docstore.d.ts +7 -0
  112. package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -0
  113. package/dist/adapters/mysql/resources/docstore.js +61 -0
  114. package/dist/adapters/mysql/resources/docstore.js.map +1 -0
  115. package/dist/adapters/mysql/resources/events.d.ts +7 -0
  116. package/dist/adapters/mysql/resources/events.d.ts.map +1 -0
  117. package/dist/adapters/mysql/resources/events.js +41 -0
  118. package/dist/adapters/mysql/resources/events.js.map +1 -0
  119. package/dist/adapters/mysql/resources/health.d.ts +10 -0
  120. package/dist/adapters/mysql/resources/health.d.ts.map +1 -0
  121. package/dist/adapters/mysql/resources/health.js +76 -0
  122. package/dist/adapters/mysql/resources/health.js.map +1 -0
  123. package/dist/adapters/mysql/resources/index.d.ts +29 -0
  124. package/dist/adapters/mysql/resources/index.d.ts.map +1 -0
  125. package/dist/adapters/mysql/resources/index.js +66 -0
  126. package/dist/adapters/mysql/resources/index.js.map +1 -0
  127. package/dist/adapters/mysql/resources/indexes.d.ts +9 -0
  128. package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -0
  129. package/dist/adapters/mysql/resources/indexes.js +88 -0
  130. package/dist/adapters/mysql/resources/indexes.js.map +1 -0
  131. package/dist/adapters/mysql/resources/innodb.d.ts +9 -0
  132. package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -0
  133. package/dist/adapters/mysql/resources/innodb.js +95 -0
  134. package/dist/adapters/mysql/resources/innodb.js.map +1 -0
  135. package/dist/adapters/mysql/resources/locks.d.ts +7 -0
  136. package/dist/adapters/mysql/resources/locks.d.ts.map +1 -0
  137. package/dist/adapters/mysql/resources/locks.js +57 -0
  138. package/dist/adapters/mysql/resources/locks.js.map +1 -0
  139. package/dist/adapters/mysql/resources/performance.d.ts +9 -0
  140. package/dist/adapters/mysql/resources/performance.d.ts.map +1 -0
  141. package/dist/adapters/mysql/resources/performance.js +89 -0
  142. package/dist/adapters/mysql/resources/performance.js.map +1 -0
  143. package/dist/adapters/mysql/resources/pool.d.ts +7 -0
  144. package/dist/adapters/mysql/resources/pool.d.ts.map +1 -0
  145. package/dist/adapters/mysql/resources/pool.js +21 -0
  146. package/dist/adapters/mysql/resources/pool.js.map +1 -0
  147. package/dist/adapters/mysql/resources/processlist.d.ts +7 -0
  148. package/dist/adapters/mysql/resources/processlist.d.ts.map +1 -0
  149. package/dist/adapters/mysql/resources/processlist.js +18 -0
  150. package/dist/adapters/mysql/resources/processlist.js.map +1 -0
  151. package/dist/adapters/mysql/resources/replication.d.ts +9 -0
  152. package/dist/adapters/mysql/resources/replication.d.ts.map +1 -0
  153. package/dist/adapters/mysql/resources/replication.js +116 -0
  154. package/dist/adapters/mysql/resources/replication.js.map +1 -0
  155. package/dist/adapters/mysql/resources/schema.d.ts +7 -0
  156. package/dist/adapters/mysql/resources/schema.d.ts.map +1 -0
  157. package/dist/adapters/mysql/resources/schema.js +18 -0
  158. package/dist/adapters/mysql/resources/schema.js.map +1 -0
  159. package/dist/adapters/mysql/resources/spatial.d.ts +7 -0
  160. package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -0
  161. package/dist/adapters/mysql/resources/spatial.js +47 -0
  162. package/dist/adapters/mysql/resources/spatial.js.map +1 -0
  163. package/dist/adapters/mysql/resources/status.d.ts +7 -0
  164. package/dist/adapters/mysql/resources/status.d.ts.map +1 -0
  165. package/dist/adapters/mysql/resources/status.js +22 -0
  166. package/dist/adapters/mysql/resources/status.js.map +1 -0
  167. package/dist/adapters/mysql/resources/sysschema.d.ts +7 -0
  168. package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -0
  169. package/dist/adapters/mysql/resources/sysschema.js +50 -0
  170. package/dist/adapters/mysql/resources/sysschema.js.map +1 -0
  171. package/dist/adapters/mysql/resources/tables.d.ts +7 -0
  172. package/dist/adapters/mysql/resources/tables.d.ts.map +1 -0
  173. package/dist/adapters/mysql/resources/tables.js +18 -0
  174. package/dist/adapters/mysql/resources/tables.js.map +1 -0
  175. package/dist/adapters/mysql/resources/variables.d.ts +7 -0
  176. package/dist/adapters/mysql/resources/variables.d.ts.map +1 -0
  177. package/dist/adapters/mysql/resources/variables.js +22 -0
  178. package/dist/adapters/mysql/resources/variables.js.map +1 -0
  179. package/dist/adapters/mysql/tools/admin/backup.d.ts +13 -0
  180. package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -0
  181. package/dist/adapters/mysql/tools/admin/backup.js +208 -0
  182. package/dist/adapters/mysql/tools/admin/backup.js.map +1 -0
  183. package/dist/adapters/mysql/tools/admin/index.d.ts +21 -0
  184. package/dist/adapters/mysql/tools/admin/index.d.ts.map +1 -0
  185. package/dist/adapters/mysql/tools/admin/index.js +49 -0
  186. package/dist/adapters/mysql/tools/admin/index.js.map +1 -0
  187. package/dist/adapters/mysql/tools/admin/maintenance.d.ts +15 -0
  188. package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -0
  189. package/dist/adapters/mysql/tools/admin/maintenance.js +143 -0
  190. package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -0
  191. package/dist/adapters/mysql/tools/admin/monitoring.d.ts +16 -0
  192. package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -0
  193. package/dist/adapters/mysql/tools/admin/monitoring.js +199 -0
  194. package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -0
  195. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts +29 -0
  196. package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -0
  197. package/dist/adapters/mysql/tools/cluster/group-replication.js +290 -0
  198. package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -0
  199. package/dist/adapters/mysql/tools/cluster/index.d.ts +13 -0
  200. package/dist/adapters/mysql/tools/cluster/index.d.ts.map +1 -0
  201. package/dist/adapters/mysql/tools/cluster/index.js +27 -0
  202. package/dist/adapters/mysql/tools/cluster/index.js.map +1 -0
  203. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts +29 -0
  204. package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -0
  205. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +351 -0
  206. package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -0
  207. package/dist/adapters/mysql/tools/core.d.ts +13 -0
  208. package/dist/adapters/mysql/tools/core.d.ts.map +1 -0
  209. package/dist/adapters/mysql/tools/core.js +308 -0
  210. package/dist/adapters/mysql/tools/core.js.map +1 -0
  211. package/dist/adapters/mysql/tools/docstore.d.ts +10 -0
  212. package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -0
  213. package/dist/adapters/mysql/tools/docstore.js +320 -0
  214. package/dist/adapters/mysql/tools/docstore.js.map +1 -0
  215. package/dist/adapters/mysql/tools/events.d.ts +13 -0
  216. package/dist/adapters/mysql/tools/events.d.ts.map +1 -0
  217. package/dist/adapters/mysql/tools/events.js +367 -0
  218. package/dist/adapters/mysql/tools/events.js.map +1 -0
  219. package/dist/adapters/mysql/tools/index.d.ts +25 -0
  220. package/dist/adapters/mysql/tools/index.d.ts.map +1 -0
  221. package/dist/adapters/mysql/tools/index.js +43 -0
  222. package/dist/adapters/mysql/tools/index.js.map +1 -0
  223. package/dist/adapters/mysql/tools/json/core.d.ts +17 -0
  224. package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -0
  225. package/dist/adapters/mysql/tools/json/core.js +264 -0
  226. package/dist/adapters/mysql/tools/json/core.js.map +1 -0
  227. package/dist/adapters/mysql/tools/json/enhanced.d.ts +14 -0
  228. package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -0
  229. package/dist/adapters/mysql/tools/json/enhanced.js +305 -0
  230. package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -0
  231. package/dist/adapters/mysql/tools/json/helpers.d.ts +16 -0
  232. package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -0
  233. package/dist/adapters/mysql/tools/json/helpers.js +118 -0
  234. package/dist/adapters/mysql/tools/json/helpers.js.map +1 -0
  235. package/dist/adapters/mysql/tools/json/index.d.ts +21 -0
  236. package/dist/adapters/mysql/tools/json/index.d.ts.map +1 -0
  237. package/dist/adapters/mysql/tools/json/index.js +49 -0
  238. package/dist/adapters/mysql/tools/json/index.js.map +1 -0
  239. package/dist/adapters/mysql/tools/partitioning.d.ts +13 -0
  240. package/dist/adapters/mysql/tools/partitioning.d.ts.map +1 -0
  241. package/dist/adapters/mysql/tools/partitioning.js +160 -0
  242. package/dist/adapters/mysql/tools/partitioning.js.map +1 -0
  243. package/dist/adapters/mysql/tools/performance/analysis.d.ts +17 -0
  244. package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -0
  245. package/dist/adapters/mysql/tools/performance/analysis.js +278 -0
  246. package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -0
  247. package/dist/adapters/mysql/tools/performance/index.d.ts +17 -0
  248. package/dist/adapters/mysql/tools/performance/index.d.ts.map +1 -0
  249. package/dist/adapters/mysql/tools/performance/index.js +36 -0
  250. package/dist/adapters/mysql/tools/performance/index.js.map +1 -0
  251. package/dist/adapters/mysql/tools/performance/optimization.d.ts +13 -0
  252. package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -0
  253. package/dist/adapters/mysql/tools/performance/optimization.js +187 -0
  254. package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -0
  255. package/dist/adapters/mysql/tools/proxysql.d.ts +16 -0
  256. package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -0
  257. package/dist/adapters/mysql/tools/proxysql.js +427 -0
  258. package/dist/adapters/mysql/tools/proxysql.js.map +1 -0
  259. package/dist/adapters/mysql/tools/replication.d.ts +13 -0
  260. package/dist/adapters/mysql/tools/replication.d.ts.map +1 -0
  261. package/dist/adapters/mysql/tools/replication.js +191 -0
  262. package/dist/adapters/mysql/tools/replication.js.map +1 -0
  263. package/dist/adapters/mysql/tools/roles.d.ts +7 -0
  264. package/dist/adapters/mysql/tools/roles.d.ts.map +1 -0
  265. package/dist/adapters/mysql/tools/roles.js +190 -0
  266. package/dist/adapters/mysql/tools/roles.js.map +1 -0
  267. package/dist/adapters/mysql/tools/router.d.ts +16 -0
  268. package/dist/adapters/mysql/tools/router.d.ts.map +1 -0
  269. package/dist/adapters/mysql/tools/router.js +369 -0
  270. package/dist/adapters/mysql/tools/router.js.map +1 -0
  271. package/dist/adapters/mysql/tools/schema/constraints.d.ts +7 -0
  272. package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -0
  273. package/dist/adapters/mysql/tools/schema/constraints.js +67 -0
  274. package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -0
  275. package/dist/adapters/mysql/tools/schema/index.d.ts +12 -0
  276. package/dist/adapters/mysql/tools/schema/index.d.ts.map +1 -0
  277. package/dist/adapters/mysql/tools/schema/index.js +29 -0
  278. package/dist/adapters/mysql/tools/schema/index.js.map +1 -0
  279. package/dist/adapters/mysql/tools/schema/management.d.ts +15 -0
  280. package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -0
  281. package/dist/adapters/mysql/tools/schema/management.js +113 -0
  282. package/dist/adapters/mysql/tools/schema/management.js.map +1 -0
  283. package/dist/adapters/mysql/tools/schema/routines.d.ts +11 -0
  284. package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -0
  285. package/dist/adapters/mysql/tools/schema/routines.js +98 -0
  286. package/dist/adapters/mysql/tools/schema/routines.js.map +1 -0
  287. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts +7 -0
  288. package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -0
  289. package/dist/adapters/mysql/tools/schema/scheduled_events.js +58 -0
  290. package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -0
  291. package/dist/adapters/mysql/tools/schema/triggers.d.ts +7 -0
  292. package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -0
  293. package/dist/adapters/mysql/tools/schema/triggers.js +49 -0
  294. package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -0
  295. package/dist/adapters/mysql/tools/schema/views.d.ts +11 -0
  296. package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -0
  297. package/dist/adapters/mysql/tools/schema/views.js +78 -0
  298. package/dist/adapters/mysql/tools/schema/views.js.map +1 -0
  299. package/dist/adapters/mysql/tools/security/audit.d.ts +20 -0
  300. package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -0
  301. package/dist/adapters/mysql/tools/security/audit.js +233 -0
  302. package/dist/adapters/mysql/tools/security/audit.js.map +1 -0
  303. package/dist/adapters/mysql/tools/security/data-protection.d.ts +20 -0
  304. package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -0
  305. package/dist/adapters/mysql/tools/security/data-protection.js +243 -0
  306. package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -0
  307. package/dist/adapters/mysql/tools/security/encryption.d.ts +20 -0
  308. package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -0
  309. package/dist/adapters/mysql/tools/security/encryption.js +191 -0
  310. package/dist/adapters/mysql/tools/security/encryption.js.map +1 -0
  311. package/dist/adapters/mysql/tools/security/index.d.ts +13 -0
  312. package/dist/adapters/mysql/tools/security/index.d.ts.map +1 -0
  313. package/dist/adapters/mysql/tools/security/index.js +27 -0
  314. package/dist/adapters/mysql/tools/security/index.js.map +1 -0
  315. package/dist/adapters/mysql/tools/shell/backup.d.ts +19 -0
  316. package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -0
  317. package/dist/adapters/mysql/tools/shell/backup.js +187 -0
  318. package/dist/adapters/mysql/tools/shell/backup.js.map +1 -0
  319. package/dist/adapters/mysql/tools/shell/common.d.ts +41 -0
  320. package/dist/adapters/mysql/tools/shell/common.d.ts.map +1 -0
  321. package/dist/adapters/mysql/tools/shell/common.js +167 -0
  322. package/dist/adapters/mysql/tools/shell/common.js.map +1 -0
  323. package/dist/adapters/mysql/tools/shell/data-transfer.d.ts +19 -0
  324. package/dist/adapters/mysql/tools/shell/data-transfer.d.ts.map +1 -0
  325. package/dist/adapters/mysql/tools/shell/data-transfer.js +226 -0
  326. package/dist/adapters/mysql/tools/shell/data-transfer.js.map +1 -0
  327. package/dist/adapters/mysql/tools/shell/index.d.ts +17 -0
  328. package/dist/adapters/mysql/tools/shell/index.d.ts.map +1 -0
  329. package/dist/adapters/mysql/tools/shell/index.js +34 -0
  330. package/dist/adapters/mysql/tools/shell/index.js.map +1 -0
  331. package/dist/adapters/mysql/tools/shell/info.d.ts +11 -0
  332. package/dist/adapters/mysql/tools/shell/info.d.ts.map +1 -0
  333. package/dist/adapters/mysql/tools/shell/info.js +40 -0
  334. package/dist/adapters/mysql/tools/shell/info.js.map +1 -0
  335. package/dist/adapters/mysql/tools/shell/restore.d.ts +15 -0
  336. package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -0
  337. package/dist/adapters/mysql/tools/shell/restore.js +135 -0
  338. package/dist/adapters/mysql/tools/shell/restore.js.map +1 -0
  339. package/dist/adapters/mysql/tools/shell/utilities.d.ts +11 -0
  340. package/dist/adapters/mysql/tools/shell/utilities.d.ts.map +1 -0
  341. package/dist/adapters/mysql/tools/shell/utilities.js +49 -0
  342. package/dist/adapters/mysql/tools/shell/utilities.js.map +1 -0
  343. package/dist/adapters/mysql/tools/spatial/geometry.d.ts +17 -0
  344. package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -0
  345. package/dist/adapters/mysql/tools/spatial/geometry.js +87 -0
  346. package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -0
  347. package/dist/adapters/mysql/tools/spatial/index.d.ts +13 -0
  348. package/dist/adapters/mysql/tools/spatial/index.d.ts.map +1 -0
  349. package/dist/adapters/mysql/tools/spatial/index.js +31 -0
  350. package/dist/adapters/mysql/tools/spatial/index.js.map +1 -0
  351. package/dist/adapters/mysql/tools/spatial/operations.d.ts +25 -0
  352. package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -0
  353. package/dist/adapters/mysql/tools/spatial/operations.js +179 -0
  354. package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -0
  355. package/dist/adapters/mysql/tools/spatial/queries.d.ts +25 -0
  356. package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -0
  357. package/dist/adapters/mysql/tools/spatial/queries.js +205 -0
  358. package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -0
  359. package/dist/adapters/mysql/tools/spatial/setup.d.ts +17 -0
  360. package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -0
  361. package/dist/adapters/mysql/tools/spatial/setup.js +85 -0
  362. package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -0
  363. package/dist/adapters/mysql/tools/stats/comparative.d.ts +21 -0
  364. package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -0
  365. package/dist/adapters/mysql/tools/stats/comparative.js +247 -0
  366. package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -0
  367. package/dist/adapters/mysql/tools/stats/descriptive.d.ts +30 -0
  368. package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -0
  369. package/dist/adapters/mysql/tools/stats/descriptive.js +403 -0
  370. package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -0
  371. package/dist/adapters/mysql/tools/stats/index.d.ts +13 -0
  372. package/dist/adapters/mysql/tools/stats/index.d.ts.map +1 -0
  373. package/dist/adapters/mysql/tools/stats/index.js +25 -0
  374. package/dist/adapters/mysql/tools/stats/index.js.map +1 -0
  375. package/dist/adapters/mysql/tools/sysschema/activity.d.ts +17 -0
  376. package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -0
  377. package/dist/adapters/mysql/tools/sysschema/activity.js +107 -0
  378. package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -0
  379. package/dist/adapters/mysql/tools/sysschema/index.d.ts +13 -0
  380. package/dist/adapters/mysql/tools/sysschema/index.d.ts.map +1 -0
  381. package/dist/adapters/mysql/tools/sysschema/index.js +26 -0
  382. package/dist/adapters/mysql/tools/sysschema/index.js.map +1 -0
  383. package/dist/adapters/mysql/tools/sysschema/performance.d.ts +21 -0
  384. package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -0
  385. package/dist/adapters/mysql/tools/sysschema/performance.js +220 -0
  386. package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -0
  387. package/dist/adapters/mysql/tools/sysschema/resources.d.ts +21 -0
  388. package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -0
  389. package/dist/adapters/mysql/tools/sysschema/resources.js +214 -0
  390. package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -0
  391. package/dist/adapters/mysql/tools/text/fulltext.d.ts +13 -0
  392. package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -0
  393. package/dist/adapters/mysql/tools/text/fulltext.js +116 -0
  394. package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -0
  395. package/dist/adapters/mysql/tools/text/index.d.ts +17 -0
  396. package/dist/adapters/mysql/tools/text/index.d.ts.map +1 -0
  397. package/dist/adapters/mysql/tools/text/index.js +34 -0
  398. package/dist/adapters/mysql/tools/text/index.js.map +1 -0
  399. package/dist/adapters/mysql/tools/text/processing.d.ts +15 -0
  400. package/dist/adapters/mysql/tools/text/processing.d.ts.map +1 -0
  401. package/dist/adapters/mysql/tools/text/processing.js +203 -0
  402. package/dist/adapters/mysql/tools/text/processing.js.map +1 -0
  403. package/dist/adapters/mysql/tools/transactions.d.ts +13 -0
  404. package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -0
  405. package/dist/adapters/mysql/tools/transactions.js +224 -0
  406. package/dist/adapters/mysql/tools/transactions.js.map +1 -0
  407. package/dist/adapters/mysql/types/proxysql-types.d.ts +156 -0
  408. package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -0
  409. package/dist/adapters/mysql/types/proxysql-types.js +150 -0
  410. package/dist/adapters/mysql/types/proxysql-types.js.map +1 -0
  411. package/dist/adapters/mysql/types/router-types.d.ts +97 -0
  412. package/dist/adapters/mysql/types/router-types.d.ts.map +1 -0
  413. package/dist/adapters/mysql/types/router-types.js +89 -0
  414. package/dist/adapters/mysql/types/router-types.js.map +1 -0
  415. package/dist/adapters/mysql/types/shell-types.d.ts +109 -0
  416. package/dist/adapters/mysql/types/shell-types.d.ts.map +1 -0
  417. package/dist/adapters/mysql/types/shell-types.js +119 -0
  418. package/dist/adapters/mysql/types/shell-types.js.map +1 -0
  419. package/dist/adapters/mysql/types.d.ts +257 -0
  420. package/dist/adapters/mysql/types.d.ts.map +1 -0
  421. package/dist/adapters/mysql/types.js +245 -0
  422. package/dist/adapters/mysql/types.js.map +1 -0
  423. package/dist/auth/AuthorizationServerDiscovery.d.ts +44 -0
  424. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
  425. package/dist/auth/AuthorizationServerDiscovery.js +110 -0
  426. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
  427. package/dist/auth/OAuthResourceServer.d.ts +42 -0
  428. package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
  429. package/dist/auth/OAuthResourceServer.js +75 -0
  430. package/dist/auth/OAuthResourceServer.js.map +1 -0
  431. package/dist/auth/TokenValidator.d.ts +36 -0
  432. package/dist/auth/TokenValidator.d.ts.map +1 -0
  433. package/dist/auth/TokenValidator.js +125 -0
  434. package/dist/auth/TokenValidator.js.map +1 -0
  435. package/dist/auth/errors.d.ts +63 -0
  436. package/dist/auth/errors.d.ts.map +1 -0
  437. package/dist/auth/errors.js +102 -0
  438. package/dist/auth/errors.js.map +1 -0
  439. package/dist/auth/index.d.ts +13 -0
  440. package/dist/auth/index.d.ts.map +1 -0
  441. package/dist/auth/index.js +15 -0
  442. package/dist/auth/index.js.map +1 -0
  443. package/dist/auth/middleware.d.ts +61 -0
  444. package/dist/auth/middleware.d.ts.map +1 -0
  445. package/dist/auth/middleware.js +152 -0
  446. package/dist/auth/middleware.js.map +1 -0
  447. package/dist/auth/scopes.d.ts +61 -0
  448. package/dist/auth/scopes.d.ts.map +1 -0
  449. package/dist/auth/scopes.js +167 -0
  450. package/dist/auth/scopes.js.map +1 -0
  451. package/dist/auth/types.d.ts +208 -0
  452. package/dist/auth/types.d.ts.map +1 -0
  453. package/dist/auth/types.js +8 -0
  454. package/dist/auth/types.js.map +1 -0
  455. package/dist/cli/args.d.ts +15 -0
  456. package/dist/cli/args.d.ts.map +1 -0
  457. package/dist/cli/args.js +303 -0
  458. package/dist/cli/args.js.map +1 -0
  459. package/dist/cli.d.ts +17 -0
  460. package/dist/cli.d.ts.map +1 -0
  461. package/dist/cli.js +141 -0
  462. package/dist/cli.js.map +1 -0
  463. package/dist/constants/ServerInstructions.d.ts +17 -0
  464. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  465. package/dist/constants/ServerInstructions.js +143 -0
  466. package/dist/constants/ServerInstructions.js.map +1 -0
  467. package/dist/filtering/ToolConstants.d.ts +32 -0
  468. package/dist/filtering/ToolConstants.d.ts.map +1 -0
  469. package/dist/filtering/ToolConstants.js +290 -0
  470. package/dist/filtering/ToolConstants.js.map +1 -0
  471. package/dist/filtering/ToolFilter.d.ts +82 -0
  472. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  473. package/dist/filtering/ToolFilter.js +319 -0
  474. package/dist/filtering/ToolFilter.js.map +1 -0
  475. package/dist/index.d.ts +15 -0
  476. package/dist/index.d.ts.map +1 -0
  477. package/dist/index.js +19 -0
  478. package/dist/index.js.map +1 -0
  479. package/dist/logging/McpLogging.d.ts +81 -0
  480. package/dist/logging/McpLogging.d.ts.map +1 -0
  481. package/dist/logging/McpLogging.js +129 -0
  482. package/dist/logging/McpLogging.js.map +1 -0
  483. package/dist/logging/index.d.ts +7 -0
  484. package/dist/logging/index.d.ts.map +1 -0
  485. package/dist/logging/index.js +7 -0
  486. package/dist/logging/index.js.map +1 -0
  487. package/dist/pool/ConnectionPool.d.ts +76 -0
  488. package/dist/pool/ConnectionPool.d.ts.map +1 -0
  489. package/dist/pool/ConnectionPool.js +238 -0
  490. package/dist/pool/ConnectionPool.js.map +1 -0
  491. package/dist/progress/ProgressReporter.d.ts +101 -0
  492. package/dist/progress/ProgressReporter.d.ts.map +1 -0
  493. package/dist/progress/ProgressReporter.js +153 -0
  494. package/dist/progress/ProgressReporter.js.map +1 -0
  495. package/dist/progress/index.d.ts +7 -0
  496. package/dist/progress/index.d.ts.map +1 -0
  497. package/dist/progress/index.js +7 -0
  498. package/dist/progress/index.js.map +1 -0
  499. package/dist/server/McpServer.d.ts +86 -0
  500. package/dist/server/McpServer.d.ts.map +1 -0
  501. package/dist/server/McpServer.js +289 -0
  502. package/dist/server/McpServer.js.map +1 -0
  503. package/dist/transports/http.d.ts +74 -0
  504. package/dist/transports/http.d.ts.map +1 -0
  505. package/dist/transports/http.js +199 -0
  506. package/dist/transports/http.js.map +1 -0
  507. package/dist/transports/index.d.ts +7 -0
  508. package/dist/transports/index.d.ts.map +1 -0
  509. package/dist/transports/index.js +7 -0
  510. package/dist/transports/index.js.map +1 -0
  511. package/dist/types/index.d.ts +15 -0
  512. package/dist/types/index.d.ts.map +1 -0
  513. package/dist/types/index.js +11 -0
  514. package/dist/types/index.js.map +1 -0
  515. package/dist/types/modules/database.d.ts +101 -0
  516. package/dist/types/modules/database.d.ts.map +1 -0
  517. package/dist/types/modules/database.js +8 -0
  518. package/dist/types/modules/database.js.map +1 -0
  519. package/dist/types/modules/errors.d.ts +56 -0
  520. package/dist/types/modules/errors.d.ts.map +1 -0
  521. package/dist/types/modules/errors.js +82 -0
  522. package/dist/types/modules/errors.js.map +1 -0
  523. package/dist/types/modules/oauth.d.ts +66 -0
  524. package/dist/types/modules/oauth.d.ts.map +1 -0
  525. package/dist/types/modules/oauth.js +8 -0
  526. package/dist/types/modules/oauth.js.map +1 -0
  527. package/dist/types/modules/query.d.ts +126 -0
  528. package/dist/types/modules/query.d.ts.map +1 -0
  529. package/dist/types/modules/query.js +8 -0
  530. package/dist/types/modules/query.js.map +1 -0
  531. package/dist/types/modules/server.d.ts +31 -0
  532. package/dist/types/modules/server.d.ts.map +1 -0
  533. package/dist/types/modules/server.js +7 -0
  534. package/dist/types/modules/server.js.map +1 -0
  535. package/dist/types/modules/tools.d.ts +202 -0
  536. package/dist/types/modules/tools.d.ts.map +1 -0
  537. package/dist/types/modules/tools.js +8 -0
  538. package/dist/types/modules/tools.js.map +1 -0
  539. package/dist/utils/logger.d.ts +116 -0
  540. package/dist/utils/logger.d.ts.map +1 -0
  541. package/dist/utils/logger.js +315 -0
  542. package/dist/utils/logger.js.map +1 -0
  543. package/dist/utils/promptGenerator.d.ts +15 -0
  544. package/dist/utils/promptGenerator.d.ts.map +1 -0
  545. package/dist/utils/promptGenerator.js +51 -0
  546. package/dist/utils/promptGenerator.js.map +1 -0
  547. package/dist/utils/validators.d.ts +59 -0
  548. package/dist/utils/validators.d.ts.map +1 -0
  549. package/dist/utils/validators.js +145 -0
  550. package/dist/utils/validators.js.map +1 -0
  551. package/eslint.config.js +86 -0
  552. package/package.json +66 -0
  553. package/releases/release-notes.md +134 -0
  554. package/releases/v2.0.0-release-notes.md +522 -0
  555. package/releases/v2.1.0-release-notes.md +145 -0
  556. package/server.json +33 -0
  557. package/src/__tests__/cli.test.ts +304 -0
  558. package/src/__tests__/index.test.ts +25 -0
  559. package/src/__tests__/mocks/adapter.ts +265 -0
  560. package/src/__tests__/mocks/index.ts +36 -0
  561. package/src/__tests__/mocks/mysql.ts +135 -0
  562. package/src/__tests__/perf.test.ts +224 -0
  563. package/src/__tests__/performance.test.ts +181 -0
  564. package/src/__tests__/setup.ts +55 -0
  565. package/src/adapters/DatabaseAdapter.ts +376 -0
  566. package/src/adapters/__tests__/DatabaseAdapter.test.ts +441 -0
  567. package/src/adapters/mysql/MySQLAdapter.ts +544 -0
  568. package/src/adapters/mysql/SchemaManager.ts +298 -0
  569. package/src/adapters/mysql/__tests__/MySQLAdapter.integration.test.ts +155 -0
  570. package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +510 -0
  571. package/src/adapters/mysql/__tests__/SchemaManager.test.ts +165 -0
  572. package/src/adapters/mysql/index.ts +8 -0
  573. package/src/adapters/mysql/prompts/__tests__/indexTuning.test.ts +32 -0
  574. package/src/adapters/mysql/prompts/__tests__/prompts.test.ts +301 -0
  575. package/src/adapters/mysql/prompts/backupStrategy.ts +81 -0
  576. package/src/adapters/mysql/prompts/clusterSetup.ts +118 -0
  577. package/src/adapters/mysql/prompts/docstoreSetup.ts +123 -0
  578. package/src/adapters/mysql/prompts/eventScheduler.ts +103 -0
  579. package/src/adapters/mysql/prompts/healthCheck.ts +56 -0
  580. package/src/adapters/mysql/prompts/index.ts +329 -0
  581. package/src/adapters/mysql/prompts/indexTuning.ts +90 -0
  582. package/src/adapters/mysql/prompts/mysqlshSetup.ts +119 -0
  583. package/src/adapters/mysql/prompts/proxysqlSetup.ts +115 -0
  584. package/src/adapters/mysql/prompts/replicationSetup.ts +147 -0
  585. package/src/adapters/mysql/prompts/routerSetup.ts +106 -0
  586. package/src/adapters/mysql/prompts/spatialSetup.ts +109 -0
  587. package/src/adapters/mysql/prompts/sysSchema.ts +109 -0
  588. package/src/adapters/mysql/resources/__tests__/capabilities.test.ts +52 -0
  589. package/src/adapters/mysql/resources/__tests__/cluster.test.ts +105 -0
  590. package/src/adapters/mysql/resources/__tests__/docstore.test.ts +97 -0
  591. package/src/adapters/mysql/resources/__tests__/events.test.ts +97 -0
  592. package/src/adapters/mysql/resources/__tests__/health.test.ts +92 -0
  593. package/src/adapters/mysql/resources/__tests__/indexes.test.ts +106 -0
  594. package/src/adapters/mysql/resources/__tests__/innodb.test.ts +74 -0
  595. package/src/adapters/mysql/resources/__tests__/locks.test.ts +110 -0
  596. package/src/adapters/mysql/resources/__tests__/performance.test.ts +60 -0
  597. package/src/adapters/mysql/resources/__tests__/pool.test.ts +50 -0
  598. package/src/adapters/mysql/resources/__tests__/processlist.test.ts +29 -0
  599. package/src/adapters/mysql/resources/__tests__/replication.test.ts +213 -0
  600. package/src/adapters/mysql/resources/__tests__/resources.test.ts +117 -0
  601. package/src/adapters/mysql/resources/__tests__/schema.test.ts +30 -0
  602. package/src/adapters/mysql/resources/__tests__/spatial.test.ts +47 -0
  603. package/src/adapters/mysql/resources/__tests__/status.test.ts +58 -0
  604. package/src/adapters/mysql/resources/__tests__/sysschema.test.ts +62 -0
  605. package/src/adapters/mysql/resources/__tests__/tables.test.ts +37 -0
  606. package/src/adapters/mysql/resources/__tests__/variables.test.ts +70 -0
  607. package/src/adapters/mysql/resources/capabilities.ts +51 -0
  608. package/src/adapters/mysql/resources/cluster.ts +71 -0
  609. package/src/adapters/mysql/resources/docstore.ts +69 -0
  610. package/src/adapters/mysql/resources/events.ts +50 -0
  611. package/src/adapters/mysql/resources/health.ts +96 -0
  612. package/src/adapters/mysql/resources/index.ts +77 -0
  613. package/src/adapters/mysql/resources/indexes.ts +98 -0
  614. package/src/adapters/mysql/resources/innodb.ts +110 -0
  615. package/src/adapters/mysql/resources/locks.ts +64 -0
  616. package/src/adapters/mysql/resources/performance.ts +100 -0
  617. package/src/adapters/mysql/resources/pool.ts +26 -0
  618. package/src/adapters/mysql/resources/processlist.ts +23 -0
  619. package/src/adapters/mysql/resources/replication.ts +120 -0
  620. package/src/adapters/mysql/resources/schema.ts +23 -0
  621. package/src/adapters/mysql/resources/spatial.ts +54 -0
  622. package/src/adapters/mysql/resources/status.ts +27 -0
  623. package/src/adapters/mysql/resources/sysschema.ts +57 -0
  624. package/src/adapters/mysql/resources/tables.ts +23 -0
  625. package/src/adapters/mysql/resources/variables.ts +27 -0
  626. package/src/adapters/mysql/tools/__tests__/cluster.test.ts +349 -0
  627. package/src/adapters/mysql/tools/__tests__/core.test.ts +439 -0
  628. package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -0
  629. package/src/adapters/mysql/tools/__tests__/events.test.ts +515 -0
  630. package/src/adapters/mysql/tools/__tests__/json_core.test.ts +285 -0
  631. package/src/adapters/mysql/tools/__tests__/json_enhanced.test.ts +380 -0
  632. package/src/adapters/mysql/tools/__tests__/json_helpers.test.ts +151 -0
  633. package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +422 -0
  634. package/src/adapters/mysql/tools/__tests__/replication.test.ts +478 -0
  635. package/src/adapters/mysql/tools/__tests__/roles.test.ts +217 -0
  636. package/src/adapters/mysql/tools/__tests__/router.test.ts +603 -0
  637. package/src/adapters/mysql/tools/__tests__/security.test.ts +466 -0
  638. package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +188 -0
  639. package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +223 -0
  640. package/src/adapters/mysql/tools/__tests__/spatial.test.ts +333 -0
  641. package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +153 -0
  642. package/src/adapters/mysql/tools/__tests__/stats.test.ts +577 -0
  643. package/src/adapters/mysql/tools/__tests__/transactions.test.ts +311 -0
  644. package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +400 -0
  645. package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +343 -0
  646. package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +402 -0
  647. package/src/adapters/mysql/tools/admin/backup.ts +238 -0
  648. package/src/adapters/mysql/tools/admin/index.ts +77 -0
  649. package/src/adapters/mysql/tools/admin/maintenance.ts +160 -0
  650. package/src/adapters/mysql/tools/admin/monitoring.ts +229 -0
  651. package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +204 -0
  652. package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +130 -0
  653. package/src/adapters/mysql/tools/cluster/group-replication.ts +324 -0
  654. package/src/adapters/mysql/tools/cluster/index.ts +44 -0
  655. package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +384 -0
  656. package/src/adapters/mysql/tools/core.ts +363 -0
  657. package/src/adapters/mysql/tools/docstore.ts +346 -0
  658. package/src/adapters/mysql/tools/events.ts +419 -0
  659. package/src/adapters/mysql/tools/index.ts +60 -0
  660. package/src/adapters/mysql/tools/json/__tests__/core.test.ts +207 -0
  661. package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +316 -0
  662. package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +94 -0
  663. package/src/adapters/mysql/tools/json/__tests__/validation.test.ts +83 -0
  664. package/src/adapters/mysql/tools/json/core.ts +309 -0
  665. package/src/adapters/mysql/tools/json/enhanced.ts +346 -0
  666. package/src/adapters/mysql/tools/json/helpers.ts +137 -0
  667. package/src/adapters/mysql/tools/json/index.ts +77 -0
  668. package/src/adapters/mysql/tools/partitioning.ts +184 -0
  669. package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +302 -0
  670. package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +201 -0
  671. package/src/adapters/mysql/tools/performance/analysis.ts +322 -0
  672. package/src/adapters/mysql/tools/performance/index.ts +56 -0
  673. package/src/adapters/mysql/tools/performance/optimization.ts +218 -0
  674. package/src/adapters/mysql/tools/proxysql.ts +465 -0
  675. package/src/adapters/mysql/tools/replication.ts +215 -0
  676. package/src/adapters/mysql/tools/roles.ts +202 -0
  677. package/src/adapters/mysql/tools/router.ts +405 -0
  678. package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +91 -0
  679. package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +122 -0
  680. package/src/adapters/mysql/tools/schema/__tests__/routines.test.ts +45 -0
  681. package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +44 -0
  682. package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +44 -0
  683. package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +85 -0
  684. package/src/adapters/mysql/tools/schema/constraints.ts +77 -0
  685. package/src/adapters/mysql/tools/schema/index.ts +54 -0
  686. package/src/adapters/mysql/tools/schema/management.ts +131 -0
  687. package/src/adapters/mysql/tools/schema/routines.ts +106 -0
  688. package/src/adapters/mysql/tools/schema/scheduled_events.ts +66 -0
  689. package/src/adapters/mysql/tools/schema/triggers.ts +57 -0
  690. package/src/adapters/mysql/tools/schema/views.ts +90 -0
  691. package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +181 -0
  692. package/src/adapters/mysql/tools/security/__tests__/data-protection.test.ts +111 -0
  693. package/src/adapters/mysql/tools/security/__tests__/encryption.test.ts +156 -0
  694. package/src/adapters/mysql/tools/security/audit.ts +272 -0
  695. package/src/adapters/mysql/tools/security/data-protection.ts +274 -0
  696. package/src/adapters/mysql/tools/security/encryption.ts +237 -0
  697. package/src/adapters/mysql/tools/security/index.ts +45 -0
  698. package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +298 -0
  699. package/src/adapters/mysql/tools/shell/__tests__/common.test.ts +180 -0
  700. package/src/adapters/mysql/tools/shell/__tests__/data-transfer.test.ts +368 -0
  701. package/src/adapters/mysql/tools/shell/__tests__/info.test.ts +77 -0
  702. package/src/adapters/mysql/tools/shell/__tests__/restore.test.ts +187 -0
  703. package/src/adapters/mysql/tools/shell/__tests__/utilities.test.ts +154 -0
  704. package/src/adapters/mysql/tools/shell/backup.ts +215 -0
  705. package/src/adapters/mysql/tools/shell/common.ts +227 -0
  706. package/src/adapters/mysql/tools/shell/data-transfer.ts +256 -0
  707. package/src/adapters/mysql/tools/shell/index.ts +49 -0
  708. package/src/adapters/mysql/tools/shell/info.ts +45 -0
  709. package/src/adapters/mysql/tools/shell/restore.ts +153 -0
  710. package/src/adapters/mysql/tools/shell/utilities.ts +56 -0
  711. package/src/adapters/mysql/tools/spatial/__tests__/geometry.test.ts +101 -0
  712. package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +164 -0
  713. package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +253 -0
  714. package/src/adapters/mysql/tools/spatial/geometry.ts +106 -0
  715. package/src/adapters/mysql/tools/spatial/index.ts +54 -0
  716. package/src/adapters/mysql/tools/spatial/operations.ts +217 -0
  717. package/src/adapters/mysql/tools/spatial/queries.ts +235 -0
  718. package/src/adapters/mysql/tools/spatial/setup.ts +104 -0
  719. package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +139 -0
  720. package/src/adapters/mysql/tools/stats/comparative.ts +272 -0
  721. package/src/adapters/mysql/tools/stats/descriptive.ts +452 -0
  722. package/src/adapters/mysql/tools/stats/index.ts +40 -0
  723. package/src/adapters/mysql/tools/sysschema/__tests__/activity.test.ts +89 -0
  724. package/src/adapters/mysql/tools/sysschema/__tests__/io_summary_fix.test.ts +24 -0
  725. package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +142 -0
  726. package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +142 -0
  727. package/src/adapters/mysql/tools/sysschema/activity.ts +122 -0
  728. package/src/adapters/mysql/tools/sysschema/index.ts +43 -0
  729. package/src/adapters/mysql/tools/sysschema/performance.ts +237 -0
  730. package/src/adapters/mysql/tools/sysschema/resources.ts +232 -0
  731. package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +153 -0
  732. package/src/adapters/mysql/tools/text/__tests__/processing.test.ts +201 -0
  733. package/src/adapters/mysql/tools/text/fulltext.ts +140 -0
  734. package/src/adapters/mysql/tools/text/index.ts +52 -0
  735. package/src/adapters/mysql/tools/text/processing.ts +242 -0
  736. package/src/adapters/mysql/tools/transactions.ts +252 -0
  737. package/src/adapters/mysql/types/__tests__/shell-types.test.ts +210 -0
  738. package/src/adapters/mysql/types/proxysql-types.ts +190 -0
  739. package/src/adapters/mysql/types/router-types.ts +129 -0
  740. package/src/adapters/mysql/types/shell-types.ts +140 -0
  741. package/src/adapters/mysql/types.ts +298 -0
  742. package/src/auth/AuthorizationServerDiscovery.ts +133 -0
  743. package/src/auth/OAuthResourceServer.ts +87 -0
  744. package/src/auth/TokenValidator.ts +143 -0
  745. package/src/auth/__tests__/AuthorizationServerDiscovery.test.ts +312 -0
  746. package/src/auth/__tests__/OAuthResourceServer.test.ts +183 -0
  747. package/src/auth/__tests__/TokenValidator.test.ts +351 -0
  748. package/src/auth/__tests__/errors.test.ts +183 -0
  749. package/src/auth/__tests__/middleware.test.ts +276 -0
  750. package/src/auth/__tests__/scopes.test.ts +164 -0
  751. package/src/auth/errors.ts +116 -0
  752. package/src/auth/index.ts +30 -0
  753. package/src/auth/middleware.ts +214 -0
  754. package/src/auth/scopes.ts +193 -0
  755. package/src/auth/types.ts +303 -0
  756. package/src/cli/__tests__/args.test.ts +223 -0
  757. package/src/cli/__tests__/main.test.ts +193 -0
  758. package/src/cli/args.ts +343 -0
  759. package/src/cli.ts +168 -0
  760. package/src/constants/ServerInstructions.ts +159 -0
  761. package/src/filtering/ToolConstants.ts +297 -0
  762. package/src/filtering/ToolFilter.ts +363 -0
  763. package/src/filtering/__tests__/ToolFilter.test.ts +427 -0
  764. package/src/index.ts +78 -0
  765. package/src/logging/McpLogging.ts +163 -0
  766. package/src/logging/__tests__/McpLogging.test.ts +261 -0
  767. package/src/logging/index.ts +7 -0
  768. package/src/pool/ConnectionPool.ts +284 -0
  769. package/src/pool/__tests__/ConnectionPool.test.ts +448 -0
  770. package/src/progress/ProgressReporter.ts +179 -0
  771. package/src/progress/__tests__/ProgressReporter.test.ts +263 -0
  772. package/src/progress/index.ts +7 -0
  773. package/src/server/McpServer.ts +341 -0
  774. package/src/server/__tests__/McpServer.test.ts +368 -0
  775. package/src/transports/__tests__/http.test.ts +596 -0
  776. package/src/transports/http.ts +248 -0
  777. package/src/transports/index.ts +7 -0
  778. package/src/types/__tests__/types.test.ts +201 -0
  779. package/src/types/index.ts +58 -0
  780. package/src/types/modules/database.ts +127 -0
  781. package/src/types/modules/errors.ts +89 -0
  782. package/src/types/modules/oauth.ts +91 -0
  783. package/src/types/modules/query.ts +140 -0
  784. package/src/types/modules/server.ts +39 -0
  785. package/src/types/modules/tools.ts +296 -0
  786. package/src/utils/__tests__/logger.test.ts +422 -0
  787. package/src/utils/__tests__/validators.test.ts +172 -0
  788. package/src/utils/logger.ts +426 -0
  789. package/src/utils/promptGenerator.ts +74 -0
  790. package/src/utils/validators.ts +181 -0
  791. package/tsconfig.json +51 -0
  792. package/vitest.config.ts +26 -0
@@ -0,0 +1,210 @@
1
+ /**
2
+ * mysql-mcp - Shell Types Unit Tests
3
+ *
4
+ * Tests for shell-types.ts boolean coercion and schema validation.
5
+ */
6
+
7
+ import { describe, it, expect } from 'vitest';
8
+ import {
9
+ ShellImportTableInputSchema,
10
+ ShellDumpInstanceInputSchema,
11
+ ShellDumpSchemasInputSchema,
12
+ ShellDumpTablesInputSchema,
13
+ ShellLoadDumpInputSchema,
14
+ ShellImportJSONInputSchema
15
+ } from '../shell-types.js';
16
+
17
+ describe('Shell Types - Boolean Coercion', () => {
18
+ describe('ShellImportTableInputSchema', () => {
19
+ it('should coerce string "true" to boolean true', () => {
20
+ const result = ShellImportTableInputSchema.parse({
21
+ inputPath: '/path/to/file',
22
+ schema: 'test',
23
+ table: 'users',
24
+ updateServerSettings: 'true'
25
+ });
26
+ expect(result.updateServerSettings).toBe(true);
27
+ });
28
+
29
+ it('should coerce string "false" to boolean false', () => {
30
+ const result = ShellImportTableInputSchema.parse({
31
+ inputPath: '/path/to/file',
32
+ schema: 'test',
33
+ table: 'users',
34
+ updateServerSettings: 'false'
35
+ });
36
+ expect(result.updateServerSettings).toBe(false);
37
+ });
38
+
39
+ it('should coerce string "TRUE" (uppercase) to boolean true', () => {
40
+ const result = ShellImportTableInputSchema.parse({
41
+ inputPath: '/path/to/file',
42
+ schema: 'test',
43
+ table: 'users',
44
+ updateServerSettings: 'TRUE'
45
+ });
46
+ expect(result.updateServerSettings).toBe(true);
47
+ });
48
+
49
+ it('should coerce string "FALSE" (uppercase) to boolean false', () => {
50
+ const result = ShellImportTableInputSchema.parse({
51
+ inputPath: '/path/to/file',
52
+ schema: 'test',
53
+ table: 'users',
54
+ updateServerSettings: 'FALSE'
55
+ });
56
+ expect(result.updateServerSettings).toBe(false);
57
+ });
58
+
59
+ it('should pass through boolean true unchanged', () => {
60
+ const result = ShellImportTableInputSchema.parse({
61
+ inputPath: '/path/to/file',
62
+ schema: 'test',
63
+ table: 'users',
64
+ updateServerSettings: true
65
+ });
66
+ expect(result.updateServerSettings).toBe(true);
67
+ });
68
+
69
+ it('should pass through boolean false unchanged', () => {
70
+ const result = ShellImportTableInputSchema.parse({
71
+ inputPath: '/path/to/file',
72
+ schema: 'test',
73
+ table: 'users',
74
+ updateServerSettings: false
75
+ });
76
+ expect(result.updateServerSettings).toBe(false);
77
+ });
78
+
79
+ it('should reject invalid string values', () => {
80
+ expect(() => ShellImportTableInputSchema.parse({
81
+ inputPath: '/path/to/file',
82
+ schema: 'test',
83
+ table: 'users',
84
+ updateServerSettings: 'yes'
85
+ })).toThrow();
86
+ });
87
+ });
88
+
89
+ describe('ShellDumpInstanceInputSchema', () => {
90
+ it('should coerce dryRun string to boolean', () => {
91
+ const result = ShellDumpInstanceInputSchema.parse({
92
+ outputDir: '/backup',
93
+ dryRun: 'true'
94
+ });
95
+ expect(result.dryRun).toBe(true);
96
+ });
97
+
98
+ it('should coerce consistent string to boolean', () => {
99
+ const result = ShellDumpInstanceInputSchema.parse({
100
+ outputDir: '/backup',
101
+ consistent: 'false'
102
+ });
103
+ expect(result.consistent).toBe(false);
104
+ });
105
+
106
+ it('should coerce users string to boolean', () => {
107
+ const result = ShellDumpInstanceInputSchema.parse({
108
+ outputDir: '/backup',
109
+ users: 'true'
110
+ });
111
+ expect(result.users).toBe(true);
112
+ });
113
+ });
114
+
115
+ describe('ShellDumpSchemasInputSchema', () => {
116
+ it('should coerce dryRun string to boolean', () => {
117
+ const result = ShellDumpSchemasInputSchema.parse({
118
+ schemas: ['db1'],
119
+ outputDir: '/backup',
120
+ dryRun: 'true'
121
+ });
122
+ expect(result.dryRun).toBe(true);
123
+ });
124
+
125
+ it('should coerce ddlOnly string to boolean', () => {
126
+ const result = ShellDumpSchemasInputSchema.parse({
127
+ schemas: ['db1'],
128
+ outputDir: '/backup',
129
+ ddlOnly: 'true'
130
+ });
131
+ expect(result.ddlOnly).toBe(true);
132
+ });
133
+ });
134
+
135
+ describe('ShellDumpTablesInputSchema', () => {
136
+ it('should coerce all string to boolean', () => {
137
+ const result = ShellDumpTablesInputSchema.parse({
138
+ schema: 'db1',
139
+ tables: ['t1'],
140
+ outputDir: '/backup',
141
+ all: 'true'
142
+ });
143
+ expect(result.all).toBe(true);
144
+ });
145
+ });
146
+
147
+ describe('ShellLoadDumpInputSchema', () => {
148
+ it('should coerce dryRun string to boolean', () => {
149
+ const result = ShellLoadDumpInputSchema.parse({
150
+ inputDir: '/backup',
151
+ dryRun: 'true'
152
+ });
153
+ expect(result.dryRun).toBe(true);
154
+ });
155
+
156
+ it('should coerce ignoreExistingObjects string to boolean', () => {
157
+ const result = ShellLoadDumpInputSchema.parse({
158
+ inputDir: '/backup',
159
+ ignoreExistingObjects: 'true'
160
+ });
161
+ expect(result.ignoreExistingObjects).toBe(true);
162
+ });
163
+
164
+ it('should coerce ignoreVersion string to boolean', () => {
165
+ const result = ShellLoadDumpInputSchema.parse({
166
+ inputDir: '/backup',
167
+ ignoreVersion: 'true'
168
+ });
169
+ expect(result.ignoreVersion).toBe(true);
170
+ });
171
+
172
+ it('should coerce resetProgress string to boolean', () => {
173
+ const result = ShellLoadDumpInputSchema.parse({
174
+ inputDir: '/backup',
175
+ resetProgress: 'true'
176
+ });
177
+ expect(result.resetProgress).toBe(true);
178
+ });
179
+
180
+ it('should coerce updateServerSettings string to boolean', () => {
181
+ const result = ShellLoadDumpInputSchema.parse({
182
+ inputDir: '/backup',
183
+ updateServerSettings: 'true'
184
+ });
185
+ expect(result.updateServerSettings).toBe(true);
186
+ });
187
+ });
188
+
189
+ describe('ShellImportJSONInputSchema', () => {
190
+ it('should coerce convertBsonTypes string to boolean', () => {
191
+ const result = ShellImportJSONInputSchema.parse({
192
+ inputPath: '/data.json',
193
+ schema: 'test',
194
+ collection: 'docs',
195
+ convertBsonTypes: 'true'
196
+ });
197
+ expect(result.convertBsonTypes).toBe(true);
198
+ });
199
+
200
+ it('should coerce convertBsonTypes string false to boolean', () => {
201
+ const result = ShellImportJSONInputSchema.parse({
202
+ inputPath: '/data.json',
203
+ schema: 'test',
204
+ collection: 'docs',
205
+ convertBsonTypes: 'false'
206
+ });
207
+ expect(result.convertBsonTypes).toBe(false);
208
+ });
209
+ });
210
+ });
@@ -0,0 +1,190 @@
1
+ /**
2
+ * ProxySQL Types and Schemas
3
+ *
4
+ * Type definitions and Zod validation schemas for ProxySQL admin interface tools.
5
+ * ProxySQL uses MySQL-protocol compatible admin interface on port 6032.
6
+ */
7
+
8
+ import { z } from 'zod';
9
+
10
+ // =============================================================================
11
+ // ProxySQL Configuration
12
+ // =============================================================================
13
+
14
+ export const ProxySQLConfigSchema = z.object({
15
+ host: z.string().default('localhost'),
16
+ port: z.number().default(6032),
17
+ user: z.string().default('admin'),
18
+ password: z.string().default('admin')
19
+ });
20
+
21
+ export type ProxySQLConfig = z.infer<typeof ProxySQLConfigSchema>;
22
+
23
+ // =============================================================================
24
+ // Stats Response Types
25
+ // =============================================================================
26
+
27
+ export const ProxySQLServerSchema = z.object({
28
+ hostgroup_id: z.number(),
29
+ hostname: z.string(),
30
+ port: z.number(),
31
+ status: z.string(),
32
+ weight: z.number().optional(),
33
+ compression: z.number().optional(),
34
+ max_connections: z.number().optional(),
35
+ max_replication_lag: z.number().optional(),
36
+ use_ssl: z.number().optional(),
37
+ max_latency_ms: z.number().optional(),
38
+ comment: z.string().optional()
39
+ });
40
+
41
+ export type ProxySQLServer = z.infer<typeof ProxySQLServerSchema>;
42
+
43
+ export const ProxySQLHostgroupSchema = z.object({
44
+ hostgroup_id: z.number(),
45
+ hostname: z.string(),
46
+ port: z.number(),
47
+ status: z.string(),
48
+ ConnUsed: z.number().optional(),
49
+ ConnFree: z.number().optional(),
50
+ ConnOK: z.number().optional(),
51
+ ConnERR: z.number().optional(),
52
+ MaxConnUsed: z.number().optional(),
53
+ Queries: z.number().optional(),
54
+ Bytes_data_sent: z.number().optional(),
55
+ Bytes_data_recv: z.number().optional(),
56
+ Latency_us: z.number().optional()
57
+ });
58
+
59
+ export type ProxySQLHostgroup = z.infer<typeof ProxySQLHostgroupSchema>;
60
+
61
+ export const ProxySQLQueryRuleSchema = z.object({
62
+ rule_id: z.number(),
63
+ active: z.number().optional(),
64
+ username: z.string().optional(),
65
+ schemaname: z.string().optional(),
66
+ match_digest: z.string().optional(),
67
+ match_pattern: z.string().optional(),
68
+ destination_hostgroup: z.number().optional(),
69
+ cache_ttl: z.number().optional(),
70
+ multiplex: z.number().optional(),
71
+ flagOUT: z.number().optional(),
72
+ comment: z.string().optional()
73
+ });
74
+
75
+ export type ProxySQLQueryRule = z.infer<typeof ProxySQLQueryRuleSchema>;
76
+
77
+ export const ProxySQLQueryDigestSchema = z.object({
78
+ hostgroup: z.number(),
79
+ schemaname: z.string(),
80
+ username: z.string(),
81
+ digest: z.string(),
82
+ digest_text: z.string(),
83
+ count_star: z.number(),
84
+ first_seen: z.number().optional(),
85
+ last_seen: z.number().optional(),
86
+ sum_time: z.number().optional(),
87
+ min_time: z.number().optional(),
88
+ max_time: z.number().optional()
89
+ });
90
+
91
+ export type ProxySQLQueryDigest = z.infer<typeof ProxySQLQueryDigestSchema>;
92
+
93
+ export const ProxySQLConnectionPoolSchema = z.object({
94
+ hostgroup: z.number(),
95
+ srv_host: z.string(),
96
+ srv_port: z.number(),
97
+ status: z.string(),
98
+ ConnUsed: z.number(),
99
+ ConnFree: z.number(),
100
+ ConnOK: z.number(),
101
+ ConnERR: z.number(),
102
+ MaxConnUsed: z.number(),
103
+ Queries: z.number(),
104
+ Bytes_data_sent: z.number(),
105
+ Bytes_data_recv: z.number(),
106
+ Latency_us: z.number()
107
+ });
108
+
109
+ export type ProxySQLConnectionPool = z.infer<typeof ProxySQLConnectionPoolSchema>;
110
+
111
+ export const ProxySQLUserSchema = z.object({
112
+ username: z.string(),
113
+ password: z.string().optional(),
114
+ active: z.number().optional(),
115
+ use_ssl: z.number().optional(),
116
+ default_hostgroup: z.number().optional(),
117
+ default_schema: z.string().optional(),
118
+ transaction_persistent: z.number().optional(),
119
+ max_connections: z.number().optional(),
120
+ comment: z.string().optional()
121
+ });
122
+
123
+ export type ProxySQLUser = z.infer<typeof ProxySQLUserSchema>;
124
+
125
+ export const ProxySQLGlobalVariableSchema = z.object({
126
+ variable_name: z.string(),
127
+ variable_value: z.string()
128
+ });
129
+
130
+ export type ProxySQLGlobalVariable = z.infer<typeof ProxySQLGlobalVariableSchema>;
131
+
132
+ export const ProxySQLMemoryStatsSchema = z.object({
133
+ Variable_Name: z.string(),
134
+ Variable_Value: z.string()
135
+ });
136
+
137
+ export type ProxySQLMemoryStats = z.infer<typeof ProxySQLMemoryStatsSchema>;
138
+
139
+ export const ProxySQLProcessSchema = z.object({
140
+ SessionID: z.number().optional(),
141
+ user: z.string().optional(),
142
+ db: z.string().optional(),
143
+ cli_host: z.string().optional(),
144
+ cli_port: z.number().optional(),
145
+ hostgroup: z.number().optional(),
146
+ srv_host: z.string().optional(),
147
+ srv_port: z.number().optional(),
148
+ command: z.string().optional(),
149
+ time_ms: z.number().optional(),
150
+ info: z.string().optional()
151
+ });
152
+
153
+ export type ProxySQLProcess = z.infer<typeof ProxySQLProcessSchema>;
154
+
155
+ // =============================================================================
156
+ // Tool Input Schemas
157
+ // =============================================================================
158
+
159
+ export const ProxySQLBaseInputSchema = z.object({});
160
+
161
+ export const ProxySQLLimitInputSchema = z.object({
162
+ limit: z.number().optional().describe('Maximum number of results to return (default: 100)')
163
+ });
164
+
165
+ export const ProxySQLHostgroupInputSchema = z.object({
166
+ hostgroup_id: z.number().optional().describe('Filter by hostgroup ID')
167
+ });
168
+
169
+ export const ProxySQLVariableFilterSchema = z.object({
170
+ prefix: z.enum(['mysql', 'admin', 'all']).optional().describe('Variable prefix filter: mysql, admin, or all (default: all)')
171
+ });
172
+
173
+ export const ProxySQLCommandInputSchema = z.object({
174
+ command: z.enum([
175
+ 'LOAD MYSQL USERS TO RUNTIME',
176
+ 'SAVE MYSQL USERS TO DISK',
177
+ 'LOAD MYSQL SERVERS TO RUNTIME',
178
+ 'SAVE MYSQL SERVERS TO DISK',
179
+ 'LOAD MYSQL QUERY RULES TO RUNTIME',
180
+ 'SAVE MYSQL QUERY RULES TO DISK',
181
+ 'LOAD MYSQL VARIABLES TO RUNTIME',
182
+ 'SAVE MYSQL VARIABLES TO DISK',
183
+ 'LOAD ADMIN VARIABLES TO RUNTIME',
184
+ 'SAVE ADMIN VARIABLES TO DISK',
185
+ 'PROXYSQL FLUSH QUERY CACHE',
186
+ 'PROXYSQL FLUSH LOGS'
187
+ ]).describe('ProxySQL admin command to execute')
188
+ });
189
+
190
+ export type ProxySQLCommand = z.infer<typeof ProxySQLCommandInputSchema>['command'];
@@ -0,0 +1,129 @@
1
+ /**
2
+ * MySQL Router Types and Schemas
3
+ *
4
+ * Type definitions and Zod validation schemas for MySQL Router REST API tools.
5
+ */
6
+
7
+ import { z } from 'zod';
8
+
9
+ // =============================================================================
10
+ // Router Status Types
11
+ // =============================================================================
12
+
13
+ export const RouterStatusResponseSchema = z.object({
14
+ processId: z.number().optional(),
15
+ productEdition: z.string().optional(),
16
+ timeStarted: z.string().optional(),
17
+ version: z.string().optional(),
18
+ hostname: z.string().optional()
19
+ });
20
+
21
+ export type RouterStatusResponse = z.infer<typeof RouterStatusResponseSchema>;
22
+
23
+ // =============================================================================
24
+ // Route Types
25
+ // =============================================================================
26
+
27
+ export const RouteSchema = z.object({
28
+ name: z.string()
29
+ });
30
+
31
+ export const RouteListSchema = z.object({
32
+ items: z.array(RouteSchema)
33
+ });
34
+
35
+ export type RouteList = z.infer<typeof RouteListSchema>;
36
+
37
+ export const RouteStatusSchema = z.object({
38
+ activeConnections: z.number().optional(),
39
+ totalConnections: z.number().optional(),
40
+ blockedHosts: z.number().optional()
41
+ });
42
+
43
+ export type RouteStatus = z.infer<typeof RouteStatusSchema>;
44
+
45
+ export const RouteHealthSchema = z.object({
46
+ isAlive: z.boolean()
47
+ });
48
+
49
+ export type RouteHealth = z.infer<typeof RouteHealthSchema>;
50
+
51
+ export const RouteConnectionSchema = z.object({
52
+ bytesFromServer: z.number().optional(),
53
+ bytesToServer: z.number().optional(),
54
+ sourceAddress: z.string().optional(),
55
+ destinationAddress: z.string().optional(),
56
+ timeStarted: z.string().optional(),
57
+ timeConnectedToServer: z.string().optional()
58
+ });
59
+
60
+ export const RouteConnectionsListSchema = z.object({
61
+ items: z.array(RouteConnectionSchema)
62
+ });
63
+
64
+ export type RouteConnectionsList = z.infer<typeof RouteConnectionsListSchema>;
65
+
66
+ export const RouteDestinationSchema = z.object({
67
+ address: z.string(),
68
+ port: z.number()
69
+ });
70
+
71
+ export const RouteDestinationsListSchema = z.object({
72
+ items: z.array(RouteDestinationSchema)
73
+ });
74
+
75
+ export type RouteDestinationsList = z.infer<typeof RouteDestinationsListSchema>;
76
+
77
+ export const BlockedHostSchema = z.object({
78
+ hostname: z.string()
79
+ });
80
+
81
+ export const BlockedHostsListSchema = z.object({
82
+ items: z.array(BlockedHostSchema)
83
+ });
84
+
85
+ export type BlockedHostsList = z.infer<typeof BlockedHostsListSchema>;
86
+
87
+ // =============================================================================
88
+ // Metadata Types
89
+ // =============================================================================
90
+
91
+ export const MetadataStatusSchema = z.object({
92
+ refreshFailed: z.number().optional(),
93
+ refreshSucceeded: z.number().optional(),
94
+ lastRefreshHostname: z.string().optional(),
95
+ lastRefreshPort: z.number().optional(),
96
+ timeLastRefreshSucceeded: z.string().optional(),
97
+ timeLastRefreshFailed: z.string().optional()
98
+ });
99
+
100
+ export type MetadataStatus = z.infer<typeof MetadataStatusSchema>;
101
+
102
+ // =============================================================================
103
+ // Connection Pool Types
104
+ // =============================================================================
105
+
106
+ export const ConnectionPoolStatusSchema = z.object({
107
+ reusedConnections: z.number().optional(),
108
+ idleServerConnections: z.number().optional()
109
+ });
110
+
111
+ export type ConnectionPoolStatus = z.infer<typeof ConnectionPoolStatusSchema>;
112
+
113
+ // =============================================================================
114
+ // Tool Input Schemas
115
+ // =============================================================================
116
+
117
+ export const RouterBaseInputSchema = z.object({});
118
+
119
+ export const RouteNameInputSchema = z.object({
120
+ routeName: z.string().describe('Name of the route to query')
121
+ });
122
+
123
+ export const MetadataNameInputSchema = z.object({
124
+ metadataName: z.string().describe('Name of the metadata cache instance')
125
+ });
126
+
127
+ export const ConnectionPoolNameInputSchema = z.object({
128
+ poolName: z.string().describe('Name of the connection pool')
129
+ });
@@ -0,0 +1,140 @@
1
+ /**
2
+ * MySQL Shell Tool Type Definitions
3
+ *
4
+ * Zod schemas for MySQL Shell tool inputs.
5
+ * Tools execute mysqlsh as a subprocess to access util.* functions.
6
+ */
7
+
8
+ import { z } from 'zod';
9
+
10
+ // =============================================================================
11
+ // Helper for boolean coercion (handles string "true"/"false" from MCP clients)
12
+ // =============================================================================
13
+
14
+ const booleanCoerce = z.preprocess(
15
+ (val) => {
16
+ if (typeof val === 'string') {
17
+ if (val.toLowerCase() === 'true') return true;
18
+ if (val.toLowerCase() === 'false') return false;
19
+ }
20
+ return val;
21
+ },
22
+ z.boolean()
23
+ );
24
+
25
+ // =============================================================================
26
+ // Base Schema
27
+ // =============================================================================
28
+
29
+ export const ShellBaseInputSchema = z.object({}).describe('MySQL Shell base input');
30
+
31
+ // =============================================================================
32
+ // Info Tools
33
+ // =============================================================================
34
+
35
+ export const ShellVersionInputSchema = z.object({}).describe('Get MySQL Shell version and status');
36
+
37
+ // =============================================================================
38
+ // Utility Tools
39
+ // =============================================================================
40
+
41
+ export const ShellCheckUpgradeInputSchema = z.object({
42
+ targetVersion: z.string().optional().describe('Target MySQL version to check compatibility for (e.g., "8.0.40", "8.4.0")'),
43
+ outputFormat: z.enum(['TEXT', 'JSON']).optional().default('JSON').describe('Output format')
44
+ }).describe('Check server upgrade compatibility using util.checkForServerUpgrade()');
45
+
46
+ // =============================================================================
47
+ // Data Transfer Tools
48
+ // =============================================================================
49
+
50
+ export const ShellExportTableInputSchema = z.object({
51
+ schema: z.string().describe('Source schema (database) name'),
52
+ table: z.string().describe('Table name to export'),
53
+ outputPath: z.string().describe('Output file path (absolute path recommended)'),
54
+ format: z.enum(['csv', 'tsv', 'json']).optional().default('csv').describe('Export format'),
55
+ where: z.string().optional().describe('WHERE clause for filtering rows (without WHERE keyword)')
56
+ }).describe('Export table to file using util.exportTable()');
57
+
58
+ export const ShellImportTableInputSchema = z.object({
59
+ inputPath: z.string().describe('Input file path (absolute path)'),
60
+ schema: z.string().describe('Target schema (database) name'),
61
+ table: z.string().describe('Target table name'),
62
+ threads: z.number().int().min(1).max(128).optional().default(4).describe('Number of parallel threads'),
63
+ skipRows: z.number().int().min(0).optional().describe('Number of header rows to skip'),
64
+ columns: z.array(z.string()).optional().describe('Column mapping for import'),
65
+ fieldsTerminatedBy: z.string().optional().describe('Field delimiter (default: auto-detect)'),
66
+ linesTerminatedBy: z.string().optional().describe('Line delimiter'),
67
+ updateServerSettings: booleanCoerce.optional().default(false).describe('Automatically enable local_infile on the server if disabled (requires SUPER or SYSTEM_VARIABLES_ADMIN privilege)')
68
+ }).describe('Parallel table import using util.importTable()');
69
+
70
+ export const ShellImportJSONInputSchema = z.object({
71
+ inputPath: z.string().describe('JSON file path (absolute path)'),
72
+ schema: z.string().describe('Target schema (database) name'),
73
+ collection: z.string().describe('Target collection or table name'),
74
+ tableColumn: z.string().optional().describe('Column name for JSON data when importing to table'),
75
+ convertBsonTypes: booleanCoerce.optional().default(false).describe('Convert BSON types from MongoDB exports')
76
+ }).describe('Import JSON documents using util.importJson()');
77
+
78
+ // =============================================================================
79
+ // Backup Tools
80
+ // =============================================================================
81
+
82
+ export const ShellDumpInstanceInputSchema = z.object({
83
+ outputDir: z.string().describe('Output directory for dump (must be empty or non-existent)'),
84
+ threads: z.number().int().min(1).max(128).optional().default(4).describe('Number of parallel threads'),
85
+ compression: z.enum(['none', 'zstd', 'gzip']).optional().default('zstd').describe('Compression method'),
86
+ dryRun: booleanCoerce.optional().default(false).describe('Simulate dump without writing files'),
87
+ includeSchemas: z.array(z.string()).optional().describe('Schemas to include (default: all non-system)'),
88
+ excludeSchemas: z.array(z.string()).optional().describe('Schemas to exclude'),
89
+ consistent: booleanCoerce.optional().default(true).describe('Use consistent snapshot'),
90
+ users: booleanCoerce.optional().default(true).describe('Include user accounts and grants')
91
+ }).describe('Dump entire MySQL instance using util.dumpInstance()');
92
+
93
+ export const ShellDumpSchemasInputSchema = z.object({
94
+ schemas: z.array(z.string()).min(1).describe('Schema names to dump'),
95
+ outputDir: z.string().describe('Output directory for dump'),
96
+ threads: z.number().int().min(1).max(128).optional().default(4).describe('Number of parallel threads'),
97
+ compression: z.enum(['none', 'zstd', 'gzip']).optional().default('zstd').describe('Compression method'),
98
+ dryRun: booleanCoerce.optional().default(false).describe('Simulate dump without writing files'),
99
+ includeTables: z.array(z.string()).optional().describe('Tables to include (schema.table format)'),
100
+ excludeTables: z.array(z.string()).optional().describe('Tables to exclude (schema.table format)'),
101
+ ddlOnly: booleanCoerce.optional().default(false).describe('Dump only DDL (schema structure) without data or metadata requiring extra privileges (events, triggers, routines)')
102
+ }).describe('Dump selected schemas using util.dumpSchemas()');
103
+
104
+ export const ShellDumpTablesInputSchema = z.object({
105
+ schema: z.string().describe('Schema containing tables'),
106
+ tables: z.array(z.string()).min(1).describe('Table names to dump'),
107
+ outputDir: z.string().describe('Output directory for dump'),
108
+ threads: z.number().int().min(1).max(128).optional().default(4).describe('Number of parallel threads'),
109
+ compression: z.enum(['none', 'zstd', 'gzip']).optional().default('zstd').describe('Compression method'),
110
+ where: z.record(z.string(), z.string()).optional().describe('WHERE clauses per table ({tableName: "condition"})'),
111
+ all: booleanCoerce.optional().default(false).describe('Dump all metadata for tables (triggers, etc.). Set to false if lacking privileges.')
112
+ }).describe('Dump specific tables using util.dumpTables()');
113
+
114
+ // =============================================================================
115
+ // Restore Tools
116
+ // =============================================================================
117
+
118
+ export const ShellLoadDumpInputSchema = z.object({
119
+ inputDir: z.string().describe('Directory containing MySQL Shell dump'),
120
+ threads: z.number().int().min(1).max(128).optional().default(4).describe('Number of parallel threads'),
121
+ dryRun: booleanCoerce.optional().default(false).describe('Simulate load without executing'),
122
+ includeSchemas: z.array(z.string()).optional().describe('Schemas to include'),
123
+ excludeSchemas: z.array(z.string()).optional().describe('Schemas to exclude'),
124
+ includeTables: z.array(z.string()).optional().describe('Tables to include (schema.table format)'),
125
+ excludeTables: z.array(z.string()).optional().describe('Tables to exclude'),
126
+ ignoreExistingObjects: booleanCoerce.optional().default(false).describe('Ignore existing objects instead of failing'),
127
+ ignoreVersion: booleanCoerce.optional().default(false).describe('Ignore version mismatch between dump and server'),
128
+ resetProgress: booleanCoerce.optional().default(false).describe('Reset progress tracking and reload from start'),
129
+ updateServerSettings: booleanCoerce.optional().default(false).describe('Automatically enable local_infile on the server if disabled (requires SUPER or SYSTEM_VARIABLES_ADMIN privilege)')
130
+ }).describe('Load dump to instance using util.loadDump()');
131
+
132
+ // =============================================================================
133
+ // Scripting Tools
134
+ // =============================================================================
135
+
136
+ export const ShellRunScriptInputSchema = z.object({
137
+ script: z.string().min(1).describe('Script content to execute'),
138
+ language: z.enum(['js', 'py', 'sql']).describe('Script language (JavaScript, Python, or SQL)'),
139
+ timeout: z.number().int().min(1000).max(3600000).optional().default(60000).describe('Timeout in milliseconds (default: 60 seconds)')
140
+ }).describe('Execute JavaScript, Python, or SQL script via MySQL Shell');