@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
package/CHANGELOG.md ADDED
@@ -0,0 +1,481 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [2.0.0] - 2025-12-16
9
+
10
+ ### Major Release Highlights
11
+
12
+ **mysql-mcp v2.0.0** represents a transformative update with **85 new tools** (106 → 191 tools), comprehensive security enhancements, HTTP/SSE streaming transport, and extensive refactoring for production-grade stability.
13
+
14
+ > **New:** Simplified tool filtering syntax is now supported! Use `"+starter"` or `"starter"` (whitelist mode) to automatically disable all other tools and enable only what you need. Default toolset is now `starter` (38 tools) if no filter is provided.
15
+
16
+ ## [Unreleased]
17
+
18
+ ## [2.1.0] - 2026-01-03
19
+
20
+ ### Fixed
21
+ - **Document Store Filter Tools** — Fixed `mysql_doc_modify` and `mysql_doc_remove` failing with "Invalid JSON path expression" error. These tools previously only supported JSON path existence checks but users expected value-based filtering. Added `parseDocFilter()` function supporting three filter formats:
22
+ - **By _id**: Direct 32-char hex string (e.g., `bbc83181703d43e68ffad119c4bbbfde`)
23
+ - **By field=value**: Simple equality (e.g., `name=Alice`, `age=30`)
24
+ - **By JSON path existence**: Path starting with `$` (e.g., `$.address`)
25
+ - Now uses parameterized queries for SQL injection protection.
26
+ - **Group Replication Tools MySQL 8.0 Compatibility** — Fixed `mysql_gr_members` and `mysql_gr_transactions` failing with "Unknown column" errors on MySQL 8.0.44. Removed non-existent columns `COUNT_TRANSACTIONS_VALIDATING` and `COUNT_TRANSACTIONS_CERTIFIED` from queries. These columns don't exist in MySQL 8.0's `performance_schema.replication_group_member_stats` table. Tools now use only the available columns documented in MySQL 8.0 (kept `COUNT_TRANSACTIONS_ROWS_VALIDATING` which does exist).
27
+ - **InnoDB Cluster Status Tool** — Fixed `mysql_cluster_status` failing with "Unable to query cluster metadata" due to hardcoded column names (`default_replicaset`) that don't exist in all InnoDB Cluster metadata schema versions. Changed to `SELECT *` for compatibility across MySQL versions. Also added error details to response for easier debugging.
28
+ - **Spatial Coordinate Order (Final Fix)** — Fixed `mysql_spatial_point`, `mysql_spatial_distance`, and `mysql_spatial_distance_sphere` to correctly accept longitude-latitude parameter order by using MySQL's `axis-order=long-lat` option. Previous fix in v2.0.0 swapped the coordinates internally but this was confusing since parameter names didn't match their usage. Now tools accept natural `{ longitude: -122.4194, latitude: 37.7749 }` order and MySQL handles the EPSG 4326 axis order conversion automatically. This resolves the long-standing coordinate confusion issue.
29
+ - **Router TLS with Node.js fetch** — Fixed `mysql_router_*` tools failing with "fetch failed" when `MYSQL_ROUTER_INSECURE=true`. Node.js native `fetch()` uses undici which doesn't support `https.Agent` for TLS options. Replaced with native `https.request()` module for proper self-signed certificate handling.
30
+ - **Partitioning Tools** — Fixed `mysql_reorganize_partition` to support both RANGE and LIST partition types (previously hardcoded to RANGE only). Added required `partitionType` parameter to schema.
31
+ - **MySQL Shell Tools Error Handling** — Improved error detection in `execShellJS()` to properly catch errors from stderr (e.g., `local_infile disabled`, privilege errors, fatal dump errors) instead of silently returning raw output.
32
+ - **MySQL Shell Export Table** — Removed unsupported `columns` option from `mysqlsh_export_table` (not supported by `util.exportTable()` in MySQL Shell 9.x).
33
+
34
+ ### Removed
35
+ - **Jupyter Quickstart Notebook** — Removed `examples/notebooks/quickstart.ipynb` and the `examples/` directory. The notebook had kernel instability issues on Windows (ZMQ socket errors causing kernel restarts during MCP subprocess communication). Usage instructions are now provided to AI agents automatically via the MCP protocol's `instructions` capability.
36
+
37
+ ### Changed
38
+ - **Server Instructions** — Added document store filter syntax documentation with examples for `mysql_doc_modify` and `mysql_doc_remove`. Added spatial tools section documenting coordinate order behavior and MySQL 8.0+ EPSG standard handling with `axis-order=long-lat` option.
39
+
40
+ ### Added
41
+ - **`mysqlsh_import_table` / `mysqlsh_load_dump` — `updateServerSettings` parameter** — New boolean option to automatically enable `local_infile` on the server before import/load operations. Requires SUPER or SYSTEM_VARIABLES_ADMIN privilege.
42
+ - **`mysqlsh_dump_schemas` — `ddlOnly` parameter** — New boolean option to dump only DDL (schema structure) without events, triggers, or routines. Useful when the user lacks EVENT or TRIGGER privileges.
43
+ - **`mysqlsh_dump_tables` — `all` parameter** — New boolean option (default: false) to control whether triggers are included in the dump. Set to `false` to skip triggers when lacking TRIGGER privilege.
44
+
45
+ ### Changed
46
+ - **Partitioning Schema Descriptions** — Improved `value` parameter descriptions in `AddPartitionSchema` and `ReorganizePartitionSchema` to clarify that only boundary values should be provided (e.g., `"2024"`), not full SQL clauses (e.g., `"LESS THAN (2024)"`).
47
+ - **Server Instructions** — Added partitioning tools section with usage guidance and examples to prevent common parameter format errors.
48
+
49
+ ### Added
50
+ - **Server Instructions** — Usage instructions are now automatically provided to AI agents via the MCP protocol's `instructions` capability during server initialization. See [`src/constants/ServerInstructions.ts`](src/constants/ServerInstructions.ts).
51
+
52
+ ### Testing
53
+ - **Branch Coverage Improvements** — Added 112 new tests targeting uncovered branches across multiple modules:
54
+ - **CLI** — Tests for `canSkipMySQLConnection()` covering router-only, proxysql-only, shell-only, ecosystem shortcut, shortcuts requiring MySQL, exclusion-only filters, and placeholder adapter registration
55
+ - **Shell Types** — 100% branch coverage for `booleanCoerce` preprocessor across all shell input schemas
56
+ - **Data Transfer** — Tests for `updateServerSettings`, `local_infile` error handling, X Protocol access denied, and JSON parsing edge cases
57
+ - **Backup Tools** — Tests for `ddlOnly` mode, privilege errors (EVENT, TRIGGER), and Fatal dump error handling
58
+ - **Restore Tools** — Tests for `updateServerSettings` and `local_infile` error branches
59
+ - **JSON Enhanced** — Tests for merge with object results, diff key parsing, where clauses, type mappings (DOUBLE, BOOLEAN, UNKNOWN), and cardinality filtering
60
+ - **InnoDB Cluster** — New test file covering fallback to GR status, error handling, and router metadata failures
61
+ - **Overall Coverage** — Branch coverage improved from ~83% to ~86%, with 1590 tests passing across 101 test files
62
+
63
+ ### Performance
64
+ - **Native MCP Logging** — Upgraded to MCP SDK v1.25.1 which provides native logging capabilities via `server.sendLoggingMessage()`, eliminating the need for custom stderr-based logging infrastructure
65
+ - **Parallelized Health Queries** — Health resource now executes status and max_connections queries concurrently using `Promise.all()`
66
+ - **Batched Index Queries** — `SchemaManager.getSchema()` now fetches all indexes in a single query
67
+ - Eliminates N+1 query pattern (e.g., 101 queries → 1 query for 100 tables)
68
+ - **Metadata Cache with TTL** — Added configurable TTL-based cache to `SchemaManager` for expensive metadata queries
69
+ - Default 30s TTL, configurable via `METADATA_CACHE_TTL_MS` environment variable
70
+ - `clearCache()` method for invalidation after schema changes
71
+ - **Performance Benchmark Tests** — Added `src/__tests__/performance.test.ts` with 8 tests covering:
72
+ - Tool definition caching validation
73
+ - Metadata cache TTL expiration behavior
74
+ - Parallel vs sequential execution patterns
75
+ - N+1 to batch query improvement verification
76
+
77
+ ### Changed
78
+ - **Logger Test Updates** — Updated logger tests to match RFC 5424 severity levels:
79
+ - `warn` → `warning` level naming
80
+ - Updated format assertions to match `[LEVEL]` structured format (e.g., `[WARNING]`, `[DEBUG]`)
81
+
82
+ ### Added
83
+ - **SchemaManager Cache Tests** — Added tests for cache TTL expiration, cache invalidation, and schema-qualified table name handling in `getTableIndexes()`
84
+ - **Logger Coverage Improvements** — Added 30+ tests covering:
85
+ - `setLoggerName()`, `getLoggerName()`, `setDefaultModule()` configuration methods
86
+ - `notice()`, `critical()`, `alert()`, `emergency()` log levels
87
+ - `forModule()` module-scoped logger with all severity levels
88
+ - Code formatting in log output
89
+ - **CI/CD Quality Gate** - Added `quality-gate` job to `docker-publish.yml` workflow that runs lint, typecheck, and all 1478 unit tests before allowing Docker image builds. Deployments now require all tests to pass.
90
+ - Added comprehensive test coverage for `MySQLAdapter`, `TokenValidator`, and `comparative` stats tools.
91
+ - Added unit tests for security audit tool fallbacks and filtering logic.
92
+ - Added meaningful tests for `locks` resource to handle undefined/partial query results.
93
+ - Added test coverage for `indexes` resource edge cases (undefined rows).
94
+ - Added test coverage for `events` resource edge cases.
95
+ - Added meaningful test coverage for `constraints.ts` (schema-qualified table parsing), `router.ts` (auth headers, TLS handling), and `utilities.ts` (option handling branches).
96
+ - Added comprehensive tests for `security` tool edge cases (encryption status, SSL status).
97
+ - Added tests for `views` schema tool validation and check options.
98
+ - **Transaction-Aware Queries** - Added optional `transactionId` parameter to `mysql_read_query` and `mysql_write_query` tools, enabling interactive queries within active transactions.
99
+ - **MCP Enhanced Logging** — Full MCP protocol-compliant structured logging
100
+ - RFC 5424 severity levels: debug, info, notice, warning, error, critical, alert, emergency
101
+ - Module-prefixed error codes (e.g., `DB_CONNECT_FAILED`, `AUTH_TOKEN_INVALID`)
102
+ - Structured log format: `[timestamp] [LEVEL] [MODULE] [CODE] message {context}`
103
+ - Module-scoped loggers via `logger.forModule()` and `logger.child()`
104
+ - Sensitive data redaction for OAuth 2.1 configuration fields
105
+ - Stack trace inclusion for error-level logs with sanitization
106
+ - Log injection prevention via control character sanitization
107
+ - **All 191 tools and 26 resources fully tested** - Comprehensive testing completed including InnoDB Cluster (3-node Group Replication), MySQL Router REST API, ProxySQL admin interface, and MySQL Shell utilities.
108
+
109
+ ### Security
110
+
111
+ - **CodeQL Remediation** - Fixed 4 security vulnerabilities identified by CodeQL analysis:
112
+ - Removed sensitive OAuth configuration logging (issuer/audience) from startup output
113
+ - Added explicit warning when Router API TLS certificate validation is bypassed
114
+ - Fixed incomplete string escaping in quick query prompt (now escapes backslashes before quotes)
115
+ - **Router TLS Handling** - Replaced global `NODE_TLS_REJECT_UNAUTHORIZED` environment variable manipulation with a targeted HTTPS `Agent` for insecure mode. This eliminates the CodeQL "disabling certificate validation" alert while still supporting self-signed certificates for development/testing via the `MYSQL_ROUTER_INSECURE=true` option.
116
+
117
+ ### Fixed
118
+
119
+ - Removed unused imports and variables from 9 test files to improve code quality (CodeQL alerts #8-18)
120
+ - **ProxySQL Runtime Status** - Fixed `proxysql_runtime_status` failing with SQL syntax error "near 'version': syntax error". The tool was using `@@admin-version` syntax which is not supported by ProxySQL's SQLite-based admin interface. Now correctly queries `global_variables` table.
121
+ - **CRITICAL: MCP stdio Transport Crash** - Removed debug `console.error` in `MySQLAdapter.executeOnConnection()` that was writing to stderr and corrupting the MCP stdio JSON-RPC message stream, causing the server to crash when any tool was called. This was introduced during the DDL support improvements.
122
+ - **DDL Support** - Fixed `mysql_write_query` failing on DDL statements (like `CREATE TABLE`, `CREATE USER`) by implementing automatic fallback to the text protocol when the specific "not supported in prepared statement protocol" error is encountered.
123
+ - **JSON Validation** - Enforced strict JSON validation for `mysql_json_*` tools. String values must now be properly quoted (e.g., `'"value"'`) to be stored as strings. Unquoted strings that are invalid JSON will now throw a descriptive error instead of being accepted and potentially mishandled.
124
+ - **JSON & Text Tools Qualified Table Names** - Fixed all 17 JSON tools and 6 text processing tools to correctly handle schema-qualified table names (e.g., `schema.table`). Previously these tools would reject qualified names with "Invalid table name" errors. Now uses `validateQualifiedIdentifier()` and `escapeQualifiedTable()` for proper handling.
125
+ - Fixed potential issue in `indexes` resource where undefined query results could lead to undefined properties instead of empty arrays.
126
+ - Fixed SQL syntax errors in `mysql_stats_descriptive` tool: escaped `range` reserved keyword and fixed invalid LIMIT/OFFSET syntax in median calculation.
127
+ - Fixed `mysql_json_index_suggest` compatibility with `ONLY_FULL_GROUP_BY` and corrected sampling logic.
128
+ - Fixed `mysql_spatial_polygon` schema validation error by replacing `z.tuple` with `z.array` to generate compatible JSON schema.
129
+ - **Spatial SRID Fix** - Fixed `mysql_spatial_contains` and `mysql_spatial_within` failing on columns with SRID 4326 due to SRID mismatch. Both tools now accept an optional `srid` parameter (default: 4326) and wrap input geometries with `ST_SRID()` to match the column's SRID.
130
+ - **Spatial Coordinate Order** - Fixed `mysql_spatial_point`, `mysql_spatial_distance`, and `mysql_spatial_distance_sphere` creating POINT geometries with incorrect coordinate order for SRID 4326. MySQL 8.0+ follows the EPSG standard axis order (latitude, longitude) for SRID 4326, but the tools were generating `POINT(longitude latitude)`. Now correctly generates `POINT(latitude longitude)`. Updated `mysql_setup_spatial` prompt documentation accordingly.
131
+ - Improved branch coverage across multiple modules.
132
+ - Fixed `mysql_sys_io_summary` failing on MySQL 9.4 due to schema changes in `sys.io_global_by_wait_by_latency` (replaced `wait_class` with `event_name`).
133
+ - **Table Name Handling** - Fixed `mysql_create_table`, `mysql_drop_table`, `mysql_create_index`, `mysql_describe_table`, and `mysql_get_indexes` to correctly handle fully qualified table names (e.g., `schema.table`). Added intelligent parsing and proper backtick escaping for schema prefixes.
134
+ - **Role Grant Handling** - Fixed `mysql_role_grant` to correctly handle schema-qualified table names (e.g., `schema.table`) in the `table` parameter, preventing syntax errors when specifying target tables.
135
+ - **Fixed Role Grant** - Fixed `mysql_role_grant` tool logic to correctly handle wildcard privileges (`*`) versus specific table grants, resolving syntax errors when granting privileges to specific tables.
136
+ - **Schema-Qualified CREATE TABLE** - Fixed `mysql_create_table` failing with "No database selected" when using schema-qualified names (e.g., `testdb.table`). Now automatically issues `USE schema` before CREATE TABLE when a qualified name is detected.
137
+ - **View Management** - Fixed `mysql_create_view` to correctly handle schema-qualified view names (e.g. `schema.view`) and improved validation error messages.
138
+ - **Router TLS Self-Signed Certificates** - Fixed `mysql_router_*` tools failing with "fetch failed" when connecting to Router REST API using HTTPS with self-signed certificates. The `MYSQL_ROUTER_INSECURE=true` environment variable now properly bypasses certificate verification using a targeted HTTPS agent with `rejectUnauthorized: false`.
139
+
140
+ ### Coverage
141
+
142
+ - Branch coverage: ~83.87%
143
+ - Statement coverage: ~97.34%
144
+
145
+
146
+ - **Modular Refactoring and Test Improvements** - Significantly improved code quality and test modularity:
147
+ - **Refactored CLI** - Extracted argument parsing to `src/cli/args.ts` and achieved 91% coverage for `src/cli.ts` (main entry point) including signal handling and error scenarios.
148
+ - **Modular Tool Structure** - Refactored monolithic tool files into clean, maintainable directories for `security` and `cluster` tools.
149
+ - **Enhanced Test Coverage** - Added comprehensive tests for:
150
+ - Service availability: `security` (SSL/TLS status, password validation, encryption status)
151
+ - Cluster management: `group-replication` (status, flow control, members)
152
+ - Text processing: `mysql_substring`, `mysql_concat` (WHERE clause validation)
153
+ - CLI operations: Graceful shutdown, OAuth logging, connection error handling
154
+ - **Bug Fixes**
155
+ - Fixed `mysql_list_tables` failing to filter by database name; it now correctly passes the `database` parameter to the schema manager.
156
+ - Fixed `ExitError` handling in CLI tests and improved mock resilience.
157
+
158
+ ### Security
159
+
160
+ - **Input Validation Module** - Added centralized `src/utils/validators.ts` with:
161
+ - `validateIdentifier()` - Validates SQL identifiers (table, column, schema names) against injection
162
+ - `validateWhereClause()` - Detects dangerous SQL patterns (stacked queries, UNION attacks, timing attacks)
163
+ - `escapeIdentifier()` and `escapeLikePattern()` - Safe escaping utilities
164
+ - **HTTP Security Headers** - Added security headers to HTTP transport:
165
+ - `X-Content-Type-Options: nosniff` - Prevents MIME type sniffing
166
+ - `X-Frame-Options: DENY` - Prevents clickjacking
167
+ - `X-XSS-Protection: 1; mode=block` - Enables XSS filtering
168
+ - `Content-Security-Policy: default-src 'none'` - Restrictive CSP for API
169
+ - `Cache-Control: no-store` - Prevents caching of API responses
170
+ - **Log Sanitization** - Replaced regex-based sanitization in `logger.ts` with manual character validation to prevent ReDoS and allow safe control characters (newlines, tabs).
171
+ - **SQL Injection Prevention** - Added input validation to tool handlers:
172
+ - `backup.ts` - Table name and WHERE clause validation in export/import tools
173
+ - `json/core.ts` - Table, column, and WHERE validation in all 8 JSON tools
174
+ - **Security Test Suite** - Added comprehensive security tests:
175
+ - `security_injection.test.ts` - 14 tests for SQL injection prevention
176
+ - `security_integration.test.ts` - 11 tests for validation flow and error security
177
+ - `TokenValidator.test.ts` - 5 new OAuth edge case tests (signature, nbf, expiry)
178
+ - `http.test.ts` - 6 tests for security header verification
179
+
180
+ ### Changed
181
+
182
+ - **Refactoring** - Removed deprecated `SSEServerTransport` usage in favor of `StreamableHTTPServerTransport` from `@modelcontextprotocol/sdk`.
183
+ - **Code Quality** - Removed all `eslint-disable` directives across the codebase, ensuring strict type safety and linting compliance.
184
+ - **Test Coverage** - Improved coverage for `http.ts`, `logger.ts`, and `validators.ts` with meaningful test cases.
185
+
186
+ ### Added
187
+
188
+ - **Performance Test Suite** - Added `src/__tests__/perf.test.ts` with 11 timing-based tests for regression protection:
189
+ - Tool definition caching validation for `MySQLAdapter.getToolDefinitions()`
190
+ - O(1) lookup verification for `getToolGroup()` (Map vs linear search)
191
+ - Caching validation for `getAllToolNames()` and `parseToolFilter()`
192
+ - Filter performance tests for complex filter chains (-base,-ecosystem,+starter)
193
+
194
+
195
+ ### Changed
196
+
197
+ - **Code Organization - Modular Refactoring** - Improved code maintainability by refactoring large monolithic tool files (500+ lines) into focused, modular directory structures:
198
+ - Phase 1 (Initial Refactoring):
199
+ - `tools/spatial/` - Split 565-line file into 4 modules: `setup.ts`, `geometry.ts`, `queries.ts`, `operations.ts`
200
+ - `tools/admin/` - Split 627-line file into 3 modules: `maintenance.ts`, `monitoring.ts`, `backup.ts`
201
+ - `tools/sysschema/` - Split 583-line file into 3 modules: `activity.ts`, `performance.ts`, `resources.ts`
202
+ - Phase 2 (Consistency Refactoring):
203
+ - `tools/performance/` - Split 491-line file into 2 modules: `analysis.ts`, `optimization.ts`
204
+ - `tools/text/` - Split 315-line file into 2 modules: `processing.ts`, `fulltext.ts`
205
+ - Separated `replication.ts` and `partitioning.ts` into distinct files (were mixed in one 353-line file)
206
+ - All modules export through central `index.ts` for backward compatibility
207
+ - Zero breaking changes - all tool functionality preserved and verified via test suite (1175 tests passing)
208
+ - Removed all eslint-disable directives and fixed type safety issues
209
+ - **Modular Refactoring Phase 4**:
210
+ - Extracted CLI argument parsing logic to `src/cli/args.ts`
211
+ - Moved MySQL schema operations to `src/adapters/mysql/SchemaManager.ts`
212
+
213
+ - **Code Organization - Test Suite Modularity** - Refactored large test files into focused, modular test suites to improve maintainability and parallelism:
214
+ - Split `admin.test.ts` (626 lines) into `admin.test.ts` (admin tools), `monitoring.test.ts` (monitoring tools), and `backup.test.ts` (backup tools).
215
+ - Split `json.test.ts` (729 lines) and `json_handler.test.ts` (141 lines) into `json_core.test.ts` (8 core tools), `json_helpers.test.ts` (4 helper tools), and `json_enhanced.test.ts` (5 enhanced tools).
216
+ - Verified all 1489 tests pass with strict type safety enabled.
217
+
218
+ - **Performance Optimizations** - Implemented caching and algorithmic improvements for faster server startup and tool lookups:
219
+ - **Tool Definition Caching** - `MySQLAdapter.getToolDefinitions()` now caches all 191 tool definitions after first call, eliminating 20+ factory function calls on subsequent `tools/list` requests
220
+ - **Reverse Lookup Map** - `getToolGroup()` now uses O(1) Map lookup instead of O(n×m) linear search through 24 groups
221
+ - **Cached Tool Names** - `getAllToolNames()` caches the 191-tool array after first computation
222
+ - Added `clearToolFilterCaches()` export for testing purposes
223
+
224
+ ### Fixed
225
+ - **Test Integrity** - Resolved false coverage reports by refactoring `spatial` tests to target actual modular files (`tools/spatial/index.ts`) instead of legacy code.
226
+ - **Server Testing** - Added missing test coverage for `McpServer` HTTP/SSE transport startup, OAuth configuration, and error handling.
227
+ - **Legacy Cleanup** - Removed unused legacy `spatial.ts` file.
228
+ - **Shell Tools Security** - Fixed an injection vulnerability in `mysqlsh_import_table` where `linesTerminatedBy` and `fieldsTerminatedBy` were not properly escaped.
229
+ - **Test Improvements**
230
+ - Improved test coverage and modularity
231
+ - Removed redundant monolithic tool files (`performance.ts`, `text.ts`)
232
+ - Enhanced `cli.ts` tests for argument parsing and pool configuration
233
+ - Improved `MySQLAdapter` transaction error handling tests
234
+ - Added resilience tests for `innodb` resource
235
+ - Refactored `ToolFilter` into `ToolConstants`
236
+ - Refactored `shell.test.ts` into 5 modular files and improved coverage for shell, spatial, and sysschema tools with meaningful assertions.
237
+ - **Resource Test Refactoring** - Split monolithic `handlers.test.ts` and `diagnostics.test.ts` into 10 modular test files (`spatial`, `status`, `sysschema`, `pool`, `processlist`, `capabilities`, `tables`, `innodb`, `performance`, `schema`) to improve maintainability.
238
+ - **Coverage Boost** - Achieved >80% branch coverage by adding meaningful edge-case tests for resources (handling null results, empty sets) and tool filters.
239
+ - **CLI & Tool Coverage** - Added comprehensive tests for:
240
+ - CLI argument parsing (`args.test.ts`)
241
+ - Document Store validation (`docstore.test.ts`)
242
+ - Performance resource error handling (`performance.test.ts`)
243
+ - Schema management tools (`management.test.ts`)
244
+
245
+ ### Added
246
+
247
+ - **85 New Tools** for comprehensive MySQL 8.0 coverage (106 → 191 tools total):
248
+
249
+ **Schema Management (10 tools)** - `schema` group:
250
+ - `mysql_list_schemas`, `mysql_create_schema`, `mysql_drop_schema`, `mysql_list_views`, `mysql_create_view`, `mysql_list_stored_procedures`, `mysql_list_functions`, `mysql_list_triggers`, `mysql_list_constraints`, `mysql_list_events`
251
+
252
+ **Event Scheduler (6 tools)** - `events` group:
253
+ - `mysql_event_create`, `mysql_event_alter`, `mysql_event_drop`, `mysql_event_list`, `mysql_event_status`, `mysql_scheduler_status`
254
+
255
+ **sys Schema Diagnostics (8 tools)** - `sysschema` group:
256
+ - `mysql_sys_user_summary`, `mysql_sys_io_summary`, `mysql_sys_statement_summary`, `mysql_sys_wait_summary`, `mysql_sys_innodb_lock_waits`, `mysql_sys_schema_stats`, `mysql_sys_host_summary`, `mysql_sys_memory_summary`
257
+
258
+ **Statistical Analysis (8 tools)** - `stats` group:
259
+ - `mysql_stats_descriptive`, `mysql_stats_percentiles`, `mysql_stats_correlation`, `mysql_stats_distribution`, `mysql_stats_time_series`, `mysql_stats_regression`, `mysql_stats_sampling`, `mysql_stats_histogram`
260
+
261
+ **Spatial/GIS (12 tools)** - `spatial` group:
262
+ - `mysql_spatial_create_column`, `mysql_spatial_create_index`, `mysql_spatial_point`, `mysql_spatial_polygon`, `mysql_spatial_distance`, `mysql_spatial_distance_sphere`, `mysql_spatial_contains`, `mysql_spatial_within`, `mysql_spatial_intersection`, `mysql_spatial_buffer`, `mysql_spatial_transform`, `mysql_spatial_geojson`
263
+
264
+ **Security (9 tools)** - `security` group:
265
+ - `mysql_security_audit`, `mysql_security_firewall_status`, `mysql_security_firewall_rules`, `mysql_security_mask_data`, `mysql_security_password_validate`, `mysql_security_ssl_status`, `mysql_security_user_privileges`, `mysql_security_sensitive_tables`, `mysql_security_encryption_status`
266
+
267
+ **Group Replication & InnoDB Cluster (10 tools)** - `cluster` group:
268
+ - `mysql_gr_status`, `mysql_gr_members`, `mysql_gr_primary`, `mysql_gr_transactions`, `mysql_gr_flow_control`, `mysql_cluster_status`, `mysql_cluster_instances`, `mysql_cluster_topology`, `mysql_cluster_router_status`, `mysql_cluster_switchover`
269
+
270
+ **Role Management (8 tools)** - `roles` group:
271
+ - `mysql_role_list`, `mysql_role_create`, `mysql_role_drop`, `mysql_role_grants`, `mysql_role_grant`, `mysql_role_assign`, `mysql_role_revoke`, `mysql_user_roles`
272
+
273
+ **Document Store (9 tools)** - `docstore` group:
274
+ - `mysql_doc_list_collections`, `mysql_doc_create_collection`, `mysql_doc_drop_collection`, `mysql_doc_find`, `mysql_doc_add`, `mysql_doc_modify`, `mysql_doc_remove`, `mysql_doc_create_index`, `mysql_doc_collection_info`
275
+
276
+ **Enhanced JSON (5 tools)** - added to `json` group (12 → 17):
277
+ - `mysql_json_merge`, `mysql_json_diff`, `mysql_json_normalize`, `mysql_json_stats`, `mysql_json_index_suggest`
278
+
279
+ - **6 New Resources** for monitoring (12 → 18 resources):
280
+ - `mysql://events` - Event Scheduler status and scheduled events
281
+ - `mysql://sysschema` - sys schema diagnostics summary
282
+ - `mysql://locks` - InnoDB lock contention detection
283
+ - `mysql://cluster` - Group Replication/InnoDB Cluster status
284
+ - `mysql://spatial` - Spatial columns and indexes
285
+ - `mysql://docstore` - Document Store collections
286
+
287
+ - **5 New Prompts** for guided workflows (14 → 19 prompts):
288
+ - `mysql_setup_events` - Event Scheduler setup guide
289
+ - `mysql_sys_schema_guide` - sys schema usage and diagnostics
290
+ - `mysql_setup_spatial` - Spatial/GIS data setup guide
291
+ - `mysql_setup_cluster` - InnoDB Cluster/Group Replication guide
292
+ - `mysql_setup_docstore` - Document Store / X DevAPI guide
293
+
294
+ - **2 New Meta-Groups** for tool filtering:
295
+ - `dba` (~70 tools) - DBA tasks (admin, monitoring, security, sysschema, roles)
296
+ - `ai` (~85 tools) - AI/ML features (docstore, spatial, JSON, stats)
297
+
298
+ ### Changed
299
+
300
+ - Tool groups increased from 15 to 24 (9 new groups)
301
+ - JSON tools increased from 12 to 17
302
+ - Updated meta-groups: `starter` (~45), `dev` (~65), `base` (~160)
303
+ - README updated with new tool groups and meta-groups
304
+
305
+ ### Fixed
306
+ - **`ai` meta-group now implemented** - Previously documented in v1.1.0 changelog but missing from code. Now fully functional with 77 tools for AI/ML workloads (JSON, Document Store, spatial, statistics)
307
+ - **Tool count accuracy** - Corrected all tool counts in README:
308
+ - `starter`: 38 tools (was ~33)
309
+ - `dev`: 67 tools (was ~65)
310
+ - `ai`: 77 tools (was ~85)
311
+ - `dba`: 103 tools (was ~70)
312
+ - **README improvements** - Rewrote Tool Filtering section with beginner-friendly explanations, step-by-step filter examples, and syntax reference table
313
+
314
+ ### Changed
315
+ - Updated `MetaGroup` type in `types/index.ts` to include `ai`
316
+ - Added detailed tool count comments in `ToolFilter.ts`
317
+
318
+ ### Added - Documentation
319
+ - **MCP Inspector Usage Guide** - Added documentation in README and Wiki for using MCP Inspector to visually test and debug mysql-mcp servers ([Wiki](https://github.com/neverinfamous/mysql-mcp/wiki/MCP-Inspector))
320
+
321
+ ### Added - Testing
322
+ - **Comprehensive Test Suite** - 1168 tests across 54 test files (>95% global statement coverage)
323
+ - [x] Fix remaining test failures
324
+ - [x] Achieve 90% test coverage with meaningful tests
325
+ - [ ] Add remaining tool definitions
326
+ - [ ] Implement remaining handlers
327
+ - **Test Quality Improvements** - Replaced coverage booster tests with meaningful assertions:
328
+ - `prompts.test.ts`: 15 content verification assertions (e.g., checking for "migration", "CREATE TABLE")
329
+ - `resources.test.ts`: 5 handler execution smoke tests with adapter method verification
330
+ - `sysschema.test.ts`: Comprehensive structure assertions and default parameter handling
331
+ - Core modules: ToolFilter (42), ConnectionPool (30), McpServer (26)
332
+ - Tool groups: All 24 groups tested with handler execution tests
333
+ - Resources: All 18 resources tested with handler execution tests
334
+ - Prompts: All 19 prompts tested for names, arguments, handlers
335
+ - Adapters: DatabaseAdapter (45), MySQLAdapter (25)
336
+ - OAuth: Scopes (30), OAuthResourceServer (21), Errors (21+), AuthorizationServerDiscovery (20+), TokenValidator (17), Middleware (32)
337
+ - Infrastructure: McpLogging (22), ProgressReporter (21), HTTP Transport (20)
338
+ - **New Test Files** (7 added):
339
+ - `src/auth/__tests__/errors.test.ts` - All OAuth error classes tested
340
+ - `src/auth/__tests__/AuthorizationServerDiscovery.test.ts` - RFC 8414 metadata discovery, caching, error handling
341
+ - `src/logging/__tests__/McpLogging.test.ts` - Log level filtering, configuration, convenience methods
342
+ - `src/progress/__tests__/ProgressReporter.test.ts` - Progress notifications, factory, error handling
343
+ - `src/auth/__tests__/OAuthResourceServer.test.ts` - RFC 9728 metadata, scope validation
344
+ - `src/adapters/mysql/resources/__tests__/handlers.test.ts` - Resource handler execution tests
345
+ - `src/transports/__tests__/http.test.ts` - CORS, health check, OAuth metadata
346
+ - `src/adapters/mysql/tools/schema/__tests__/*.test.ts` - 6 modular test files for schema management
347
+ - **Modular Refactoring Phase 3**:
348
+ - Refactored `schema.ts` (monolithic) into `tools/schema/` (management, views, routines, triggers, constraints, scheduled_events).
349
+ - Deleted legacy monolithic files `admin.ts` and `sysschema.ts`.
350
+ - Refactored tests to match modular structure, deleting legacy test files `admin.test.ts`, `sysschema.test.ts`, `schema.test.ts` and duplicates.
351
+ - **HTTP/SSE Transport Integration**:
352
+ - Fully implemented SSE request handling in `src/transports/http.ts`
353
+ - Integrated `HttpTransport` class into `McpServer.ts` startup logic
354
+ - Added support for `/sse` and `/messages` endpoints compliant with MCP protocol
355
+ - Enabled OAuth authentication for HTTP transport via `OAuthResourceServer` and `TokenValidator` integration
356
+ - **Centralized Mock Infrastructure**:
357
+ - New `src/__tests__/mocks/index.ts` - Barrel export for all mock factories
358
+ - `createMockMySQLAdapter()` - Full adapter mock with all methods
359
+ - `createMockMySQLAdapterEmpty()` - Adapter returning empty results
360
+ - `createMockMySQLAdapterWithError()` - Adapter that throws on queries
361
+ - `createMockMySQLAdapterWithTransaction()` - Transaction-enabled mock
362
+ - `createMockRequestContext()` - Mock RequestContext for handler tests
363
+ - **Handler Execution Tests** - Core and transaction tools include handler behavior tests
364
+ - **Test Scripts**:
365
+ - `npm test` - Run all tests
366
+ - `npm run test:coverage` - Run with coverage report (v8 provider)
367
+ - `npm run test:watch` - Watch mode for development
368
+ - Tests run without database connection (fully mocked)
369
+ - ~10 second total test runtime
370
+ - **Integration Tests**:
371
+ - `src/adapters/mysql/__tests__/MySQLAdapter.integration.test.ts` - Non-mocked tests against real MySQL Docker container
372
+ - Verifies connection, CRUD operations, and transaction commit/rollback
373
+ - **Coverage Improvements**:
374
+ - Global statement coverage: **>95%**
375
+ - Branch coverage: **~79%**
376
+ - **Testing**: Achieved >95% global statement coverage and ~79% branch coverage across the codebase.
377
+ - **Testing**: Added comprehensive unit tests for `src/cli.ts` (91% coverage) including flag parsing, help output, and environment fallbacks.
378
+ - **Testing**: Significantly improved tool handler coverage for `cluster`, `shell`, `sysschema`, `security`, and `text` modules.
379
+ - **Testing**: Added tests for `health` resource and `indexTuning` prompt.
380
+ - **Tool Coverage**: Added meaningful edge-case tests for `cluster`, `shell`, `sysschema`, `security`, and `text` tools (verification of queries, fallbacks, and error handling)
381
+ - **Coverage Boost**: achieved >80% branch coverage by refactoring and adding dedicated tests for:
382
+ - `spatial` tools (now comprehensive with validation and fallback tests)
383
+ - `sysschema` tools (now comprehensive with default checks)
384
+ - `json` tools (high coverage)
385
+ - `roles` tools (high coverage)
386
+ - `text` tools (full coverage including optional parameters)
387
+ - `docstore` tools (full coverage including result parsing and complex updates)
388
+ - `admin` tools (comprehensive coverage for maintenance, monitoring, and backup)
389
+ - `performance` tools (coverage for analysis and optimization)
390
+ - Resources: `docstore`, `events`, `status`, `variables`, `indexes`, `locks` (now comprehensively tested)
391
+
392
+
393
+ ## [1.0.0] - 2025-12-13
394
+
395
+ ### Added
396
+ - **MySQL Router Support** - 9 new tools for monitoring MySQL Router via REST API
397
+ - `mysql_router_status` - Get Router process status and version
398
+ - `mysql_router_routes` - List all configured routes
399
+ - `mysql_router_route_status` - Get status of a specific route
400
+ - `mysql_router_route_health` - Check health/liveness of a route
401
+ - `mysql_router_route_connections` - List active connections on route
402
+ - `mysql_router_route_destinations` - List backend MySQL server destinations
403
+ - `mysql_router_route_blocked_hosts` - List blocked IP addresses for a route
404
+ - `mysql_router_metadata_status` - InnoDB Cluster metadata cache status *(requires InnoDB Cluster)*
405
+ - `mysql_router_pool_status` - Connection pool statistics *(requires InnoDB Cluster)*
406
+ - New `router` tool group for filtering Router tools
407
+ - Router REST API configuration via environment variables
408
+ - Comprehensive Router setup documentation in README
409
+ - **ProxySQL Support** - 12 new tools for monitoring ProxySQL proxy
410
+ - `proxysql_status` - Get ProxySQL version, uptime, and runtime stats
411
+ - `proxysql_servers` - List configured backend MySQL servers
412
+ - `proxysql_hostgroups` - List hostgroup configurations and connection stats
413
+ - `proxysql_query_rules` - List query routing rules
414
+ - `proxysql_query_digest` - Get query digest statistics (top queries)
415
+ - `proxysql_connection_pool` - Get connection pool statistics per server
416
+ - `proxysql_users` - List configured MySQL users
417
+ - `proxysql_global_variables` - Get global variables (mysql-* and admin-*)
418
+ - `proxysql_runtime_status` - Get runtime configuration status
419
+ - `proxysql_memory_stats` - Get memory usage metrics
420
+ - `proxysql_commands` - Execute LOAD/SAVE admin commands
421
+ - `proxysql_process_list` - Get active sessions like SHOW PROCESSLIST
422
+ - New `proxysql` tool group for filtering ProxySQL tools
423
+ - ProxySQL admin interface configuration via environment variables
424
+ - Comprehensive ProxySQL setup documentation in README
425
+ - **MySQL Shell Support** - 10 new tools for MySQL Shell 8.0 integration
426
+ - `mysqlsh_version` - Get MySQL Shell version and installation status
427
+ - `mysqlsh_check_upgrade` - Check server upgrade compatibility
428
+ - `mysqlsh_export_table` - Export table to file (CSV, TSV, JSON)
429
+ - `mysqlsh_import_table` - Parallel table import from file
430
+ - `mysqlsh_import_json` - Import JSON documents to collection or table
431
+ - `mysqlsh_dump_instance` - Dump entire MySQL instance
432
+ - `mysqlsh_dump_schemas` - Dump selected schemas
433
+ - `mysqlsh_dump_tables` - Dump specific tables
434
+ - `mysqlsh_load_dump` - Load MySQL Shell dump
435
+ - `mysqlsh_run_script` - Execute JS/Python/SQL script via MySQL Shell
436
+ - New `shell` tool group for filtering MySQL Shell tools
437
+ - MySQL Shell configuration via environment variables (MYSQLSH_PATH, MYSQLSH_TIMEOUT, MYSQLSH_WORK_DIR)
438
+ - Comprehensive MySQL Shell setup documentation in README
439
+
440
+ ### Changed
441
+ - Total tools increased from 75 to 106
442
+ - Tool groups increased from 12 to 15
443
+ - Updated `.env.example` with Router and ProxySQL configuration templates
444
+ - Updated minimal preset to exclude Router, ProxySQL, and Shell tools by default
445
+
446
+ ### Fixed
447
+ - **Prompt Parameter Passing** - Fixed issue where prompt arguments showed `undefined` instead of actual values. Prompts now properly pass arguments from MCP clients to handlers.
448
+
449
+ ## [0.1.0] - 2025-12-13
450
+
451
+ ### Added
452
+ - **84 MySQL tools** across 13 categories
453
+ - **4 AI-Powered Prompts** for guided MySQL workflows:
454
+ - `mysql_query_builder` - Help construct SQL queries with security best practices
455
+ - `mysql_schema_design` - Design table schemas with indexes and relationships
456
+ - `mysql_performance_analysis` - Analyze slow queries with optimization recommendations
457
+ - `mysql_migration` - Generate migration scripts with rollback and online migration options
458
+ - Core database operations (CRUD, schema, tables)
459
+ - JSON operations (MySQL 5.7+)
460
+ - Text processing (REGEXP, LIKE, SOUNDEX)
461
+ - FULLTEXT search support
462
+ - Performance tools (EXPLAIN, query analysis)
463
+ - Optimization tools (index hints, recommendations)
464
+ - Admin tools (OPTIMIZE, ANALYZE, FLUSH)
465
+ - Monitoring tools (PROCESSLIST, status variables)
466
+ - Backup tools (export, import, mysqldump format)
467
+ - Replication tools (master/slave, binlog, GTID)
468
+ - Partitioning tools (partition management)
469
+ - Transaction tools (BEGIN, COMMIT, ROLLBACK, savepoints)
470
+ - MySQL Router tools (status, routes, health monitoring)
471
+ - **Tool Filtering System** - Filter by group or individual tools
472
+ - **OAuth 2.0 Support** - Keycloak integration for enterprise auth
473
+ - **Connection Pooling** - Configurable mysql2 pool
474
+ - **Multiple Transports** - stdio, HTTP, SSE
475
+ - MCP SDK integration
476
+ - Comprehensive documentation and examples
477
+
478
+ ### Security
479
+ - SQL injection prevention via parameterized queries
480
+ - OAuth 2.0 scope-based access control
481
+ - Environment variable configuration for sensitive data
@@ -0,0 +1,29 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ **Positive behaviors include:**
10
+ - Using welcoming and inclusive language
11
+ - Being respectful of differing viewpoints
12
+ - Gracefully accepting constructive criticism
13
+ - Focusing on what is best for the community
14
+
15
+ **Unacceptable behaviors include:**
16
+ - Harassment, trolling, or insulting comments
17
+ - Personal or political attacks
18
+ - Publishing others' private information without permission
19
+ - Other conduct inappropriate in a professional setting
20
+
21
+ ## Enforcement
22
+
23
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to: **admin@adamic.tech**
24
+
25
+ All complaints will be reviewed and investigated promptly and fairly.
26
+
27
+ ## Attribution
28
+
29
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.
@@ -0,0 +1,57 @@
1
+ # Contributing to mysql-mcp
2
+
3
+ Thank you for your interest in contributing to mysql-mcp! This document provides guidelines for contributing.
4
+
5
+ ## Getting Started
6
+
7
+ 1. **Fork** the repository
8
+ 2. **Clone** your fork locally
9
+ 3. **Create a branch** for your changes (`git checkout -b feature/amazing-feature`)
10
+ 4. **Make your changes**
11
+ 5. **Test** your changes thoroughly
12
+ 6. **Commit** with clear, descriptive messages
13
+ 7. **Push** to your fork
14
+ 8. **Open a Pull Request**
15
+
16
+ ## Development Setup
17
+
18
+ ```bash
19
+ # Clone your fork
20
+ git clone https://github.com/YOUR_USERNAME/mysql-mcp.git
21
+ cd mysql-mcp
22
+
23
+ # Install dependencies
24
+ npm install
25
+
26
+ # Run tests
27
+ npm test
28
+
29
+ # Build
30
+ npm run build
31
+ ```
32
+
33
+ ## Guidelines
34
+
35
+ ### Code Style
36
+
37
+ - Follow the existing code style
38
+ - Use TypeScript for all new code
39
+ - Add comments for complex logic
40
+ - Keep functions focused and small
41
+
42
+ ### Commits
43
+
44
+ - Use clear, descriptive commit messages
45
+ - Reference issues when applicable (`Fixes #123`)
46
+ - Keep commits atomic (one logical change per commit)
47
+
48
+ ### Pull Requests
49
+
50
+ - Provide a clear description of changes
51
+ - Reference any related issues
52
+ - Ensure all tests pass
53
+ - Update documentation if needed
54
+
55
+ ## Questions?
56
+
57
+ If you have questions, feel free to open an issue for discussion.