@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,260 @@
1
+ import { ValidationError } from '../../types/index.js';
2
+ /**
3
+ * Default cache TTL in milliseconds (configurable via METADATA_CACHE_TTL_MS env var)
4
+ */
5
+ const DEFAULT_CACHE_TTL_MS = parseInt(process.env['METADATA_CACHE_TTL_MS'] ?? '30000', 10);
6
+ export class SchemaManager {
7
+ executor;
8
+ metadataCache = new Map();
9
+ cacheTtlMs = DEFAULT_CACHE_TTL_MS;
10
+ constructor(executor) {
11
+ this.executor = executor;
12
+ }
13
+ /**
14
+ * Get cached value if not expired
15
+ */
16
+ getCached(key) {
17
+ const entry = this.metadataCache.get(key);
18
+ if (!entry)
19
+ return undefined;
20
+ if (Date.now() - entry.timestamp > this.cacheTtlMs) {
21
+ this.metadataCache.delete(key);
22
+ return undefined;
23
+ }
24
+ return entry.data;
25
+ }
26
+ /**
27
+ * Set cache value
28
+ */
29
+ setCache(key, data) {
30
+ this.metadataCache.set(key, { data, timestamp: Date.now() });
31
+ }
32
+ /**
33
+ * Clear all cached metadata (useful after schema changes)
34
+ */
35
+ clearCache() {
36
+ this.metadataCache.clear();
37
+ }
38
+ async getSchema() {
39
+ const tables = await this.listTables();
40
+ const views = tables.filter(t => t.type === 'view');
41
+ const realTables = tables.filter(t => t.type === 'table');
42
+ // Performance optimization: fetch all indexes in a single query instead of N+1
43
+ const indexes = await this.getAllIndexes();
44
+ return {
45
+ tables: realTables,
46
+ views,
47
+ indexes
48
+ };
49
+ }
50
+ /**
51
+ * Get all indexes across all tables in a single query
52
+ * Performance optimization: eliminates N+1 query pattern
53
+ */
54
+ async getAllIndexes() {
55
+ // Check cache first
56
+ const cached = this.getCached('all_indexes');
57
+ if (cached)
58
+ return cached;
59
+ const result = await this.executor.executeQuery(`
60
+ SELECT
61
+ s.TABLE_NAME as tableName,
62
+ s.INDEX_NAME as name,
63
+ s.NON_UNIQUE as nonUnique,
64
+ s.COLUMN_NAME as columnName,
65
+ s.INDEX_TYPE as type,
66
+ s.CARDINALITY as cardinality
67
+ FROM information_schema.STATISTICS s
68
+ INNER JOIN information_schema.TABLES t
69
+ ON s.TABLE_SCHEMA = t.TABLE_SCHEMA AND s.TABLE_NAME = t.TABLE_NAME
70
+ WHERE s.TABLE_SCHEMA = DATABASE()
71
+ AND t.TABLE_TYPE = 'BASE TABLE'
72
+ ORDER BY s.TABLE_NAME, s.INDEX_NAME, s.SEQ_IN_INDEX
73
+ `);
74
+ // Group columns by table+index name
75
+ const indexMap = new Map();
76
+ for (const row of result.rows ?? []) {
77
+ const tableName = row['tableName'];
78
+ const indexName = row['name'];
79
+ const mapKey = `${tableName}.${indexName}`;
80
+ const existing = indexMap.get(mapKey);
81
+ if (existing) {
82
+ existing.columns.push(row['columnName']);
83
+ }
84
+ else {
85
+ indexMap.set(mapKey, {
86
+ name: indexName,
87
+ tableName,
88
+ columns: [row['columnName']],
89
+ unique: row['nonUnique'] === 0,
90
+ type: row['type'],
91
+ cardinality: row['cardinality']
92
+ });
93
+ }
94
+ }
95
+ const indexes = Array.from(indexMap.values());
96
+ this.setCache('all_indexes', indexes);
97
+ return indexes;
98
+ }
99
+ async listTables(databaseName) {
100
+ const schemaClause = databaseName ? 'TABLE_SCHEMA = ?' : 'TABLE_SCHEMA = DATABASE()';
101
+ const params = databaseName ? [databaseName] : [];
102
+ const result = await this.executor.executeQuery(`
103
+ SELECT
104
+ TABLE_NAME as name,
105
+ TABLE_TYPE as type,
106
+ ENGINE as engine,
107
+ TABLE_ROWS as rowCount,
108
+ DATA_LENGTH as dataLength,
109
+ INDEX_LENGTH as indexLength,
110
+ CREATE_TIME as createTime,
111
+ UPDATE_TIME as updateTime,
112
+ TABLE_COLLATION as collation,
113
+ TABLE_COMMENT as comment
114
+ FROM information_schema.TABLES
115
+ WHERE ${schemaClause}
116
+ ORDER BY TABLE_NAME
117
+ `, params);
118
+ return (result.rows ?? []).map(row => ({
119
+ name: row['name'],
120
+ type: row['type'] === 'VIEW' ? 'view' : 'table',
121
+ engine: row['engine'],
122
+ rowCount: row['rowCount'],
123
+ dataLength: row['dataLength'],
124
+ indexLength: row['indexLength'],
125
+ createTime: row['createTime'],
126
+ updateTime: row['updateTime'],
127
+ collation: row['collation'],
128
+ comment: row['comment']
129
+ }));
130
+ }
131
+ async describeTable(tableName) {
132
+ // Validate table name (allow schema.table format)
133
+ if (!/^[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)?$/.test(tableName)) {
134
+ throw new ValidationError('Invalid table name');
135
+ }
136
+ const [part1, part2] = tableName.split('.');
137
+ let schemaName;
138
+ let shortTableName;
139
+ if (part2) {
140
+ schemaName = part1;
141
+ shortTableName = part2;
142
+ }
143
+ else {
144
+ shortTableName = tableName;
145
+ }
146
+ const schemaClause = schemaName ? 'TABLE_SCHEMA = ?' : 'TABLE_SCHEMA = DATABASE()';
147
+ const params = schemaName ? [schemaName, shortTableName] : [shortTableName];
148
+ // Get column information
149
+ const columnsResult = await this.executor.executeQuery(`
150
+ SELECT
151
+ COLUMN_NAME as name,
152
+ DATA_TYPE as type,
153
+ IS_NULLABLE as nullable,
154
+ COLUMN_KEY as columnKey,
155
+ COLUMN_DEFAULT as defaultValue,
156
+ EXTRA as extra,
157
+ CHARACTER_SET_NAME as characterSet,
158
+ COLLATION_NAME as collation,
159
+ COLUMN_COMMENT as comment
160
+ FROM information_schema.COLUMNS
161
+ WHERE ${schemaClause}
162
+ AND TABLE_NAME = ?
163
+ ORDER BY ORDINAL_POSITION
164
+ `, params);
165
+ const columns = (columnsResult.rows ?? []).map(row => ({
166
+ name: row['name'],
167
+ type: row['type'],
168
+ nullable: row['nullable'] === 'YES',
169
+ primaryKey: row['columnKey'] === 'PRI',
170
+ defaultValue: row['defaultValue'],
171
+ autoIncrement: row['extra']?.includes('auto_increment'),
172
+ characterSet: row['characterSet'],
173
+ collation: row['collation'],
174
+ comment: row['comment']
175
+ }));
176
+ // Get table info
177
+ const tableResult = await this.executor.executeQuery(`
178
+ SELECT
179
+ TABLE_TYPE as type,
180
+ ENGINE as engine,
181
+ TABLE_ROWS as rowCount,
182
+ TABLE_COLLATION as collation,
183
+ TABLE_COMMENT as comment
184
+ FROM information_schema.TABLES
185
+ WHERE ${schemaClause}
186
+ AND TABLE_NAME = ?
187
+ `, params);
188
+ const tableRow = tableResult.rows?.[0];
189
+ return {
190
+ name: tableName,
191
+ type: tableRow?.['type'] === 'VIEW' ? 'view' : 'table',
192
+ engine: tableRow?.['engine'],
193
+ rowCount: tableRow?.['rowCount'],
194
+ collation: tableRow?.['collation'],
195
+ comment: tableRow?.['comment'],
196
+ columns
197
+ };
198
+ }
199
+ async listSchemas() {
200
+ const result = await this.executor.executeQuery(`SHOW DATABASES`);
201
+ return (result.rows ?? []).map(row => {
202
+ const values = Object.values(row);
203
+ return values[0];
204
+ });
205
+ }
206
+ /**
207
+ * Get indexes for a table
208
+ */
209
+ async getTableIndexes(tableName) {
210
+ // Validate table name (allow schema.table format)
211
+ if (!/^[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)?$/.test(tableName)) {
212
+ throw new ValidationError('Invalid table name');
213
+ }
214
+ const [part1, part2] = tableName.split('.');
215
+ let schemaName;
216
+ let shortTableName;
217
+ if (part2) {
218
+ schemaName = part1;
219
+ shortTableName = part2;
220
+ }
221
+ else {
222
+ shortTableName = tableName;
223
+ }
224
+ const schemaClause = schemaName ? 'TABLE_SCHEMA = ?' : 'TABLE_SCHEMA = DATABASE()';
225
+ const params = schemaName ? [schemaName, shortTableName] : [shortTableName];
226
+ const result = await this.executor.executeQuery(`
227
+ SELECT
228
+ INDEX_NAME as name,
229
+ NON_UNIQUE as nonUnique,
230
+ COLUMN_NAME as columnName,
231
+ INDEX_TYPE as type,
232
+ CARDINALITY as cardinality
233
+ FROM information_schema.STATISTICS
234
+ WHERE ${schemaClause}
235
+ AND TABLE_NAME = ?
236
+ ORDER BY INDEX_NAME, SEQ_IN_INDEX
237
+ `, params);
238
+ // Group columns by index name
239
+ const indexMap = new Map();
240
+ for (const row of result.rows ?? []) {
241
+ const name = row['name'];
242
+ const existing = indexMap.get(name);
243
+ if (existing) {
244
+ existing.columns.push(row['columnName']);
245
+ }
246
+ else {
247
+ indexMap.set(name, {
248
+ name,
249
+ tableName,
250
+ columns: [row['columnName']],
251
+ unique: row['nonUnique'] === 0,
252
+ type: row['type'],
253
+ cardinality: row['cardinality']
254
+ });
255
+ }
256
+ }
257
+ return Array.from(indexMap.values());
258
+ }
259
+ }
260
+ //# sourceMappingURL=SchemaManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaManager.js","sourceRoot":"","sources":["../../../src/adapters/mysql/SchemaManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * MySQL Adapter - Module Index
3
+ */
4
+ export { MySQLAdapter } from './MySQLAdapter.js';
5
+ export * from './types.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mysql/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MySQL Adapter - Module Index
3
+ */
4
+ export { MySQLAdapter } from './MySQLAdapter.js';
5
+ // Re-export types
6
+ export * from './types.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/mysql/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,kBAAkB;AAClB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MySQL Prompt - Backup Strategy
3
+ *
4
+ * Enterprise backup planning with RTO/RPO considerations.
5
+ */
6
+ import type { PromptDefinition } from '../../../types/index.js';
7
+ export declare function createBackupStrategyPrompt(): PromptDefinition;
8
+ //# sourceMappingURL=backupStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backupStrategy.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/backupStrategy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,0BAA0B,IAAI,gBAAgB,CAyE7D"}
@@ -0,0 +1,74 @@
1
+ export function createBackupStrategyPrompt() {
2
+ return {
3
+ name: 'mysql_backup_strategy',
4
+ description: 'Design enterprise backup strategy with RTO/RPO planning',
5
+ arguments: [
6
+ { name: 'rpo', description: 'Recovery Point Objective (e.g., "1 hour", "15 minutes")', required: false },
7
+ { name: 'rto', description: 'Recovery Time Objective (e.g., "4 hours", "30 minutes")', required: false },
8
+ { name: 'data_size', description: 'Approximate database size (e.g., "100GB", "2TB")', required: false }
9
+ ],
10
+ handler: (args, _context) => {
11
+ const rpo = args['rpo'] ?? 'to be determined';
12
+ const rto = args['rto'] ?? 'to be determined';
13
+ const dataSize = args['data_size'] ?? 'unknown';
14
+ return Promise.resolve(`# MySQL Backup Strategy Planning
15
+
16
+ Design a comprehensive backup strategy for this MySQL database.
17
+
18
+ **Requirements:**
19
+ - **RPO (Recovery Point Objective):** ${rpo}
20
+ - **RTO (Recovery Time Objective):** ${rto}
21
+ - **Database Size:** ${dataSize}
22
+
23
+ ## Step 1: Assess Current State
24
+ - Check current binary log configuration (\`mysql://replication\`)
25
+ - Review storage engine (InnoDB recommended for consistent backups)
26
+ - Identify critical tables/databases
27
+
28
+ ## Step 2: Choose Backup Method
29
+
30
+ ### Option A: mysqldump (Logical Backup)
31
+ - **Pros:** Portable, human-readable, works with any storage engine
32
+ - **Cons:** Slower for large databases, locks required for consistency
33
+ - Use: \`mysql_create_dump\` tool
34
+ - Best for: < 100GB, development, cross-version migration
35
+
36
+ ### Option B: MySQL Shell Dump (Parallel Logical Backup)
37
+ - **Pros:** 10-20x faster than mysqldump, parallel execution
38
+ - **Cons:** Requires MySQL Shell 8.0+
39
+ - Use: \`mysqlsh_dump_instance\`, \`mysqlsh_dump_schemas\`
40
+ - Best for: 100GB - 2TB, faster recovery needed
41
+
42
+ ### Option C: Physical Backup (Percona XtraBackup)
43
+ - **Pros:** Hot backup, minimal locking, fast for large databases
44
+ - **Cons:** Same MySQL version required for restore
45
+ - Best for: > 500GB, production systems
46
+
47
+ ## Step 3: Configure Point-in-Time Recovery
48
+ 1. Enable binary logging:
49
+ - log_bin = mysql-bin
50
+ - expire_logs_days = 7 (or binlog_expire_logs_seconds)
51
+ - sync_binlog = 1 (for durability)
52
+
53
+ 2. Schedule full backups:
54
+ - Daily for most workloads
55
+ - Weekly for stable, low-change databases
56
+
57
+ 3. Continuously archive binary logs to separate storage
58
+
59
+ ## Step 4: Test Recovery
60
+ 1. Regularly test full restore to a different server
61
+ 2. Test point-in-time recovery procedure
62
+ 3. Document and automate recovery steps
63
+
64
+ ## Step 5: Create Backup Schedule
65
+ Based on your RPO of ${rpo}:
66
+ - Calculate backup frequency needed
67
+ - Plan retention policy
68
+ - Set up monitoring and alerting
69
+
70
+ Please provide your RPO/RTO requirements if not specified, and I'll create a tailored backup plan.`);
71
+ }
72
+ };
73
+ }
74
+ //# sourceMappingURL=backupStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backupStrategy.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/backupStrategy.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,0BAA0B;IACtC,OAAO;QACH,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,yDAAyD;QACtE,SAAS,EAAE;YACP,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,yDAAyD,EAAE,QAAQ,EAAE,KAAK,EAAE;YACxG,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,yDAAyD,EAAE,QAAQ,EAAE,KAAK,EAAE;YACxG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,kDAAkD,EAAE,QAAQ,EAAE,KAAK,EAAE;SAC1G;QACD,OAAO,EAAE,CAAC,IAA4B,EAAE,QAAwB,EAAE,EAAE;YAChE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;YAEhD,OAAO,OAAO,CAAC,OAAO,CAAC;;;;;wCAKK,GAAG;uCACJ,GAAG;uBACnB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA4CR,GAAG;;;;;mGAKyE,CAAC,CAAC;QAC7F,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MySQL Prompt - InnoDB Cluster Setup
3
+ *
4
+ * Complete InnoDB Cluster and Group Replication setup guide.
5
+ */
6
+ import type { PromptDefinition } from '../../../types/index.js';
7
+ export declare function createSetupClusterPrompt(): PromptDefinition;
8
+ //# sourceMappingURL=clusterSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clusterSetup.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/clusterSetup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,wBAAwB,IAAI,gBAAgB,CA8G3D"}
@@ -0,0 +1,112 @@
1
+ export function createSetupClusterPrompt() {
2
+ return {
3
+ name: 'mysql_setup_cluster',
4
+ description: 'Complete MySQL InnoDB Cluster and Group Replication setup guide',
5
+ arguments: [],
6
+ handler: (_args, _context) => {
7
+ return Promise.resolve(`# MySQL InnoDB Cluster Setup Guide
8
+
9
+ InnoDB Cluster provides a complete high availability solution using Group Replication, MySQL Shell, and MySQL Router.
10
+
11
+ ## Prerequisites
12
+
13
+ 1. **MySQL 8.0+** (required for InnoDB Cluster)
14
+ 2. **MySQL Shell** installed
15
+ 3. **At least 3 servers** for fault tolerance
16
+ 4. **Network connectivity** between all nodes
17
+
18
+ ## Architecture
19
+
20
+ \`\`\`
21
+ ┌─────────────────┐
22
+ │ MySQL Router │ ← Applications connect here
23
+ └────────┬────────┘
24
+
25
+ ┌────────┴────────┐
26
+ │ InnoDB Cluster │
27
+ ├─────────────────┤
28
+ │ Primary (R/W) │
29
+ │ Secondary (R/O) │
30
+ │ Secondary (R/O) │
31
+ └─────────────────┘
32
+ \`\`\`
33
+
34
+ ## Step 1: Configure Instances
35
+
36
+ On each MySQL server, add to my.cnf:
37
+ \`\`\`ini
38
+ [mysqld]
39
+ server_id = 1 # Unique per server
40
+ gtid_mode = ON
41
+ enforce_gtid_consistency = ON
42
+ binlog_checksum = NONE
43
+ \`\`\`
44
+
45
+ ## Step 2: Create Cluster (MySQL Shell)
46
+
47
+ \`\`\`javascript
48
+ // Connect to primary
49
+ \\connect admin@primary-host:3306
50
+
51
+ // Configure instance
52
+ dba.configureInstance('admin@primary-host:3306');
53
+
54
+ // Create cluster
55
+ var cluster = dba.createCluster('myCluster');
56
+
57
+ // Add instances
58
+ cluster.addInstance('admin@secondary1:3306');
59
+ cluster.addInstance('admin@secondary2:3306');
60
+ \`\`\`
61
+
62
+ ## Step 3: Check Cluster Status
63
+
64
+ \`\`\`javascript
65
+ cluster.status()
66
+ \`\`\`
67
+
68
+ ## Step 4: Bootstrap Router
69
+
70
+ \`\`\`bash
71
+ mysqlrouter --bootstrap admin@primary-host:3306 --user=mysqlrouter
72
+ \`\`\`
73
+
74
+ ## Available MCP Tools
75
+
76
+ | Tool | Description |
77
+ |------|-------------|
78
+ | \`mysql_gr_status\` | Group Replication status |
79
+ | \`mysql_gr_members\` | List group members |
80
+ | \`mysql_gr_primary\` | Identify current primary |
81
+ | \`mysql_gr_transactions\` | Pending/applied transactions |
82
+ | \`mysql_gr_flow_control\` | Flow control stats |
83
+ | \`mysql_cluster_status\` | InnoDB Cluster status |
84
+ | \`mysql_cluster_instances\` | List cluster instances |
85
+ | \`mysql_cluster_topology\` | Cluster topology |
86
+ | \`mysql_cluster_router_status\` | Router integration |
87
+ | \`mysql_cluster_switchover\` | Switchover recommendation |
88
+
89
+ ## Failover Handling
90
+
91
+ Automatic failover happens when:
92
+ 1. Primary becomes unreachable
93
+ 2. Majority of nodes agree (quorum)
94
+ 3. New primary is elected
95
+
96
+ Manual failover:
97
+ \`\`\`javascript
98
+ cluster.setPrimaryInstance('admin@new-primary:3306')
99
+ \`\`\`
100
+
101
+ ## Best Practices
102
+
103
+ 1. **Use odd number of nodes** (3, 5, 7) for quorum
104
+ 2. **Deploy Router on app servers** for low latency
105
+ 3. **Monitor replication lag** with flow control
106
+ 4. **Test failover regularly** in staging
107
+
108
+ Start by checking cluster status with \`mysql_cluster_status\`.`);
109
+ }
110
+ };
111
+ }
112
+ //# sourceMappingURL=clusterSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clusterSetup.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/clusterSetup.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,wBAAwB;IACpC,OAAO;QACH,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,iEAAiE;QAC9E,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,CAAC,KAA6B,EAAE,QAAwB,EAAE,EAAE;YACjE,OAAO,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gEAqG6B,CAAC,CAAC;QAC1D,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MySQL Prompt - Document Store Setup
3
+ *
4
+ * Complete Document Store / X DevAPI setup guide.
5
+ */
6
+ import type { PromptDefinition } from '../../../types/index.js';
7
+ export declare function createSetupDocstorePrompt(): PromptDefinition;
8
+ //# sourceMappingURL=docstoreSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docstoreSetup.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/docstoreSetup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,yBAAyB,IAAI,gBAAgB,CAmH5D"}
@@ -0,0 +1,117 @@
1
+ export function createSetupDocstorePrompt() {
2
+ return {
3
+ name: 'mysql_setup_docstore',
4
+ description: 'Complete MySQL Document Store and X DevAPI setup guide',
5
+ arguments: [],
6
+ handler: (_args, _context) => {
7
+ return Promise.resolve(`# MySQL Document Store Setup Guide
8
+
9
+ MySQL Document Store allows you to store and query JSON documents using collections, similar to NoSQL databases.
10
+
11
+ ## Prerequisites
12
+
13
+ 1. **MySQL 8.0+** (full Document Store support)
14
+ 2. **X Plugin enabled** (default in 8.0)
15
+ 3. **MySQL Shell** for X DevAPI access
16
+ 4. **Port 33060** open (X Protocol)
17
+
18
+ ## Step 1: Verify X Plugin
19
+
20
+ \`\`\`sql
21
+ SHOW PLUGINS WHERE Name = 'mysqlx';
22
+ -- Should show: mysqlx | ACTIVE
23
+ \`\`\`
24
+
25
+ If not enabled:
26
+ \`\`\`sql
27
+ INSTALL PLUGIN mysqlx SONAME 'mysqlx.so';
28
+ \`\`\`
29
+
30
+ ## Step 2: Create a Collection (MySQL Shell)
31
+
32
+ \`\`\`javascript
33
+ // Connect using X Protocol
34
+ \\connect mysqlx://user@localhost:33060/mydb
35
+
36
+ // Create collection
37
+ db.createCollection('users')
38
+
39
+ // Add documents
40
+ db.users.add({
41
+ "_id": "user001",
42
+ "name": "John Doe",
43
+ "email": "john@example.com",
44
+ "tags": ["admin", "active"]
45
+ })
46
+ \`\`\`
47
+
48
+ ## Step 3: Query Documents
49
+
50
+ \`\`\`javascript
51
+ // Find all
52
+ db.users.find()
53
+
54
+ // Find with filter
55
+ db.users.find("name = 'John Doe'")
56
+
57
+ // Find with JSON path
58
+ db.users.find("'admin' IN tags")
59
+ \`\`\`
60
+
61
+ ## SQL Access to Collections
62
+
63
+ Collections are regular tables with a JSON column:
64
+ \`\`\`sql
65
+ -- View collection data
66
+ SELECT * FROM mydb.users;
67
+
68
+ -- Query with JSON functions
69
+ SELECT doc->>'$.name' AS name
70
+ FROM mydb.users
71
+ WHERE JSON_CONTAINS(doc->'$.tags', '"admin"');
72
+ \`\`\`
73
+
74
+ ## Available MCP Tools
75
+
76
+ | Tool | Description |
77
+ |------|-------------|
78
+ | \`mysql_doc_list_collections\` | List collections |
79
+ | \`mysql_doc_create_collection\` | Create collection |
80
+ | \`mysql_doc_drop_collection\` | Drop collection |
81
+ | \`mysql_doc_find\` | Query documents |
82
+ | \`mysql_doc_add\` | Add documents |
83
+ | \`mysql_doc_modify\` | Update documents |
84
+ | \`mysql_doc_remove\` | Delete documents |
85
+ | \`mysql_doc_create_index\` | Create index |
86
+ | \`mysql_doc_collection_info\` | Collection stats |
87
+
88
+ ## Creating Indexes
89
+
90
+ \`\`\`javascript
91
+ // Index on document field
92
+ db.users.createIndex("email_idx", {
93
+ fields: [{
94
+ field: "$.email",
95
+ type: "TEXT(100)"
96
+ }]
97
+ })
98
+ \`\`\`
99
+
100
+ ## Best Practices
101
+
102
+ 1. **Use _id field** for document identification
103
+ 2. **Create indexes** on frequently queried fields
104
+ 3. **Use JSON schema validation** for data integrity
105
+ 4. **Consider hybrid approach** - mix relational and document data
106
+
107
+ ## Common Issues
108
+
109
+ 1. **Port 33060 blocked**: Open firewall for X Protocol
110
+ 2. **Connection refused**: Verify mysqlx plugin is running
111
+ 3. **Schema not found**: Create database first
112
+
113
+ Start by listing collections with \`mysql_doc_list_collections\`.`);
114
+ }
115
+ };
116
+ }
117
+ //# sourceMappingURL=docstoreSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docstoreSetup.js","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/docstoreSetup.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,yBAAyB;IACrC,OAAO;QACH,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,CAAC,KAA6B,EAAE,QAAwB,EAAE,EAAE;YACjE,OAAO,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEA0G+B,CAAC,CAAC;QAC5D,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MySQL Prompt - Event Scheduler Setup
3
+ *
4
+ * Complete Event Scheduler configuration guide.
5
+ */
6
+ import type { PromptDefinition } from '../../../types/index.js';
7
+ export declare function createSetupEventsPrompt(): PromptDefinition;
8
+ //# sourceMappingURL=eventScheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventScheduler.d.ts","sourceRoot":"","sources":["../../../../src/adapters/mysql/prompts/eventScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAkB,MAAM,yBAAyB,CAAC;AAEhF,wBAAgB,uBAAuB,IAAI,gBAAgB,CA+F1D"}