@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.
- package/.dockerignore +41 -0
- package/.env.example +33 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +21 -0
- package/.github/dependabot.yml +19 -0
- package/.github/pull_request_template.md +23 -0
- package/.github/workflows/codeql.yml +64 -0
- package/.github/workflows/docker-publish.yml +285 -0
- package/.github/workflows/publish-npm.yml +75 -0
- package/CHANGELOG.md +481 -0
- package/CODE_OF_CONDUCT.md +29 -0
- package/CONTRIBUTING.md +57 -0
- package/DOCKER_README.md +482 -0
- package/Dockerfile +78 -0
- package/LICENSE +21 -0
- package/README.md +594 -0
- package/SECURITY.md +66 -0
- package/VERSION +1 -0
- package/dist/__tests__/mocks/adapter.d.ts +80 -0
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -0
- package/dist/__tests__/mocks/adapter.js +202 -0
- package/dist/__tests__/mocks/adapter.js.map +1 -0
- package/dist/__tests__/mocks/index.d.ts +11 -0
- package/dist/__tests__/mocks/index.d.ts.map +1 -0
- package/dist/__tests__/mocks/index.js +11 -0
- package/dist/__tests__/mocks/index.js.map +1 -0
- package/dist/__tests__/mocks/mysql.d.ts +36 -0
- package/dist/__tests__/mocks/mysql.d.ts.map +1 -0
- package/dist/__tests__/mocks/mysql.js +110 -0
- package/dist/__tests__/mocks/mysql.js.map +1 -0
- package/dist/__tests__/setup.d.ts +40 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +45 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/adapters/DatabaseAdapter.d.ts +134 -0
- package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
- package/dist/adapters/DatabaseAdapter.js +211 -0
- package/dist/adapters/DatabaseAdapter.js.map +1 -0
- package/dist/adapters/mysql/MySQLAdapter.d.ts +88 -0
- package/dist/adapters/mysql/MySQLAdapter.d.ts.map +1 -0
- package/dist/adapters/mysql/MySQLAdapter.js +469 -0
- package/dist/adapters/mysql/MySQLAdapter.js.map +1 -0
- package/dist/adapters/mysql/SchemaManager.d.ts +36 -0
- package/dist/adapters/mysql/SchemaManager.d.ts.map +1 -0
- package/dist/adapters/mysql/SchemaManager.js +260 -0
- package/dist/adapters/mysql/SchemaManager.js.map +1 -0
- package/dist/adapters/mysql/index.d.ts +6 -0
- package/dist/adapters/mysql/index.d.ts.map +1 -0
- package/dist/adapters/mysql/index.js +7 -0
- package/dist/adapters/mysql/index.js.map +1 -0
- package/dist/adapters/mysql/prompts/backupStrategy.d.ts +8 -0
- package/dist/adapters/mysql/prompts/backupStrategy.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/backupStrategy.js +74 -0
- package/dist/adapters/mysql/prompts/backupStrategy.js.map +1 -0
- package/dist/adapters/mysql/prompts/clusterSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/clusterSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/clusterSetup.js +112 -0
- package/dist/adapters/mysql/prompts/clusterSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/docstoreSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/docstoreSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/docstoreSetup.js +117 -0
- package/dist/adapters/mysql/prompts/docstoreSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/eventScheduler.d.ts +8 -0
- package/dist/adapters/mysql/prompts/eventScheduler.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/eventScheduler.js +97 -0
- package/dist/adapters/mysql/prompts/eventScheduler.js.map +1 -0
- package/dist/adapters/mysql/prompts/healthCheck.d.ts +8 -0
- package/dist/adapters/mysql/prompts/healthCheck.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/healthCheck.js +49 -0
- package/dist/adapters/mysql/prompts/healthCheck.js.map +1 -0
- package/dist/adapters/mysql/prompts/index.d.ts +31 -0
- package/dist/adapters/mysql/prompts/index.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/index.js +308 -0
- package/dist/adapters/mysql/prompts/index.js.map +1 -0
- package/dist/adapters/mysql/prompts/indexTuning.d.ts +8 -0
- package/dist/adapters/mysql/prompts/indexTuning.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/indexTuning.js +83 -0
- package/dist/adapters/mysql/prompts/indexTuning.js.map +1 -0
- package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/mysqlshSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/mysqlshSetup.js +113 -0
- package/dist/adapters/mysql/prompts/mysqlshSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/proxysqlSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/proxysqlSetup.js +109 -0
- package/dist/adapters/mysql/prompts/proxysqlSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/replicationSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/replicationSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/replicationSetup.js +140 -0
- package/dist/adapters/mysql/prompts/replicationSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/routerSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/routerSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/routerSetup.js +100 -0
- package/dist/adapters/mysql/prompts/routerSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/spatialSetup.d.ts +8 -0
- package/dist/adapters/mysql/prompts/spatialSetup.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/spatialSetup.js +103 -0
- package/dist/adapters/mysql/prompts/spatialSetup.js.map +1 -0
- package/dist/adapters/mysql/prompts/sysSchema.d.ts +8 -0
- package/dist/adapters/mysql/prompts/sysSchema.d.ts.map +1 -0
- package/dist/adapters/mysql/prompts/sysSchema.js +103 -0
- package/dist/adapters/mysql/prompts/sysSchema.js.map +1 -0
- package/dist/adapters/mysql/resources/capabilities.d.ts +9 -0
- package/dist/adapters/mysql/resources/capabilities.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/capabilities.js +41 -0
- package/dist/adapters/mysql/resources/capabilities.js.map +1 -0
- package/dist/adapters/mysql/resources/cluster.d.ts +7 -0
- package/dist/adapters/mysql/resources/cluster.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/cluster.js +61 -0
- package/dist/adapters/mysql/resources/cluster.js.map +1 -0
- package/dist/adapters/mysql/resources/docstore.d.ts +7 -0
- package/dist/adapters/mysql/resources/docstore.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/docstore.js +61 -0
- package/dist/adapters/mysql/resources/docstore.js.map +1 -0
- package/dist/adapters/mysql/resources/events.d.ts +7 -0
- package/dist/adapters/mysql/resources/events.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/events.js +41 -0
- package/dist/adapters/mysql/resources/events.js.map +1 -0
- package/dist/adapters/mysql/resources/health.d.ts +10 -0
- package/dist/adapters/mysql/resources/health.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/health.js +76 -0
- package/dist/adapters/mysql/resources/health.js.map +1 -0
- package/dist/adapters/mysql/resources/index.d.ts +29 -0
- package/dist/adapters/mysql/resources/index.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/index.js +66 -0
- package/dist/adapters/mysql/resources/index.js.map +1 -0
- package/dist/adapters/mysql/resources/indexes.d.ts +9 -0
- package/dist/adapters/mysql/resources/indexes.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/indexes.js +88 -0
- package/dist/adapters/mysql/resources/indexes.js.map +1 -0
- package/dist/adapters/mysql/resources/innodb.d.ts +9 -0
- package/dist/adapters/mysql/resources/innodb.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/innodb.js +95 -0
- package/dist/adapters/mysql/resources/innodb.js.map +1 -0
- package/dist/adapters/mysql/resources/locks.d.ts +7 -0
- package/dist/adapters/mysql/resources/locks.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/locks.js +57 -0
- package/dist/adapters/mysql/resources/locks.js.map +1 -0
- package/dist/adapters/mysql/resources/performance.d.ts +9 -0
- package/dist/adapters/mysql/resources/performance.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/performance.js +89 -0
- package/dist/adapters/mysql/resources/performance.js.map +1 -0
- package/dist/adapters/mysql/resources/pool.d.ts +7 -0
- package/dist/adapters/mysql/resources/pool.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/pool.js +21 -0
- package/dist/adapters/mysql/resources/pool.js.map +1 -0
- package/dist/adapters/mysql/resources/processlist.d.ts +7 -0
- package/dist/adapters/mysql/resources/processlist.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/processlist.js +18 -0
- package/dist/adapters/mysql/resources/processlist.js.map +1 -0
- package/dist/adapters/mysql/resources/replication.d.ts +9 -0
- package/dist/adapters/mysql/resources/replication.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/replication.js +116 -0
- package/dist/adapters/mysql/resources/replication.js.map +1 -0
- package/dist/adapters/mysql/resources/schema.d.ts +7 -0
- package/dist/adapters/mysql/resources/schema.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/schema.js +18 -0
- package/dist/adapters/mysql/resources/schema.js.map +1 -0
- package/dist/adapters/mysql/resources/spatial.d.ts +7 -0
- package/dist/adapters/mysql/resources/spatial.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/spatial.js +47 -0
- package/dist/adapters/mysql/resources/spatial.js.map +1 -0
- package/dist/adapters/mysql/resources/status.d.ts +7 -0
- package/dist/adapters/mysql/resources/status.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/status.js +22 -0
- package/dist/adapters/mysql/resources/status.js.map +1 -0
- package/dist/adapters/mysql/resources/sysschema.d.ts +7 -0
- package/dist/adapters/mysql/resources/sysschema.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/sysschema.js +50 -0
- package/dist/adapters/mysql/resources/sysschema.js.map +1 -0
- package/dist/adapters/mysql/resources/tables.d.ts +7 -0
- package/dist/adapters/mysql/resources/tables.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/tables.js +18 -0
- package/dist/adapters/mysql/resources/tables.js.map +1 -0
- package/dist/adapters/mysql/resources/variables.d.ts +7 -0
- package/dist/adapters/mysql/resources/variables.d.ts.map +1 -0
- package/dist/adapters/mysql/resources/variables.js +22 -0
- package/dist/adapters/mysql/resources/variables.js.map +1 -0
- package/dist/adapters/mysql/tools/admin/backup.d.ts +13 -0
- package/dist/adapters/mysql/tools/admin/backup.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/admin/backup.js +208 -0
- package/dist/adapters/mysql/tools/admin/backup.js.map +1 -0
- package/dist/adapters/mysql/tools/admin/index.d.ts +21 -0
- package/dist/adapters/mysql/tools/admin/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/admin/index.js +49 -0
- package/dist/adapters/mysql/tools/admin/index.js.map +1 -0
- package/dist/adapters/mysql/tools/admin/maintenance.d.ts +15 -0
- package/dist/adapters/mysql/tools/admin/maintenance.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/admin/maintenance.js +143 -0
- package/dist/adapters/mysql/tools/admin/maintenance.js.map +1 -0
- package/dist/adapters/mysql/tools/admin/monitoring.d.ts +16 -0
- package/dist/adapters/mysql/tools/admin/monitoring.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/admin/monitoring.js +199 -0
- package/dist/adapters/mysql/tools/admin/monitoring.js.map +1 -0
- package/dist/adapters/mysql/tools/cluster/group-replication.d.ts +29 -0
- package/dist/adapters/mysql/tools/cluster/group-replication.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/cluster/group-replication.js +290 -0
- package/dist/adapters/mysql/tools/cluster/group-replication.js.map +1 -0
- package/dist/adapters/mysql/tools/cluster/index.d.ts +13 -0
- package/dist/adapters/mysql/tools/cluster/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/cluster/index.js +27 -0
- package/dist/adapters/mysql/tools/cluster/index.js.map +1 -0
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts +29 -0
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js +351 -0
- package/dist/adapters/mysql/tools/cluster/innodb-cluster.js.map +1 -0
- package/dist/adapters/mysql/tools/core.d.ts +13 -0
- package/dist/adapters/mysql/tools/core.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/core.js +308 -0
- package/dist/adapters/mysql/tools/core.js.map +1 -0
- package/dist/adapters/mysql/tools/docstore.d.ts +10 -0
- package/dist/adapters/mysql/tools/docstore.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/docstore.js +320 -0
- package/dist/adapters/mysql/tools/docstore.js.map +1 -0
- package/dist/adapters/mysql/tools/events.d.ts +13 -0
- package/dist/adapters/mysql/tools/events.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/events.js +367 -0
- package/dist/adapters/mysql/tools/events.js.map +1 -0
- package/dist/adapters/mysql/tools/index.d.ts +25 -0
- package/dist/adapters/mysql/tools/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/index.js +43 -0
- package/dist/adapters/mysql/tools/index.js.map +1 -0
- package/dist/adapters/mysql/tools/json/core.d.ts +17 -0
- package/dist/adapters/mysql/tools/json/core.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/json/core.js +264 -0
- package/dist/adapters/mysql/tools/json/core.js.map +1 -0
- package/dist/adapters/mysql/tools/json/enhanced.d.ts +14 -0
- package/dist/adapters/mysql/tools/json/enhanced.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/json/enhanced.js +305 -0
- package/dist/adapters/mysql/tools/json/enhanced.js.map +1 -0
- package/dist/adapters/mysql/tools/json/helpers.d.ts +16 -0
- package/dist/adapters/mysql/tools/json/helpers.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/json/helpers.js +118 -0
- package/dist/adapters/mysql/tools/json/helpers.js.map +1 -0
- package/dist/adapters/mysql/tools/json/index.d.ts +21 -0
- package/dist/adapters/mysql/tools/json/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/json/index.js +49 -0
- package/dist/adapters/mysql/tools/json/index.js.map +1 -0
- package/dist/adapters/mysql/tools/partitioning.d.ts +13 -0
- package/dist/adapters/mysql/tools/partitioning.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/partitioning.js +160 -0
- package/dist/adapters/mysql/tools/partitioning.js.map +1 -0
- package/dist/adapters/mysql/tools/performance/analysis.d.ts +17 -0
- package/dist/adapters/mysql/tools/performance/analysis.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/performance/analysis.js +278 -0
- package/dist/adapters/mysql/tools/performance/analysis.js.map +1 -0
- package/dist/adapters/mysql/tools/performance/index.d.ts +17 -0
- package/dist/adapters/mysql/tools/performance/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/performance/index.js +36 -0
- package/dist/adapters/mysql/tools/performance/index.js.map +1 -0
- package/dist/adapters/mysql/tools/performance/optimization.d.ts +13 -0
- package/dist/adapters/mysql/tools/performance/optimization.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/performance/optimization.js +187 -0
- package/dist/adapters/mysql/tools/performance/optimization.js.map +1 -0
- package/dist/adapters/mysql/tools/proxysql.d.ts +16 -0
- package/dist/adapters/mysql/tools/proxysql.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/proxysql.js +427 -0
- package/dist/adapters/mysql/tools/proxysql.js.map +1 -0
- package/dist/adapters/mysql/tools/replication.d.ts +13 -0
- package/dist/adapters/mysql/tools/replication.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/replication.js +191 -0
- package/dist/adapters/mysql/tools/replication.js.map +1 -0
- package/dist/adapters/mysql/tools/roles.d.ts +7 -0
- package/dist/adapters/mysql/tools/roles.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/roles.js +190 -0
- package/dist/adapters/mysql/tools/roles.js.map +1 -0
- package/dist/adapters/mysql/tools/router.d.ts +16 -0
- package/dist/adapters/mysql/tools/router.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/router.js +369 -0
- package/dist/adapters/mysql/tools/router.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/constraints.d.ts +7 -0
- package/dist/adapters/mysql/tools/schema/constraints.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/constraints.js +67 -0
- package/dist/adapters/mysql/tools/schema/constraints.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/index.d.ts +12 -0
- package/dist/adapters/mysql/tools/schema/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/index.js +29 -0
- package/dist/adapters/mysql/tools/schema/index.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/management.d.ts +15 -0
- package/dist/adapters/mysql/tools/schema/management.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/management.js +113 -0
- package/dist/adapters/mysql/tools/schema/management.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/routines.d.ts +11 -0
- package/dist/adapters/mysql/tools/schema/routines.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/routines.js +98 -0
- package/dist/adapters/mysql/tools/schema/routines.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts +7 -0
- package/dist/adapters/mysql/tools/schema/scheduled_events.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/scheduled_events.js +58 -0
- package/dist/adapters/mysql/tools/schema/scheduled_events.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/triggers.d.ts +7 -0
- package/dist/adapters/mysql/tools/schema/triggers.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/triggers.js +49 -0
- package/dist/adapters/mysql/tools/schema/triggers.js.map +1 -0
- package/dist/adapters/mysql/tools/schema/views.d.ts +11 -0
- package/dist/adapters/mysql/tools/schema/views.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/schema/views.js +78 -0
- package/dist/adapters/mysql/tools/schema/views.js.map +1 -0
- package/dist/adapters/mysql/tools/security/audit.d.ts +20 -0
- package/dist/adapters/mysql/tools/security/audit.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/security/audit.js +233 -0
- package/dist/adapters/mysql/tools/security/audit.js.map +1 -0
- package/dist/adapters/mysql/tools/security/data-protection.d.ts +20 -0
- package/dist/adapters/mysql/tools/security/data-protection.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/security/data-protection.js +243 -0
- package/dist/adapters/mysql/tools/security/data-protection.js.map +1 -0
- package/dist/adapters/mysql/tools/security/encryption.d.ts +20 -0
- package/dist/adapters/mysql/tools/security/encryption.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/security/encryption.js +191 -0
- package/dist/adapters/mysql/tools/security/encryption.js.map +1 -0
- package/dist/adapters/mysql/tools/security/index.d.ts +13 -0
- package/dist/adapters/mysql/tools/security/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/security/index.js +27 -0
- package/dist/adapters/mysql/tools/security/index.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/backup.d.ts +19 -0
- package/dist/adapters/mysql/tools/shell/backup.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/backup.js +187 -0
- package/dist/adapters/mysql/tools/shell/backup.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/common.d.ts +41 -0
- package/dist/adapters/mysql/tools/shell/common.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/common.js +167 -0
- package/dist/adapters/mysql/tools/shell/common.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/data-transfer.d.ts +19 -0
- package/dist/adapters/mysql/tools/shell/data-transfer.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/data-transfer.js +226 -0
- package/dist/adapters/mysql/tools/shell/data-transfer.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/index.d.ts +17 -0
- package/dist/adapters/mysql/tools/shell/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/index.js +34 -0
- package/dist/adapters/mysql/tools/shell/index.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/info.d.ts +11 -0
- package/dist/adapters/mysql/tools/shell/info.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/info.js +40 -0
- package/dist/adapters/mysql/tools/shell/info.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/restore.d.ts +15 -0
- package/dist/adapters/mysql/tools/shell/restore.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/restore.js +135 -0
- package/dist/adapters/mysql/tools/shell/restore.js.map +1 -0
- package/dist/adapters/mysql/tools/shell/utilities.d.ts +11 -0
- package/dist/adapters/mysql/tools/shell/utilities.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/shell/utilities.js +49 -0
- package/dist/adapters/mysql/tools/shell/utilities.js.map +1 -0
- package/dist/adapters/mysql/tools/spatial/geometry.d.ts +17 -0
- package/dist/adapters/mysql/tools/spatial/geometry.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/spatial/geometry.js +87 -0
- package/dist/adapters/mysql/tools/spatial/geometry.js.map +1 -0
- package/dist/adapters/mysql/tools/spatial/index.d.ts +13 -0
- package/dist/adapters/mysql/tools/spatial/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/spatial/index.js +31 -0
- package/dist/adapters/mysql/tools/spatial/index.js.map +1 -0
- package/dist/adapters/mysql/tools/spatial/operations.d.ts +25 -0
- package/dist/adapters/mysql/tools/spatial/operations.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/spatial/operations.js +179 -0
- package/dist/adapters/mysql/tools/spatial/operations.js.map +1 -0
- package/dist/adapters/mysql/tools/spatial/queries.d.ts +25 -0
- package/dist/adapters/mysql/tools/spatial/queries.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/spatial/queries.js +205 -0
- package/dist/adapters/mysql/tools/spatial/queries.js.map +1 -0
- package/dist/adapters/mysql/tools/spatial/setup.d.ts +17 -0
- package/dist/adapters/mysql/tools/spatial/setup.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/spatial/setup.js +85 -0
- package/dist/adapters/mysql/tools/spatial/setup.js.map +1 -0
- package/dist/adapters/mysql/tools/stats/comparative.d.ts +21 -0
- package/dist/adapters/mysql/tools/stats/comparative.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/stats/comparative.js +247 -0
- package/dist/adapters/mysql/tools/stats/comparative.js.map +1 -0
- package/dist/adapters/mysql/tools/stats/descriptive.d.ts +30 -0
- package/dist/adapters/mysql/tools/stats/descriptive.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/stats/descriptive.js +403 -0
- package/dist/adapters/mysql/tools/stats/descriptive.js.map +1 -0
- package/dist/adapters/mysql/tools/stats/index.d.ts +13 -0
- package/dist/adapters/mysql/tools/stats/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/stats/index.js +25 -0
- package/dist/adapters/mysql/tools/stats/index.js.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/activity.d.ts +17 -0
- package/dist/adapters/mysql/tools/sysschema/activity.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/activity.js +107 -0
- package/dist/adapters/mysql/tools/sysschema/activity.js.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/index.d.ts +13 -0
- package/dist/adapters/mysql/tools/sysschema/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/index.js +26 -0
- package/dist/adapters/mysql/tools/sysschema/index.js.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/performance.d.ts +21 -0
- package/dist/adapters/mysql/tools/sysschema/performance.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/performance.js +220 -0
- package/dist/adapters/mysql/tools/sysschema/performance.js.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/resources.d.ts +21 -0
- package/dist/adapters/mysql/tools/sysschema/resources.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/sysschema/resources.js +214 -0
- package/dist/adapters/mysql/tools/sysschema/resources.js.map +1 -0
- package/dist/adapters/mysql/tools/text/fulltext.d.ts +13 -0
- package/dist/adapters/mysql/tools/text/fulltext.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/text/fulltext.js +116 -0
- package/dist/adapters/mysql/tools/text/fulltext.js.map +1 -0
- package/dist/adapters/mysql/tools/text/index.d.ts +17 -0
- package/dist/adapters/mysql/tools/text/index.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/text/index.js +34 -0
- package/dist/adapters/mysql/tools/text/index.js.map +1 -0
- package/dist/adapters/mysql/tools/text/processing.d.ts +15 -0
- package/dist/adapters/mysql/tools/text/processing.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/text/processing.js +203 -0
- package/dist/adapters/mysql/tools/text/processing.js.map +1 -0
- package/dist/adapters/mysql/tools/transactions.d.ts +13 -0
- package/dist/adapters/mysql/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/mysql/tools/transactions.js +224 -0
- package/dist/adapters/mysql/tools/transactions.js.map +1 -0
- package/dist/adapters/mysql/types/proxysql-types.d.ts +156 -0
- package/dist/adapters/mysql/types/proxysql-types.d.ts.map +1 -0
- package/dist/adapters/mysql/types/proxysql-types.js +150 -0
- package/dist/adapters/mysql/types/proxysql-types.js.map +1 -0
- package/dist/adapters/mysql/types/router-types.d.ts +97 -0
- package/dist/adapters/mysql/types/router-types.d.ts.map +1 -0
- package/dist/adapters/mysql/types/router-types.js +89 -0
- package/dist/adapters/mysql/types/router-types.js.map +1 -0
- package/dist/adapters/mysql/types/shell-types.d.ts +109 -0
- package/dist/adapters/mysql/types/shell-types.d.ts.map +1 -0
- package/dist/adapters/mysql/types/shell-types.js +119 -0
- package/dist/adapters/mysql/types/shell-types.js.map +1 -0
- package/dist/adapters/mysql/types.d.ts +257 -0
- package/dist/adapters/mysql/types.d.ts.map +1 -0
- package/dist/adapters/mysql/types.js +245 -0
- package/dist/adapters/mysql/types.js.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts +44 -0
- package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
- package/dist/auth/AuthorizationServerDiscovery.js +110 -0
- package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
- package/dist/auth/OAuthResourceServer.d.ts +42 -0
- package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
- package/dist/auth/OAuthResourceServer.js +75 -0
- package/dist/auth/OAuthResourceServer.js.map +1 -0
- package/dist/auth/TokenValidator.d.ts +36 -0
- package/dist/auth/TokenValidator.d.ts.map +1 -0
- package/dist/auth/TokenValidator.js +125 -0
- package/dist/auth/TokenValidator.js.map +1 -0
- package/dist/auth/errors.d.ts +63 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +102 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/auth/index.d.ts +13 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +15 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +61 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +152 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/scopes.d.ts +61 -0
- package/dist/auth/scopes.d.ts.map +1 -0
- package/dist/auth/scopes.js +167 -0
- package/dist/auth/scopes.js.map +1 -0
- package/dist/auth/types.d.ts +208 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli/args.d.ts +15 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +303 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +141 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants/ServerInstructions.d.ts +17 -0
- package/dist/constants/ServerInstructions.d.ts.map +1 -0
- package/dist/constants/ServerInstructions.js +143 -0
- package/dist/constants/ServerInstructions.js.map +1 -0
- package/dist/filtering/ToolConstants.d.ts +32 -0
- package/dist/filtering/ToolConstants.d.ts.map +1 -0
- package/dist/filtering/ToolConstants.js +290 -0
- package/dist/filtering/ToolConstants.js.map +1 -0
- package/dist/filtering/ToolFilter.d.ts +82 -0
- package/dist/filtering/ToolFilter.d.ts.map +1 -0
- package/dist/filtering/ToolFilter.js +319 -0
- package/dist/filtering/ToolFilter.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/McpLogging.d.ts +81 -0
- package/dist/logging/McpLogging.d.ts.map +1 -0
- package/dist/logging/McpLogging.js +129 -0
- package/dist/logging/McpLogging.js.map +1 -0
- package/dist/logging/index.d.ts +7 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +7 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/pool/ConnectionPool.d.ts +76 -0
- package/dist/pool/ConnectionPool.d.ts.map +1 -0
- package/dist/pool/ConnectionPool.js +238 -0
- package/dist/pool/ConnectionPool.js.map +1 -0
- package/dist/progress/ProgressReporter.d.ts +101 -0
- package/dist/progress/ProgressReporter.d.ts.map +1 -0
- package/dist/progress/ProgressReporter.js +153 -0
- package/dist/progress/ProgressReporter.js.map +1 -0
- package/dist/progress/index.d.ts +7 -0
- package/dist/progress/index.d.ts.map +1 -0
- package/dist/progress/index.js +7 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/server/McpServer.d.ts +86 -0
- package/dist/server/McpServer.d.ts.map +1 -0
- package/dist/server/McpServer.js +289 -0
- package/dist/server/McpServer.js.map +1 -0
- package/dist/transports/http.d.ts +74 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +199 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/index.d.ts +7 -0
- package/dist/transports/index.d.ts.map +1 -0
- package/dist/transports/index.js +7 -0
- package/dist/transports/index.js.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/modules/database.d.ts +101 -0
- package/dist/types/modules/database.d.ts.map +1 -0
- package/dist/types/modules/database.js +8 -0
- package/dist/types/modules/database.js.map +1 -0
- package/dist/types/modules/errors.d.ts +56 -0
- package/dist/types/modules/errors.d.ts.map +1 -0
- package/dist/types/modules/errors.js +82 -0
- package/dist/types/modules/errors.js.map +1 -0
- package/dist/types/modules/oauth.d.ts +66 -0
- package/dist/types/modules/oauth.d.ts.map +1 -0
- package/dist/types/modules/oauth.js +8 -0
- package/dist/types/modules/oauth.js.map +1 -0
- package/dist/types/modules/query.d.ts +126 -0
- package/dist/types/modules/query.d.ts.map +1 -0
- package/dist/types/modules/query.js +8 -0
- package/dist/types/modules/query.js.map +1 -0
- package/dist/types/modules/server.d.ts +31 -0
- package/dist/types/modules/server.d.ts.map +1 -0
- package/dist/types/modules/server.js +7 -0
- package/dist/types/modules/server.js.map +1 -0
- package/dist/types/modules/tools.d.ts +202 -0
- package/dist/types/modules/tools.d.ts.map +1 -0
- package/dist/types/modules/tools.js +8 -0
- package/dist/types/modules/tools.js.map +1 -0
- package/dist/utils/logger.d.ts +116 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +315 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/promptGenerator.d.ts +15 -0
- package/dist/utils/promptGenerator.d.ts.map +1 -0
- package/dist/utils/promptGenerator.js +51 -0
- package/dist/utils/promptGenerator.js.map +1 -0
- package/dist/utils/validators.d.ts +59 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +145 -0
- package/dist/utils/validators.js.map +1 -0
- package/eslint.config.js +86 -0
- package/package.json +66 -0
- package/releases/release-notes.md +134 -0
- package/releases/v2.0.0-release-notes.md +522 -0
- package/releases/v2.1.0-release-notes.md +145 -0
- package/server.json +33 -0
- package/src/__tests__/cli.test.ts +304 -0
- package/src/__tests__/index.test.ts +25 -0
- package/src/__tests__/mocks/adapter.ts +265 -0
- package/src/__tests__/mocks/index.ts +36 -0
- package/src/__tests__/mocks/mysql.ts +135 -0
- package/src/__tests__/perf.test.ts +224 -0
- package/src/__tests__/performance.test.ts +181 -0
- package/src/__tests__/setup.ts +55 -0
- package/src/adapters/DatabaseAdapter.ts +376 -0
- package/src/adapters/__tests__/DatabaseAdapter.test.ts +441 -0
- package/src/adapters/mysql/MySQLAdapter.ts +544 -0
- package/src/adapters/mysql/SchemaManager.ts +298 -0
- package/src/adapters/mysql/__tests__/MySQLAdapter.integration.test.ts +155 -0
- package/src/adapters/mysql/__tests__/MySQLAdapter.test.ts +510 -0
- package/src/adapters/mysql/__tests__/SchemaManager.test.ts +165 -0
- package/src/adapters/mysql/index.ts +8 -0
- package/src/adapters/mysql/prompts/__tests__/indexTuning.test.ts +32 -0
- package/src/adapters/mysql/prompts/__tests__/prompts.test.ts +301 -0
- package/src/adapters/mysql/prompts/backupStrategy.ts +81 -0
- package/src/adapters/mysql/prompts/clusterSetup.ts +118 -0
- package/src/adapters/mysql/prompts/docstoreSetup.ts +123 -0
- package/src/adapters/mysql/prompts/eventScheduler.ts +103 -0
- package/src/adapters/mysql/prompts/healthCheck.ts +56 -0
- package/src/adapters/mysql/prompts/index.ts +329 -0
- package/src/adapters/mysql/prompts/indexTuning.ts +90 -0
- package/src/adapters/mysql/prompts/mysqlshSetup.ts +119 -0
- package/src/adapters/mysql/prompts/proxysqlSetup.ts +115 -0
- package/src/adapters/mysql/prompts/replicationSetup.ts +147 -0
- package/src/adapters/mysql/prompts/routerSetup.ts +106 -0
- package/src/adapters/mysql/prompts/spatialSetup.ts +109 -0
- package/src/adapters/mysql/prompts/sysSchema.ts +109 -0
- package/src/adapters/mysql/resources/__tests__/capabilities.test.ts +52 -0
- package/src/adapters/mysql/resources/__tests__/cluster.test.ts +105 -0
- package/src/adapters/mysql/resources/__tests__/docstore.test.ts +97 -0
- package/src/adapters/mysql/resources/__tests__/events.test.ts +97 -0
- package/src/adapters/mysql/resources/__tests__/health.test.ts +92 -0
- package/src/adapters/mysql/resources/__tests__/indexes.test.ts +106 -0
- package/src/adapters/mysql/resources/__tests__/innodb.test.ts +74 -0
- package/src/adapters/mysql/resources/__tests__/locks.test.ts +110 -0
- package/src/adapters/mysql/resources/__tests__/performance.test.ts +60 -0
- package/src/adapters/mysql/resources/__tests__/pool.test.ts +50 -0
- package/src/adapters/mysql/resources/__tests__/processlist.test.ts +29 -0
- package/src/adapters/mysql/resources/__tests__/replication.test.ts +213 -0
- package/src/adapters/mysql/resources/__tests__/resources.test.ts +117 -0
- package/src/adapters/mysql/resources/__tests__/schema.test.ts +30 -0
- package/src/adapters/mysql/resources/__tests__/spatial.test.ts +47 -0
- package/src/adapters/mysql/resources/__tests__/status.test.ts +58 -0
- package/src/adapters/mysql/resources/__tests__/sysschema.test.ts +62 -0
- package/src/adapters/mysql/resources/__tests__/tables.test.ts +37 -0
- package/src/adapters/mysql/resources/__tests__/variables.test.ts +70 -0
- package/src/adapters/mysql/resources/capabilities.ts +51 -0
- package/src/adapters/mysql/resources/cluster.ts +71 -0
- package/src/adapters/mysql/resources/docstore.ts +69 -0
- package/src/adapters/mysql/resources/events.ts +50 -0
- package/src/adapters/mysql/resources/health.ts +96 -0
- package/src/adapters/mysql/resources/index.ts +77 -0
- package/src/adapters/mysql/resources/indexes.ts +98 -0
- package/src/adapters/mysql/resources/innodb.ts +110 -0
- package/src/adapters/mysql/resources/locks.ts +64 -0
- package/src/adapters/mysql/resources/performance.ts +100 -0
- package/src/adapters/mysql/resources/pool.ts +26 -0
- package/src/adapters/mysql/resources/processlist.ts +23 -0
- package/src/adapters/mysql/resources/replication.ts +120 -0
- package/src/adapters/mysql/resources/schema.ts +23 -0
- package/src/adapters/mysql/resources/spatial.ts +54 -0
- package/src/adapters/mysql/resources/status.ts +27 -0
- package/src/adapters/mysql/resources/sysschema.ts +57 -0
- package/src/adapters/mysql/resources/tables.ts +23 -0
- package/src/adapters/mysql/resources/variables.ts +27 -0
- package/src/adapters/mysql/tools/__tests__/cluster.test.ts +349 -0
- package/src/adapters/mysql/tools/__tests__/core.test.ts +439 -0
- package/src/adapters/mysql/tools/__tests__/docstore.test.ts +459 -0
- package/src/adapters/mysql/tools/__tests__/events.test.ts +515 -0
- package/src/adapters/mysql/tools/__tests__/json_core.test.ts +285 -0
- package/src/adapters/mysql/tools/__tests__/json_enhanced.test.ts +380 -0
- package/src/adapters/mysql/tools/__tests__/json_helpers.test.ts +151 -0
- package/src/adapters/mysql/tools/__tests__/proxysql.test.ts +422 -0
- package/src/adapters/mysql/tools/__tests__/replication.test.ts +478 -0
- package/src/adapters/mysql/tools/__tests__/roles.test.ts +217 -0
- package/src/adapters/mysql/tools/__tests__/router.test.ts +603 -0
- package/src/adapters/mysql/tools/__tests__/security.test.ts +466 -0
- package/src/adapters/mysql/tools/__tests__/security_injection.test.ts +188 -0
- package/src/adapters/mysql/tools/__tests__/security_integration.test.ts +223 -0
- package/src/adapters/mysql/tools/__tests__/spatial.test.ts +333 -0
- package/src/adapters/mysql/tools/__tests__/spatial_handler.test.ts +153 -0
- package/src/adapters/mysql/tools/__tests__/stats.test.ts +577 -0
- package/src/adapters/mysql/tools/__tests__/transactions.test.ts +311 -0
- package/src/adapters/mysql/tools/admin/__tests__/backup.test.ts +400 -0
- package/src/adapters/mysql/tools/admin/__tests__/maintenance.test.ts +343 -0
- package/src/adapters/mysql/tools/admin/__tests__/monitoring.test.ts +402 -0
- package/src/adapters/mysql/tools/admin/backup.ts +238 -0
- package/src/adapters/mysql/tools/admin/index.ts +77 -0
- package/src/adapters/mysql/tools/admin/maintenance.ts +160 -0
- package/src/adapters/mysql/tools/admin/monitoring.ts +229 -0
- package/src/adapters/mysql/tools/cluster/__tests__/group-replication.test.ts +204 -0
- package/src/adapters/mysql/tools/cluster/__tests__/innodb-cluster.test.ts +130 -0
- package/src/adapters/mysql/tools/cluster/group-replication.ts +324 -0
- package/src/adapters/mysql/tools/cluster/index.ts +44 -0
- package/src/adapters/mysql/tools/cluster/innodb-cluster.ts +384 -0
- package/src/adapters/mysql/tools/core.ts +363 -0
- package/src/adapters/mysql/tools/docstore.ts +346 -0
- package/src/adapters/mysql/tools/events.ts +419 -0
- package/src/adapters/mysql/tools/index.ts +60 -0
- package/src/adapters/mysql/tools/json/__tests__/core.test.ts +207 -0
- package/src/adapters/mysql/tools/json/__tests__/enhanced.test.ts +316 -0
- package/src/adapters/mysql/tools/json/__tests__/helpers.test.ts +94 -0
- package/src/adapters/mysql/tools/json/__tests__/validation.test.ts +83 -0
- package/src/adapters/mysql/tools/json/core.ts +309 -0
- package/src/adapters/mysql/tools/json/enhanced.ts +346 -0
- package/src/adapters/mysql/tools/json/helpers.ts +137 -0
- package/src/adapters/mysql/tools/json/index.ts +77 -0
- package/src/adapters/mysql/tools/partitioning.ts +184 -0
- package/src/adapters/mysql/tools/performance/__tests__/analysis.test.ts +302 -0
- package/src/adapters/mysql/tools/performance/__tests__/optimization.test.ts +201 -0
- package/src/adapters/mysql/tools/performance/analysis.ts +322 -0
- package/src/adapters/mysql/tools/performance/index.ts +56 -0
- package/src/adapters/mysql/tools/performance/optimization.ts +218 -0
- package/src/adapters/mysql/tools/proxysql.ts +465 -0
- package/src/adapters/mysql/tools/replication.ts +215 -0
- package/src/adapters/mysql/tools/roles.ts +202 -0
- package/src/adapters/mysql/tools/router.ts +405 -0
- package/src/adapters/mysql/tools/schema/__tests__/constraints.test.ts +91 -0
- package/src/adapters/mysql/tools/schema/__tests__/management.test.ts +122 -0
- package/src/adapters/mysql/tools/schema/__tests__/routines.test.ts +45 -0
- package/src/adapters/mysql/tools/schema/__tests__/scheduled_events.test.ts +44 -0
- package/src/adapters/mysql/tools/schema/__tests__/triggers.test.ts +44 -0
- package/src/adapters/mysql/tools/schema/__tests__/views.test.ts +85 -0
- package/src/adapters/mysql/tools/schema/constraints.ts +77 -0
- package/src/adapters/mysql/tools/schema/index.ts +54 -0
- package/src/adapters/mysql/tools/schema/management.ts +131 -0
- package/src/adapters/mysql/tools/schema/routines.ts +106 -0
- package/src/adapters/mysql/tools/schema/scheduled_events.ts +66 -0
- package/src/adapters/mysql/tools/schema/triggers.ts +57 -0
- package/src/adapters/mysql/tools/schema/views.ts +90 -0
- package/src/adapters/mysql/tools/security/__tests__/audit.test.ts +181 -0
- package/src/adapters/mysql/tools/security/__tests__/data-protection.test.ts +111 -0
- package/src/adapters/mysql/tools/security/__tests__/encryption.test.ts +156 -0
- package/src/adapters/mysql/tools/security/audit.ts +272 -0
- package/src/adapters/mysql/tools/security/data-protection.ts +274 -0
- package/src/adapters/mysql/tools/security/encryption.ts +237 -0
- package/src/adapters/mysql/tools/security/index.ts +45 -0
- package/src/adapters/mysql/tools/shell/__tests__/backup.test.ts +298 -0
- package/src/adapters/mysql/tools/shell/__tests__/common.test.ts +180 -0
- package/src/adapters/mysql/tools/shell/__tests__/data-transfer.test.ts +368 -0
- package/src/adapters/mysql/tools/shell/__tests__/info.test.ts +77 -0
- package/src/adapters/mysql/tools/shell/__tests__/restore.test.ts +187 -0
- package/src/adapters/mysql/tools/shell/__tests__/utilities.test.ts +154 -0
- package/src/adapters/mysql/tools/shell/backup.ts +215 -0
- package/src/adapters/mysql/tools/shell/common.ts +227 -0
- package/src/adapters/mysql/tools/shell/data-transfer.ts +256 -0
- package/src/adapters/mysql/tools/shell/index.ts +49 -0
- package/src/adapters/mysql/tools/shell/info.ts +45 -0
- package/src/adapters/mysql/tools/shell/restore.ts +153 -0
- package/src/adapters/mysql/tools/shell/utilities.ts +56 -0
- package/src/adapters/mysql/tools/spatial/__tests__/geometry.test.ts +101 -0
- package/src/adapters/mysql/tools/spatial/__tests__/operations.test.ts +164 -0
- package/src/adapters/mysql/tools/spatial/__tests__/queries.test.ts +253 -0
- package/src/adapters/mysql/tools/spatial/geometry.ts +106 -0
- package/src/adapters/mysql/tools/spatial/index.ts +54 -0
- package/src/adapters/mysql/tools/spatial/operations.ts +217 -0
- package/src/adapters/mysql/tools/spatial/queries.ts +235 -0
- package/src/adapters/mysql/tools/spatial/setup.ts +104 -0
- package/src/adapters/mysql/tools/stats/__tests__/comparative.test.ts +139 -0
- package/src/adapters/mysql/tools/stats/comparative.ts +272 -0
- package/src/adapters/mysql/tools/stats/descriptive.ts +452 -0
- package/src/adapters/mysql/tools/stats/index.ts +40 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/activity.test.ts +89 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/io_summary_fix.test.ts +24 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/performance.test.ts +142 -0
- package/src/adapters/mysql/tools/sysschema/__tests__/resources.test.ts +142 -0
- package/src/adapters/mysql/tools/sysschema/activity.ts +122 -0
- package/src/adapters/mysql/tools/sysschema/index.ts +43 -0
- package/src/adapters/mysql/tools/sysschema/performance.ts +237 -0
- package/src/adapters/mysql/tools/sysschema/resources.ts +232 -0
- package/src/adapters/mysql/tools/text/__tests__/fulltext.test.ts +153 -0
- package/src/adapters/mysql/tools/text/__tests__/processing.test.ts +201 -0
- package/src/adapters/mysql/tools/text/fulltext.ts +140 -0
- package/src/adapters/mysql/tools/text/index.ts +52 -0
- package/src/adapters/mysql/tools/text/processing.ts +242 -0
- package/src/adapters/mysql/tools/transactions.ts +252 -0
- package/src/adapters/mysql/types/__tests__/shell-types.test.ts +210 -0
- package/src/adapters/mysql/types/proxysql-types.ts +190 -0
- package/src/adapters/mysql/types/router-types.ts +129 -0
- package/src/adapters/mysql/types/shell-types.ts +140 -0
- package/src/adapters/mysql/types.ts +298 -0
- package/src/auth/AuthorizationServerDiscovery.ts +133 -0
- package/src/auth/OAuthResourceServer.ts +87 -0
- package/src/auth/TokenValidator.ts +143 -0
- package/src/auth/__tests__/AuthorizationServerDiscovery.test.ts +312 -0
- package/src/auth/__tests__/OAuthResourceServer.test.ts +183 -0
- package/src/auth/__tests__/TokenValidator.test.ts +351 -0
- package/src/auth/__tests__/errors.test.ts +183 -0
- package/src/auth/__tests__/middleware.test.ts +276 -0
- package/src/auth/__tests__/scopes.test.ts +164 -0
- package/src/auth/errors.ts +116 -0
- package/src/auth/index.ts +30 -0
- package/src/auth/middleware.ts +214 -0
- package/src/auth/scopes.ts +193 -0
- package/src/auth/types.ts +303 -0
- package/src/cli/__tests__/args.test.ts +223 -0
- package/src/cli/__tests__/main.test.ts +193 -0
- package/src/cli/args.ts +343 -0
- package/src/cli.ts +168 -0
- package/src/constants/ServerInstructions.ts +159 -0
- package/src/filtering/ToolConstants.ts +297 -0
- package/src/filtering/ToolFilter.ts +363 -0
- package/src/filtering/__tests__/ToolFilter.test.ts +427 -0
- package/src/index.ts +78 -0
- package/src/logging/McpLogging.ts +163 -0
- package/src/logging/__tests__/McpLogging.test.ts +261 -0
- package/src/logging/index.ts +7 -0
- package/src/pool/ConnectionPool.ts +284 -0
- package/src/pool/__tests__/ConnectionPool.test.ts +448 -0
- package/src/progress/ProgressReporter.ts +179 -0
- package/src/progress/__tests__/ProgressReporter.test.ts +263 -0
- package/src/progress/index.ts +7 -0
- package/src/server/McpServer.ts +341 -0
- package/src/server/__tests__/McpServer.test.ts +368 -0
- package/src/transports/__tests__/http.test.ts +596 -0
- package/src/transports/http.ts +248 -0
- package/src/transports/index.ts +7 -0
- package/src/types/__tests__/types.test.ts +201 -0
- package/src/types/index.ts +58 -0
- package/src/types/modules/database.ts +127 -0
- package/src/types/modules/errors.ts +89 -0
- package/src/types/modules/oauth.ts +91 -0
- package/src/types/modules/query.ts +140 -0
- package/src/types/modules/server.ts +39 -0
- package/src/types/modules/tools.ts +296 -0
- package/src/utils/__tests__/logger.test.ts +422 -0
- package/src/utils/__tests__/validators.test.ts +172 -0
- package/src/utils/logger.ts +426 -0
- package/src/utils/promptGenerator.ts +74 -0
- package/src/utils/validators.ts +181 -0
- package/tsconfig.json +51 -0
- package/vitest.config.ts +26 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MySQL Prompt - ProxySQL Setup
|
|
3
|
+
*
|
|
4
|
+
* Complete ProxySQL configuration guide.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition, RequestContext } from '../../../types/index.js';
|
|
7
|
+
|
|
8
|
+
export function createSetupProxysqlPrompt(): PromptDefinition {
|
|
9
|
+
return {
|
|
10
|
+
name: 'mysql_setup_proxysql',
|
|
11
|
+
description: 'Complete ProxySQL setup and configuration guide',
|
|
12
|
+
arguments: [],
|
|
13
|
+
handler: (_args: Record<string, string>, _context: RequestContext) => {
|
|
14
|
+
return Promise.resolve(`# ProxySQL Setup Guide
|
|
15
|
+
|
|
16
|
+
ProxySQL is a high-performance MySQL proxy supporting connection pooling, query routing, and caching.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
1. **ProxySQL installed** (v2.x recommended)
|
|
21
|
+
2. **MySQL backend servers** accessible
|
|
22
|
+
3. **Admin access** to ProxySQL (default: admin:admin on port 6032)
|
|
23
|
+
|
|
24
|
+
## Step 1: Connect to ProxySQL Admin
|
|
25
|
+
|
|
26
|
+
\`\`\`bash
|
|
27
|
+
mysql -h 127.0.0.1 -P 6032 -u admin -padmin
|
|
28
|
+
\`\`\`
|
|
29
|
+
|
|
30
|
+
## Step 2: Configure Backend Servers
|
|
31
|
+
|
|
32
|
+
\`\`\`sql
|
|
33
|
+
-- Add primary server (hostgroup 0 = writers)
|
|
34
|
+
INSERT INTO mysql_servers (hostgroup_id, hostname, port, weight)
|
|
35
|
+
VALUES (0, 'primary-host', 3306, 1000);
|
|
36
|
+
|
|
37
|
+
-- Add replica servers (hostgroup 1 = readers)
|
|
38
|
+
INSERT INTO mysql_servers (hostgroup_id, hostname, port, weight)
|
|
39
|
+
VALUES (1, 'replica1-host', 3306, 500),
|
|
40
|
+
(1, 'replica2-host', 3306, 500);
|
|
41
|
+
|
|
42
|
+
-- Load and save configuration
|
|
43
|
+
LOAD MYSQL SERVERS TO RUNTIME;
|
|
44
|
+
SAVE MYSQL SERVERS TO DISK;
|
|
45
|
+
\`\`\`
|
|
46
|
+
|
|
47
|
+
## Step 3: Configure Users
|
|
48
|
+
|
|
49
|
+
\`\`\`sql
|
|
50
|
+
-- Add MySQL users that will connect through ProxySQL
|
|
51
|
+
INSERT INTO mysql_users (username, password, default_hostgroup)
|
|
52
|
+
VALUES ('app_user', 'password', 0);
|
|
53
|
+
|
|
54
|
+
LOAD MYSQL USERS TO RUNTIME;
|
|
55
|
+
SAVE MYSQL USERS TO DISK;
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
## Step 4: Configure Query Rules
|
|
59
|
+
|
|
60
|
+
\`\`\`sql
|
|
61
|
+
-- Route SELECT queries to readers (hostgroup 1)
|
|
62
|
+
INSERT INTO mysql_query_rules (rule_id, active, match_pattern, destination_hostgroup)
|
|
63
|
+
VALUES (1, 1, '^SELECT.*FOR UPDATE', 0), -- SELECT FOR UPDATE to writers
|
|
64
|
+
(2, 1, '^SELECT', 1); -- Other SELECTs to readers
|
|
65
|
+
|
|
66
|
+
LOAD MYSQL QUERY RULES TO RUNTIME;
|
|
67
|
+
SAVE MYSQL QUERY RULES TO DISK;
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
## Step 5: Configure MCP Server
|
|
71
|
+
|
|
72
|
+
Set environment variables:
|
|
73
|
+
\`\`\`bash
|
|
74
|
+
PROXYSQL_HOST=localhost
|
|
75
|
+
PROXYSQL_PORT=6032
|
|
76
|
+
PROXYSQL_USER=admin
|
|
77
|
+
PROXYSQL_PASSWORD=admin
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
## Step 6: Verify with MCP Tools
|
|
81
|
+
|
|
82
|
+
Use ProxySQL tools to verify:
|
|
83
|
+
- \`proxysql_status\` - Check ProxySQL is running
|
|
84
|
+
- \`proxysql_servers\` - List configured servers
|
|
85
|
+
- \`proxysql_hostgroups\` - View hostgroup configuration
|
|
86
|
+
- \`proxysql_query_rules\` - Review routing rules
|
|
87
|
+
- \`proxysql_query_digest\` - Analyze query patterns
|
|
88
|
+
|
|
89
|
+
## Connection Pooling
|
|
90
|
+
|
|
91
|
+
ProxySQL provides connection multiplexing:
|
|
92
|
+
\`\`\`sql
|
|
93
|
+
-- Configure max connections per hostgroup
|
|
94
|
+
UPDATE mysql_servers SET max_connections = 100;
|
|
95
|
+
LOAD MYSQL SERVERS TO RUNTIME;
|
|
96
|
+
\`\`\`
|
|
97
|
+
|
|
98
|
+
## Monitoring Queries
|
|
99
|
+
|
|
100
|
+
Use \`proxysql_query_digest\` to find:
|
|
101
|
+
- Slow queries
|
|
102
|
+
- Most frequent queries
|
|
103
|
+
- Queries for caching candidates
|
|
104
|
+
|
|
105
|
+
## Best Practices
|
|
106
|
+
|
|
107
|
+
1. **Connection pooling**: Set max_connections appropriately
|
|
108
|
+
2. **Query caching**: Cache read-heavy, stable queries
|
|
109
|
+
3. **Health checks**: Configure proper health check intervals
|
|
110
|
+
4. **Monitor**: Watch query digest for performance issues
|
|
111
|
+
|
|
112
|
+
Start by checking ProxySQL connection with \`proxysql_status\`.`);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MySQL Prompt - Replication Setup
|
|
3
|
+
*
|
|
4
|
+
* MySQL replication configuration guide.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition, RequestContext } from '../../../types/index.js';
|
|
7
|
+
|
|
8
|
+
export function createSetupReplicationPrompt(): PromptDefinition {
|
|
9
|
+
return {
|
|
10
|
+
name: 'mysql_setup_replication',
|
|
11
|
+
description: 'MySQL replication setup and configuration guide',
|
|
12
|
+
arguments: [
|
|
13
|
+
{ name: 'type', description: 'Replication type: async, semisync, group', required: false }
|
|
14
|
+
],
|
|
15
|
+
handler: (args: Record<string, string>, _context: RequestContext) => {
|
|
16
|
+
const replicationType = args['type'] ?? 'async';
|
|
17
|
+
|
|
18
|
+
return Promise.resolve(`# MySQL Replication Setup Guide
|
|
19
|
+
|
|
20
|
+
Configure MySQL replication for high availability and read scaling.
|
|
21
|
+
|
|
22
|
+
**Replication Type:** ${replicationType}
|
|
23
|
+
|
|
24
|
+
## Step 1: Check Current Replication Status
|
|
25
|
+
|
|
26
|
+
Use \`mysql://replication\` resource to check:
|
|
27
|
+
- Current role (source/replica/standalone)
|
|
28
|
+
- Binary log configuration
|
|
29
|
+
- GTID status
|
|
30
|
+
|
|
31
|
+
## Step 2: Prepare Source Server
|
|
32
|
+
|
|
33
|
+
### Enable Binary Logging
|
|
34
|
+
\`\`\`ini
|
|
35
|
+
# my.cnf on source
|
|
36
|
+
[mysqld]
|
|
37
|
+
server-id = 1
|
|
38
|
+
log_bin = mysql-bin
|
|
39
|
+
binlog_format = ROW
|
|
40
|
+
gtid_mode = ON
|
|
41
|
+
enforce_gtid_consistency = ON
|
|
42
|
+
\`\`\`
|
|
43
|
+
|
|
44
|
+
### Create Replication User
|
|
45
|
+
\`\`\`sql
|
|
46
|
+
CREATE USER 'repl'@'%' IDENTIFIED BY 'replication_password';
|
|
47
|
+
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
|
|
48
|
+
\`\`\`
|
|
49
|
+
|
|
50
|
+
## Step 3: Prepare Replica Server
|
|
51
|
+
|
|
52
|
+
### Configure Replica
|
|
53
|
+
\`\`\`ini
|
|
54
|
+
# my.cnf on replica
|
|
55
|
+
[mysqld]
|
|
56
|
+
server-id = 2
|
|
57
|
+
log_bin = mysql-bin
|
|
58
|
+
relay_log = relay-bin
|
|
59
|
+
gtid_mode = ON
|
|
60
|
+
enforce_gtid_consistency = ON
|
|
61
|
+
read_only = ON
|
|
62
|
+
super_read_only = ON
|
|
63
|
+
${replicationType === 'semisync' ? `
|
|
64
|
+
# Semi-synchronous replication
|
|
65
|
+
rpl_semi_sync_replica_enabled = 1` : ''}
|
|
66
|
+
\`\`\`
|
|
67
|
+
|
|
68
|
+
## Step 4: Initialize Replica
|
|
69
|
+
|
|
70
|
+
### Option A: GTID-based (Recommended)
|
|
71
|
+
\`\`\`sql
|
|
72
|
+
CHANGE REPLICATION SOURCE TO
|
|
73
|
+
SOURCE_HOST = 'source-host',
|
|
74
|
+
SOURCE_PORT = 3306,
|
|
75
|
+
SOURCE_USER = 'repl',
|
|
76
|
+
SOURCE_PASSWORD = 'replication_password',
|
|
77
|
+
SOURCE_AUTO_POSITION = 1;
|
|
78
|
+
|
|
79
|
+
START REPLICA;
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
### Option B: Binary Log Position
|
|
83
|
+
\`\`\`sql
|
|
84
|
+
-- Get position from source
|
|
85
|
+
SHOW BINARY LOG STATUS;
|
|
86
|
+
|
|
87
|
+
-- On replica
|
|
88
|
+
CHANGE REPLICATION SOURCE TO
|
|
89
|
+
SOURCE_HOST = 'source-host',
|
|
90
|
+
SOURCE_PORT = 3306,
|
|
91
|
+
SOURCE_USER = 'repl',
|
|
92
|
+
SOURCE_PASSWORD = 'replication_password',
|
|
93
|
+
SOURCE_LOG_FILE = 'mysql-bin.000001',
|
|
94
|
+
SOURCE_LOG_POS = 123456;
|
|
95
|
+
|
|
96
|
+
START REPLICA;
|
|
97
|
+
\`\`\`
|
|
98
|
+
|
|
99
|
+
## Step 5: Verify Replication
|
|
100
|
+
|
|
101
|
+
Use these tools to verify:
|
|
102
|
+
- \`mysql_replication_status\` - Detailed status
|
|
103
|
+
- \`mysql_replication_lag\` - Check replication delay
|
|
104
|
+
- \`mysql://replication\` - Overall status
|
|
105
|
+
|
|
106
|
+
\`\`\`sql
|
|
107
|
+
SHOW REPLICA STATUS\\G
|
|
108
|
+
\`\`\`
|
|
109
|
+
|
|
110
|
+
Key things to check:
|
|
111
|
+
- Replica_IO_Running: Yes
|
|
112
|
+
- Replica_SQL_Running: Yes
|
|
113
|
+
- Seconds_Behind_Source: 0 (or low)
|
|
114
|
+
|
|
115
|
+
## Semi-Synchronous Replication
|
|
116
|
+
|
|
117
|
+
For reduced data loss risk:
|
|
118
|
+
\`\`\`sql
|
|
119
|
+
-- On source
|
|
120
|
+
INSTALL PLUGIN rpl_semi_sync_source SONAME 'semisync_source.so';
|
|
121
|
+
SET GLOBAL rpl_semi_sync_source_enabled = 1;
|
|
122
|
+
|
|
123
|
+
-- On replica
|
|
124
|
+
INSTALL PLUGIN rpl_semi_sync_replica SONAME 'semisync_replica.so';
|
|
125
|
+
SET GLOBAL rpl_semi_sync_replica_enabled = 1;
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
## Monitoring
|
|
129
|
+
|
|
130
|
+
Regular monitoring should include:
|
|
131
|
+
- Replication lag trends
|
|
132
|
+
- Binary log volume
|
|
133
|
+
- Error log for replication errors
|
|
134
|
+
- GTID gaps
|
|
135
|
+
|
|
136
|
+
## Failover Procedure
|
|
137
|
+
|
|
138
|
+
1. Verify replica is caught up
|
|
139
|
+
2. Stop replication on replica
|
|
140
|
+
3. Promote replica: \`SET GLOBAL read_only = OFF;\`
|
|
141
|
+
4. Update application connection strings
|
|
142
|
+
5. Re-point other replicas to new source
|
|
143
|
+
|
|
144
|
+
Start by checking current replication status with \`mysql://replication\`.`);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MySQL Prompt - Router Setup
|
|
3
|
+
*
|
|
4
|
+
* Complete MySQL Router configuration guide.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition, RequestContext } from '../../../types/index.js';
|
|
7
|
+
|
|
8
|
+
export function createSetupRouterPrompt(): PromptDefinition {
|
|
9
|
+
return {
|
|
10
|
+
name: 'mysql_setup_router',
|
|
11
|
+
description: 'Complete MySQL Router setup and configuration guide',
|
|
12
|
+
arguments: [],
|
|
13
|
+
handler: (_args: Record<string, string>, _context: RequestContext) => {
|
|
14
|
+
return Promise.resolve(`# MySQL Router Setup Guide
|
|
15
|
+
|
|
16
|
+
MySQL Router provides transparent routing between applications and MySQL servers, supporting InnoDB Cluster for high availability.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
1. **MySQL Router installed** (comes with MySQL 8.0+)
|
|
21
|
+
2. **InnoDB Cluster** (optional but recommended for HA)
|
|
22
|
+
3. **Admin credentials** for MySQL servers
|
|
23
|
+
|
|
24
|
+
## Step 1: Bootstrap Router (InnoDB Cluster)
|
|
25
|
+
|
|
26
|
+
If using InnoDB Cluster:
|
|
27
|
+
\`\`\`bash
|
|
28
|
+
mysqlrouter --bootstrap admin@primary-host:3306 --user=mysqlrouter
|
|
29
|
+
\`\`\`
|
|
30
|
+
|
|
31
|
+
This auto-configures Router to work with your cluster.
|
|
32
|
+
|
|
33
|
+
## Step 2: Manual Configuration
|
|
34
|
+
|
|
35
|
+
For manual setup, edit \`mysqlrouter.conf\`:
|
|
36
|
+
\`\`\`ini
|
|
37
|
+
[routing:primary]
|
|
38
|
+
bind_address = 0.0.0.0
|
|
39
|
+
bind_port = 6446
|
|
40
|
+
destinations = primary-host:3306
|
|
41
|
+
routing_strategy = first-available
|
|
42
|
+
mode = read-write
|
|
43
|
+
|
|
44
|
+
[routing:secondary]
|
|
45
|
+
bind_address = 0.0.0.0
|
|
46
|
+
bind_port = 6447
|
|
47
|
+
destinations = secondary1:3306,secondary2:3306
|
|
48
|
+
routing_strategy = round-robin
|
|
49
|
+
mode = read-only
|
|
50
|
+
\`\`\`
|
|
51
|
+
|
|
52
|
+
## Step 3: Enable REST API (for monitoring)
|
|
53
|
+
|
|
54
|
+
Add to mysqlrouter.conf:
|
|
55
|
+
\`\`\`ini
|
|
56
|
+
[rest_api]
|
|
57
|
+
require_realm = default_realm
|
|
58
|
+
|
|
59
|
+
[rest_router]
|
|
60
|
+
require_realm = default_realm
|
|
61
|
+
|
|
62
|
+
[rest_metadata_cache]
|
|
63
|
+
require_realm = default_realm
|
|
64
|
+
|
|
65
|
+
[http_server]
|
|
66
|
+
port = 8443
|
|
67
|
+
ssl = 1
|
|
68
|
+
ssl_cert = /path/to/router-cert.pem
|
|
69
|
+
ssl_key = /path/to/router-key.pem
|
|
70
|
+
\`\`\`
|
|
71
|
+
|
|
72
|
+
## Step 4: Configure MCP Server
|
|
73
|
+
|
|
74
|
+
Set environment variables:
|
|
75
|
+
\`\`\`bash
|
|
76
|
+
MYSQL_ROUTER_URL=https://localhost:8443
|
|
77
|
+
MYSQL_ROUTER_USERNAME=admin
|
|
78
|
+
MYSQL_ROUTER_PASSWORD=your_password
|
|
79
|
+
MYSQL_ROUTER_INSECURE=true # For self-signed certs
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
## Step 5: Verify with MCP Tools
|
|
83
|
+
|
|
84
|
+
Use Router tools to verify:
|
|
85
|
+
- \`mysql_router_status\` - Check Router is running
|
|
86
|
+
- \`mysql_router_routes\` - List configured routes
|
|
87
|
+
- \`mysql_router_route_health\` - Check route health
|
|
88
|
+
|
|
89
|
+
## Routing Strategies
|
|
90
|
+
|
|
91
|
+
| Strategy | Description | Use Case |
|
|
92
|
+
|----------|-------------|----------|
|
|
93
|
+
| first-available | Routes to first healthy server | Primary writes |
|
|
94
|
+
| round-robin | Distributes across all servers | Read scaling |
|
|
95
|
+
| round-robin-with-fallback | Round-robin with fallback | HA reads |
|
|
96
|
+
|
|
97
|
+
## Common Issues
|
|
98
|
+
|
|
99
|
+
1. **Connection refused**: Check Router is running and ports are open
|
|
100
|
+
2. **SSL errors**: Use MYSQL_ROUTER_INSECURE=true for self-signed certs
|
|
101
|
+
3. **No destinations**: Verify backend servers are healthy
|
|
102
|
+
|
|
103
|
+
Start by checking if MySQL Router is installed and running.`);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MySQL Prompt - Spatial/GIS Setup
|
|
3
|
+
*
|
|
4
|
+
* Complete Spatial data and GIS setup guide.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition, RequestContext } from '../../../types/index.js';
|
|
7
|
+
|
|
8
|
+
export function createSetupSpatialPrompt(): PromptDefinition {
|
|
9
|
+
return {
|
|
10
|
+
name: 'mysql_setup_spatial',
|
|
11
|
+
description: 'Complete MySQL Spatial/GIS setup and usage guide',
|
|
12
|
+
arguments: [],
|
|
13
|
+
handler: (_args: Record<string, string>, _context: RequestContext) => {
|
|
14
|
+
return Promise.resolve(`# MySQL Spatial/GIS Setup Guide
|
|
15
|
+
|
|
16
|
+
MySQL provides native spatial data support with geometry types and spatial functions (ST_*).
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
1. **MySQL 5.7+** for full spatial support
|
|
21
|
+
2. **MySQL 8.0+** for proper SRID enforcement
|
|
22
|
+
3. **InnoDB engine** for spatial indexes
|
|
23
|
+
|
|
24
|
+
## Step 1: Create Spatial Columns
|
|
25
|
+
|
|
26
|
+
\`\`\`sql
|
|
27
|
+
CREATE TABLE locations (
|
|
28
|
+
id INT PRIMARY KEY AUTO_INCREMENT,
|
|
29
|
+
name VARCHAR(100),
|
|
30
|
+
location POINT NOT NULL SRID 4326,
|
|
31
|
+
boundary POLYGON SRID 4326,
|
|
32
|
+
SPATIAL INDEX (location)
|
|
33
|
+
);
|
|
34
|
+
\`\`\`
|
|
35
|
+
|
|
36
|
+
## Step 2: Insert Spatial Data
|
|
37
|
+
|
|
38
|
+
\`\`\`sql
|
|
39
|
+
-- Using WKT (Well-Known Text)
|
|
40
|
+
INSERT INTO locations (name, location) VALUES
|
|
41
|
+
('Office', ST_GeomFromText('POINT(40.7484 -73.9857)', 4326));
|
|
42
|
+
|
|
43
|
+
-- Using GeoJSON
|
|
44
|
+
INSERT INTO locations (name, location) VALUES
|
|
45
|
+
('Store', ST_GeomFromGeoJSON('{"type":"Point","coordinates":[-73.9857,40.7484]}'));
|
|
46
|
+
\`\`\`
|
|
47
|
+
|
|
48
|
+
## Step 3: Query Spatial Data
|
|
49
|
+
|
|
50
|
+
\`\`\`sql
|
|
51
|
+
-- Find points within distance (meters for SRID 4326)
|
|
52
|
+
SELECT name, ST_Distance_Sphere(
|
|
53
|
+
location,
|
|
54
|
+
ST_GeomFromText('POINT(40.7128 -74.0060)', 4326)
|
|
55
|
+
) AS distance_meters
|
|
56
|
+
FROM locations
|
|
57
|
+
ORDER BY distance_meters
|
|
58
|
+
LIMIT 10;
|
|
59
|
+
|
|
60
|
+
-- Points within polygon
|
|
61
|
+
SELECT * FROM locations
|
|
62
|
+
WHERE ST_Contains(
|
|
63
|
+
ST_GeomFromText('POLYGON((...))'),
|
|
64
|
+
location
|
|
65
|
+
);
|
|
66
|
+
\`\`\`
|
|
67
|
+
|
|
68
|
+
## Common SRIDs
|
|
69
|
+
|
|
70
|
+
| SRID | Name | Use Case |
|
|
71
|
+
|------|------|----------|
|
|
72
|
+
| 4326 | WGS 84 | GPS coordinates (lon/lat) |
|
|
73
|
+
| 3857 | Web Mercator | Web maps |
|
|
74
|
+
| 0 | Planar | Local/metric calculations |
|
|
75
|
+
|
|
76
|
+
## Available MCP Tools
|
|
77
|
+
|
|
78
|
+
| Tool | Description |
|
|
79
|
+
|------|-------------|
|
|
80
|
+
| \`mysql_spatial_create_column\` | Add geometry column |
|
|
81
|
+
| \`mysql_spatial_create_index\` | Create SPATIAL index |
|
|
82
|
+
| \`mysql_spatial_point\` | Create POINT geometry |
|
|
83
|
+
| \`mysql_spatial_polygon\` | Create POLYGON geometry |
|
|
84
|
+
| \`mysql_spatial_distance\` | Calculate distance |
|
|
85
|
+
| \`mysql_spatial_distance_sphere\` | Spherical distance |
|
|
86
|
+
| \`mysql_spatial_contains\` | ST_Contains check |
|
|
87
|
+
| \`mysql_spatial_within\` | ST_Within check |
|
|
88
|
+
| \`mysql_spatial_intersection\` | Find intersection |
|
|
89
|
+
| \`mysql_spatial_buffer\` | Create buffer zone |
|
|
90
|
+
| \`mysql_spatial_transform\` | Transform SRID |
|
|
91
|
+
| \`mysql_spatial_geojson\` | Convert GeoJSON |
|
|
92
|
+
|
|
93
|
+
## Best Practices
|
|
94
|
+
|
|
95
|
+
1. **Always specify SRID** for geographic data
|
|
96
|
+
2. **Use SRID 4326** for GPS/lon-lat coordinates
|
|
97
|
+
3. **Index spatial columns** for query performance
|
|
98
|
+
4. **Use ST_Distance_Sphere** for earth distance calculations
|
|
99
|
+
|
|
100
|
+
## Common Issues
|
|
101
|
+
|
|
102
|
+
1. **SRID mismatch**: Ensure all geometries use same SRID
|
|
103
|
+
2. **Coordinate order**: MySQL 8.0+ with SRID 4326 uses (X, Y) = (latitude, longitude) per EPSG standard
|
|
104
|
+
3. **Index not used**: Check column is NOT NULL
|
|
105
|
+
|
|
106
|
+
Start by creating a spatial column with \`mysql_spatial_create_column\`.`);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MySQL Prompt - sys Schema Guide
|
|
3
|
+
*
|
|
4
|
+
* Complete sys schema usage guide for diagnostics.
|
|
5
|
+
*/
|
|
6
|
+
import type { PromptDefinition, RequestContext } from '../../../types/index.js';
|
|
7
|
+
|
|
8
|
+
export function createSysSchemaGuidePrompt(): PromptDefinition {
|
|
9
|
+
return {
|
|
10
|
+
name: 'mysql_sys_schema_guide',
|
|
11
|
+
description: 'Complete MySQL sys schema usage guide for diagnostics and troubleshooting',
|
|
12
|
+
arguments: [],
|
|
13
|
+
handler: (_args: Record<string, string>, _context: RequestContext) => {
|
|
14
|
+
return Promise.resolve(`# MySQL sys Schema Guide
|
|
15
|
+
|
|
16
|
+
The sys schema provides human-readable views built on Performance Schema data for database diagnostics.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
1. **MySQL 5.7+** (sys schema included by default)
|
|
21
|
+
2. **Performance Schema enabled** (default ON in 5.7+)
|
|
22
|
+
3. **SELECT privilege** on sys schema
|
|
23
|
+
|
|
24
|
+
## Key Views for Diagnostics
|
|
25
|
+
|
|
26
|
+
### User Activity
|
|
27
|
+
\`\`\`sql
|
|
28
|
+
-- Who is consuming resources?
|
|
29
|
+
SELECT * FROM sys.user_summary;
|
|
30
|
+
SELECT * FROM sys.user_summary_by_file_io;
|
|
31
|
+
SELECT * FROM sys.user_summary_by_statement_type;
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
### Statement Analysis
|
|
35
|
+
\`\`\`sql
|
|
36
|
+
-- Find slow queries
|
|
37
|
+
SELECT * FROM sys.statements_with_runtimes_in_95th_percentile;
|
|
38
|
+
|
|
39
|
+
-- Full table scans
|
|
40
|
+
SELECT * FROM sys.statements_with_full_table_scans;
|
|
41
|
+
|
|
42
|
+
-- Temporary tables
|
|
43
|
+
SELECT * FROM sys.statements_with_temp_tables;
|
|
44
|
+
\`\`\`
|
|
45
|
+
|
|
46
|
+
### I/O Analysis
|
|
47
|
+
\`\`\`sql
|
|
48
|
+
-- Hot tables by I/O
|
|
49
|
+
SELECT * FROM sys.io_global_by_file_by_bytes;
|
|
50
|
+
|
|
51
|
+
-- Wait analysis
|
|
52
|
+
SELECT * FROM sys.wait_classes_global_by_avg_latency;
|
|
53
|
+
\`\`\`
|
|
54
|
+
|
|
55
|
+
### Lock Analysis
|
|
56
|
+
\`\`\`sql
|
|
57
|
+
-- Current lock waits
|
|
58
|
+
SELECT * FROM sys.innodb_lock_waits;
|
|
59
|
+
|
|
60
|
+
-- Blocked transactions
|
|
61
|
+
SELECT * FROM sys.schema_table_lock_waits;
|
|
62
|
+
\`\`\`
|
|
63
|
+
|
|
64
|
+
### Memory Analysis
|
|
65
|
+
\`\`\`sql
|
|
66
|
+
-- Memory by user
|
|
67
|
+
SELECT * FROM sys.memory_by_user_by_current_bytes;
|
|
68
|
+
|
|
69
|
+
-- Memory by thread
|
|
70
|
+
SELECT * FROM sys.memory_by_thread_by_current_bytes;
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
## Available MCP Tools
|
|
74
|
+
|
|
75
|
+
| Tool | Description |
|
|
76
|
+
|------|-------------|
|
|
77
|
+
| \`mysql_sys_user_summary\` | User activity summary |
|
|
78
|
+
| \`mysql_sys_io_summary\` | I/O by file/table |
|
|
79
|
+
| \`mysql_sys_statement_summary\` | Statement statistics |
|
|
80
|
+
| \`mysql_sys_wait_summary\` | Wait event analysis |
|
|
81
|
+
| \`mysql_sys_innodb_lock_waits\` | Lock contention |
|
|
82
|
+
| \`mysql_sys_schema_stats\` | Schema object stats |
|
|
83
|
+
| \`mysql_sys_host_summary\` | Host connection summary |
|
|
84
|
+
| \`mysql_sys_memory_summary\` | Memory usage |
|
|
85
|
+
|
|
86
|
+
## Useful Procedures
|
|
87
|
+
|
|
88
|
+
\`\`\`sql
|
|
89
|
+
-- Reset statement stats
|
|
90
|
+
CALL sys.ps_truncate_all_tables(FALSE);
|
|
91
|
+
|
|
92
|
+
-- Kill a connection
|
|
93
|
+
CALL sys.kill_connection(thread_id);
|
|
94
|
+
|
|
95
|
+
-- Get statement digest
|
|
96
|
+
SELECT sys.format_statement('SELECT * FROM users WHERE id = 1');
|
|
97
|
+
\`\`\`
|
|
98
|
+
|
|
99
|
+
## Best Practices
|
|
100
|
+
|
|
101
|
+
1. **Don't query in production peaks** - sys views can be heavy
|
|
102
|
+
2. **Use x$ views for exact values** (no formatting)
|
|
103
|
+
3. **Reset stats after schema changes**
|
|
104
|
+
4. **Monitor performance_schema memory**
|
|
105
|
+
|
|
106
|
+
Start by checking overall user activity with \`mysql_sys_user_summary\`.`);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
3
|
+
import { createCapabilitiesResource } from '../capabilities.js';
|
|
4
|
+
import type { MySQLAdapter } from '../../MySQLAdapter.js';
|
|
5
|
+
import { createMockMySQLAdapter, createMockRequestContext, createMockQueryResult } from '../../../../__tests__/mocks/index.js';
|
|
6
|
+
|
|
7
|
+
interface CapabilitiesResult {
|
|
8
|
+
server: { version: string; features: { json: boolean; fulltext: boolean; partitioning: boolean } };
|
|
9
|
+
toolGroups: unknown[];
|
|
10
|
+
metaGroups: unknown[];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
describe('Capabilities Resource', () => {
|
|
14
|
+
let mockAdapter: ReturnType<typeof createMockMySQLAdapter>;
|
|
15
|
+
let mockContext: ReturnType<typeof createMockRequestContext>;
|
|
16
|
+
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
vi.clearAllMocks();
|
|
19
|
+
mockAdapter = createMockMySQLAdapter();
|
|
20
|
+
mockContext = createMockRequestContext();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('should return server capabilities', async () => {
|
|
24
|
+
mockAdapter.executeQuery.mockResolvedValue(createMockQueryResult([{ version: '8.0.35' }]));
|
|
25
|
+
|
|
26
|
+
const resource = createCapabilitiesResource(mockAdapter as unknown as MySQLAdapter);
|
|
27
|
+
const result = await resource.handler('mysql://capabilities', mockContext) as CapabilitiesResult;
|
|
28
|
+
|
|
29
|
+
expect(result).toHaveProperty('server');
|
|
30
|
+
expect(result.server).toHaveProperty('version');
|
|
31
|
+
expect(result).toHaveProperty('toolGroups');
|
|
32
|
+
expect(result).toHaveProperty('metaGroups');
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('should include server features', async () => {
|
|
36
|
+
mockAdapter.executeQuery.mockResolvedValue(createMockQueryResult([{ version: '8.0.35' }]));
|
|
37
|
+
|
|
38
|
+
const resource = createCapabilitiesResource(mockAdapter as unknown as MySQLAdapter);
|
|
39
|
+
const result = await resource.handler('mysql://capabilities', mockContext) as CapabilitiesResult;
|
|
40
|
+
|
|
41
|
+
expect(result.server).toHaveProperty('features');
|
|
42
|
+
expect(result.server.features).toHaveProperty('json');
|
|
43
|
+
expect(result.server.features).toHaveProperty('fulltext');
|
|
44
|
+
expect(result.server.features).toHaveProperty('partitioning');
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
it('should have correct metadata', () => {
|
|
48
|
+
const resource = createCapabilitiesResource(mockAdapter as unknown as MySQLAdapter);
|
|
49
|
+
expect(resource.uri).toBe('mysql://capabilities');
|
|
50
|
+
expect(resource.mimeType).toBe('application/json');
|
|
51
|
+
});
|
|
52
|
+
});
|