db-mcp 1.1.1 → 3.0.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/README.md +247 -169
- package/dist/.tsbuildinfo +1 -0
- package/dist/adapters/database-adapter.d.ts +173 -0
- package/dist/adapters/database-adapter.d.ts.map +1 -0
- package/dist/adapters/query-validation.d.ts +20 -0
- package/dist/adapters/query-validation.d.ts.map +1 -0
- package/dist/adapters/registration/index.d.ts +4 -0
- package/dist/adapters/registration/index.d.ts.map +1 -0
- package/dist/adapters/registration/prompts.d.ts +7 -0
- package/dist/adapters/registration/prompts.d.ts.map +1 -0
- package/dist/adapters/registration/resources.d.ts +7 -0
- package/dist/adapters/registration/resources.d.ts.map +1 -0
- package/dist/adapters/registration/tools.d.ts +9 -0
- package/dist/adapters/registration/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/index.d.ts +9 -0
- package/dist/adapters/sqlite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/json-utils.d.ts +100 -0
- package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/analysis.d.ts +23 -0
- package/dist/adapters/sqlite/prompts/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/index.d.ts +16 -0
- package/dist/adapters/sqlite/prompts/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/query.d.ts +19 -0
- package/dist/adapters/sqlite/prompts/query.d.ts.map +1 -0
- package/dist/adapters/sqlite/prompts/schema.d.ts +20 -0
- package/dist/adapters/sqlite/prompts/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/query-executor.d.ts +38 -0
- package/dist/adapters/sqlite/query-executor.d.ts.map +1 -0
- package/dist/adapters/sqlite/resources.d.ts +13 -0
- package/dist/adapters/sqlite/resources.d.ts.map +1 -0
- package/dist/adapters/sqlite/schema-manager.d.ts +69 -0
- package/dist/adapters/sqlite/schema-manager.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts +459 -0
- package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/codemode.d.ts +30 -0
- package/dist/adapters/sqlite/schemas/codemode.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/common.d.ts +9 -0
- package/dist/adapters/sqlite/schemas/common.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/core.d.ts +530 -0
- package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/error-mixin.d.ts +10 -0
- package/dist/adapters/sqlite/schemas/error-mixin.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts +106 -0
- package/dist/adapters/sqlite/schemas/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/geo.d.ts +135 -0
- package/dist/adapters/sqlite/schemas/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/index.d.ts +23 -0
- package/dist/adapters/sqlite/schemas/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/introspection.d.ts +583 -0
- package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/json.d.ts +849 -0
- package/dist/adapters/sqlite/schemas/json.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/migration.d.ts +220 -0
- package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/native.d.ts +235 -0
- package/dist/adapters/sqlite/schemas/native.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/server.d.ts +13 -0
- package/dist/adapters/sqlite/schemas/server.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts +114 -0
- package/dist/adapters/sqlite/schemas/spatialite.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/stats.d.ts +780 -0
- package/dist/adapters/sqlite/schemas/stats.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/text.d.ts +570 -0
- package/dist/adapters/sqlite/schemas/text.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/vector.d.ts +252 -0
- package/dist/adapters/sqlite/schemas/vector.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/virtual.d.ts +257 -0
- package/dist/adapters/sqlite/schemas/virtual.d.ts.map +1 -0
- package/dist/adapters/sqlite/schemas/where.d.ts +20 -0
- package/dist/adapters/sqlite/schemas/where.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts +13 -0
- package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts +7 -0
- package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts.map +1 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts +138 -0
- package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts +11 -0
- package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/index.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts +7 -0
- package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/admin/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts +37 -0
- package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/reindex.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/reindex.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/verify.d.ts +13 -0
- package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/admin/wal.d.ts +10 -0
- package/dist/adapters/sqlite/tools/admin/wal.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/codemode.d.ts +22 -0
- package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/column-validation.d.ts +26 -0
- package/dist/adapters/sqlite/tools/column-validation.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/alter-table.d.ts +11 -0
- package/dist/adapters/sqlite/tools/core/alter-table.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/constraints.d.ts +10 -0
- package/dist/adapters/sqlite/tools/core/constraints.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/convenience.d.ts +29 -0
- package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/datetime.d.ts +11 -0
- package/dist/adapters/sqlite/tools/core/datetime.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/index.d.ts +14 -0
- package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/indexes.d.ts +20 -0
- package/dist/adapters/sqlite/tools/core/indexes.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/queries.d.ts +16 -0
- package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/tables.d.ts +37 -0
- package/dist/adapters/sqlite/tools/core/tables.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/core/triggers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/core/triggers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
- package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
- package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/index.d.ts +33 -0
- package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts +11 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts +40 -0
- package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts +10 -0
- package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts +44 -0
- package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts +9 -0
- package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts +12 -0
- package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/introspection/index.d.ts +17 -0
- package/dist/adapters/sqlite/tools/introspection/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts +21 -0
- package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/index.d.ts +17 -0
- package/dist/adapters/sqlite/tools/json-helpers/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-helpers/read.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-helpers/write.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-helpers/write.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts +39 -0
- package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/diff.d.ts +11 -0
- package/dist/adapters/sqlite/tools/json-operations/diff.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/json-operations/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-operations/query.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/security.d.ts +19 -0
- package/dist/adapters/sqlite/tools/json-operations/security.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/json-operations/transform.d.ts +24 -0
- package/dist/adapters/sqlite/tools/json-operations/transform.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts +34 -0
- package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/index.d.ts +15 -0
- package/dist/adapters/sqlite/tools/migration/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts +7 -0
- package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts +4 -0
- package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/advanced.d.ts +28 -0
- package/dist/adapters/sqlite/tools/stats/advanced.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts +22 -0
- package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/basic.d.ts +32 -0
- package/dist/adapters/sqlite/tools/stats/basic.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/helpers.d.ts +27 -0
- package/dist/adapters/sqlite/tools/stats/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/index.d.ts +12 -0
- package/dist/adapters/sqlite/tools/stats/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/index.d.ts +4 -0
- package/dist/adapters/sqlite/tools/stats/inference/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts +7 -0
- package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts +17 -0
- package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts +15 -0
- package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/formatting.d.ts +48 -0
- package/dist/adapters/sqlite/tools/text/formatting.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts +22 -0
- package/dist/adapters/sqlite/tools/text/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/text/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/regex.d.ts +21 -0
- package/dist/adapters/sqlite/tools/text/regex.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts +17 -0
- package/dist/adapters/sqlite/tools/text/search.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/sentiment.d.ts +13 -0
- package/dist/adapters/sqlite/tools/text/sentiment.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/text/validate.d.ts +11 -0
- package/dist/adapters/sqlite/tools/text/validate.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/helpers.d.ts +11 -0
- package/dist/adapters/sqlite/tools/vector/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/index.d.ts +14 -0
- package/dist/adapters/sqlite/tools/vector/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts +28 -0
- package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/search.d.ts +16 -0
- package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/storage.d.ts +24 -0
- package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/vector/tools.d.ts +9 -0
- package/dist/adapters/sqlite/tools/vector/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/analysis.d.ts +24 -0
- package/dist/adapters/sqlite/tools/virtual/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/extensions.d.ts +13 -0
- package/dist/adapters/sqlite/tools/virtual/extensions.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/helpers.d.ts +18 -0
- package/dist/adapters/sqlite/tools/virtual/helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/index.d.ts +10 -0
- package/dist/adapters/sqlite/tools/virtual/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/views.d.ts +21 -0
- package/dist/adapters/sqlite/tools/virtual/views.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts +6 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts +4 -0
- package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts.map +1 -0
- package/dist/adapters/sqlite/types.d.ts +89 -0
- package/dist/adapters/sqlite/types.d.ts.map +1 -0
- package/dist/adapters/sqlite-helpers.d.ts +51 -0
- package/dist/adapters/sqlite-helpers.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/extensions.d.ts +17 -0
- package/dist/adapters/sqlite-native/extensions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/index.d.ts +11 -0
- package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/native-query-executor.d.ts +24 -0
- package/dist/adapters/sqlite-native/native-query-executor.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts +160 -0
- package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/registration/index.d.ts +12 -0
- package/dist/adapters/sqlite-native/registration/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts +23 -0
- package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts +15 -0
- package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts +22 -0
- package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts +78 -0
- package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts +30 -0
- package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
- package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts +7 -0
- package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts +36 -0
- package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -0
- package/dist/audit/backup-manager.d.ts +90 -0
- package/dist/audit/backup-manager.d.ts.map +1 -0
- package/dist/audit/index.d.ts +11 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/interceptor.d.ts +54 -0
- package/dist/audit/interceptor.d.ts.map +1 -0
- package/dist/audit/logger.d.ts +62 -0
- package/dist/audit/logger.d.ts.map +1 -0
- package/dist/audit/types.d.ts +112 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/auth/auth-context.d.ts +28 -0
- package/dist/auth/auth-context.d.ts.map +1 -0
- package/dist/auth/authorization-server-discovery.d.ts +90 -0
- package/dist/auth/authorization-server-discovery.d.ts.map +1 -0
- package/dist/auth/errors.d.ts +74 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/middleware/core.d.ts +22 -0
- package/dist/auth/middleware/core.d.ts.map +1 -0
- package/dist/auth/middleware/express-auth.d.ts +13 -0
- package/dist/auth/middleware/express-auth.d.ts.map +1 -0
- package/dist/auth/middleware/express-scopes.d.ts +6 -0
- package/dist/auth/middleware/express-scopes.d.ts.map +1 -0
- package/dist/auth/middleware/extraction.d.ts +2 -0
- package/dist/auth/middleware/extraction.d.ts.map +1 -0
- package/dist/auth/middleware/index.d.ts +5 -0
- package/dist/auth/middleware/index.d.ts.map +1 -0
- package/dist/auth/oauth-resource-server.d.ts +74 -0
- package/dist/auth/oauth-resource-server.d.ts.map +1 -0
- package/dist/auth/scope-map.d.ts +24 -0
- package/dist/auth/scope-map.d.ts.map +1 -0
- package/dist/auth/scopes/constants.d.ts +40 -0
- package/dist/auth/scopes/constants.d.ts.map +1 -0
- package/dist/auth/scopes/display.d.ts +5 -0
- package/dist/auth/scopes/display.d.ts.map +1 -0
- package/dist/auth/scopes/enforcement.d.ts +27 -0
- package/dist/auth/scopes/enforcement.d.ts.map +1 -0
- package/dist/auth/scopes/index.d.ts +6 -0
- package/dist/auth/scopes/index.d.ts.map +1 -0
- package/dist/auth/scopes/mapping.d.ts +39 -0
- package/dist/auth/scopes/mapping.d.ts.map +1 -0
- package/dist/auth/scopes/validation.d.ts +27 -0
- package/dist/auth/scopes/validation.d.ts.map +1 -0
- package/dist/auth/token-validator.d.ts +63 -0
- package/dist/auth/token-validator.d.ts.map +1 -0
- package/dist/auth/transport-agnostic.d.ts +11 -0
- package/dist/auth/transport-agnostic.d.ts.map +1 -0
- package/dist/auth/types.d.ts +257 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-E5IESRTK.js +489 -0
- package/dist/{chunk-TVIZ3XJH.js → chunk-FR65YPAH.js} +8509 -3925
- package/dist/{chunk-AOUL5SHS.js → chunk-L552U3QS.js} +880 -252
- package/dist/chunk-THATOQRT.js +2624 -0
- package/dist/chunk-W5WQVNVX.js +568 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +114 -19
- package/dist/codemode/api-constants.d.ts +40 -0
- package/dist/codemode/api-constants.d.ts.map +1 -0
- package/dist/codemode/api.d.ts +70 -0
- package/dist/codemode/api.d.ts.map +1 -0
- package/dist/codemode/auto-return.d.ts +25 -0
- package/dist/codemode/auto-return.d.ts.map +1 -0
- package/dist/codemode/index.d.ts +12 -0
- package/dist/codemode/index.d.ts.map +1 -0
- package/dist/codemode/sandbox-factory.d.ts +72 -0
- package/dist/codemode/sandbox-factory.d.ts.map +1 -0
- package/dist/codemode/sandbox.d.ts +54 -0
- package/dist/codemode/sandbox.d.ts.map +1 -0
- package/dist/codemode/security.d.ts +45 -0
- package/dist/codemode/security.d.ts.map +1 -0
- package/dist/codemode/types.d.ts +167 -0
- package/dist/codemode/types.d.ts.map +1 -0
- package/dist/constants/server-instructions.d.ts +22 -0
- package/dist/constants/server-instructions.d.ts.map +1 -0
- package/dist/filtering/tool-constants.d.ts +45 -0
- package/dist/filtering/tool-constants.d.ts.map +1 -0
- package/dist/filtering/tool-filter.d.ts +82 -0
- package/dist/filtering/tool-filter.d.ts.map +1 -0
- package/dist/{http-VSB7DBJR.js → http-HWTUVFIA.js} +587 -358
- package/dist/index.d.ts +9 -842
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -5
- package/dist/server/mcp-server.d.ts +66 -0
- package/dist/server/mcp-server.d.ts.map +1 -0
- package/dist/server/registration/audit-tools.d.ts +13 -0
- package/dist/server/registration/audit-tools.d.ts.map +1 -0
- package/dist/server/registration/built-in-tools.d.ts +8 -0
- package/dist/server/registration/built-in-tools.d.ts.map +1 -0
- package/dist/server/registration/help-resources.d.ts +7 -0
- package/dist/server/registration/help-resources.d.ts.map +1 -0
- package/dist/server/registration/index.d.ts +4 -0
- package/dist/server/registration/index.d.ts.map +1 -0
- package/dist/{sqlite-26V3Y4MK.js → sqlite-6C3AJI4I.js} +115 -147
- package/dist/{sqlite-native-5O7FZJGB.js → sqlite-native-ZSSWCTYC.js} +1016 -349
- package/dist/transports/http/index.d.ts +8 -0
- package/dist/transports/http/index.d.ts.map +1 -0
- package/dist/transports/http/middleware.d.ts +25 -0
- package/dist/transports/http/middleware.d.ts.map +1 -0
- package/dist/transports/http/oauth.d.ts +24 -0
- package/dist/transports/http/oauth.d.ts.map +1 -0
- package/dist/transports/http/session.d.ts +2 -0
- package/dist/transports/http/session.d.ts.map +1 -0
- package/dist/transports/http/sessions/index.d.ts +4 -0
- package/dist/transports/http/sessions/index.d.ts.map +1 -0
- package/dist/transports/http/sessions/legacy-sse.d.ts +6 -0
- package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -0
- package/dist/transports/http/sessions/mutex.d.ts +6 -0
- package/dist/transports/http/sessions/mutex.d.ts.map +1 -0
- package/dist/transports/http/sessions/stateful.d.ts +12 -0
- package/dist/transports/http/sessions/stateful.d.ts.map +1 -0
- package/dist/transports/http/sessions/stateless.d.ts +6 -0
- package/dist/transports/http/sessions/stateless.d.ts.map +1 -0
- package/dist/transports/http/transport.d.ts +65 -0
- package/dist/transports/http/transport.d.ts.map +1 -0
- package/dist/transports/http/type-adapters.d.ts +20 -0
- package/dist/transports/http/type-adapters.d.ts.map +1 -0
- package/dist/transports/http/types.d.ts +120 -0
- package/dist/transports/http/types.d.ts.map +1 -0
- package/dist/types/adapter.d.ts +138 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/auth.d.ts +79 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/database.d.ts +100 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/filtering.d.ts +41 -0
- package/dist/types/filtering.d.ts.map +1 -0
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/server.d.ts +48 -0
- package/dist/types/server.d.ts.map +1 -0
- package/dist/utils/annotations.d.ts +62 -0
- package/dist/utils/annotations.d.ts.map +1 -0
- package/dist/utils/errors/base.d.ts +33 -0
- package/dist/utils/errors/base.d.ts.map +1 -0
- package/dist/utils/errors/categories.d.ts +41 -0
- package/dist/utils/errors/categories.d.ts.map +1 -0
- package/dist/utils/errors/classes.d.ts +124 -0
- package/dist/utils/errors/classes.d.ts.map +1 -0
- package/dist/utils/errors/error-response-fields.d.ts +24 -0
- package/dist/utils/errors/error-response-fields.d.ts.map +1 -0
- package/dist/utils/errors/format.d.ts +74 -0
- package/dist/utils/errors/format.d.ts.map +1 -0
- package/dist/utils/errors/index.d.ts +11 -0
- package/dist/utils/errors/index.d.ts.map +1 -0
- package/dist/utils/errors/suggestions.d.ts +16 -0
- package/dist/utils/errors/suggestions.d.ts.map +1 -0
- package/dist/utils/icons.d.ts +19 -0
- package/dist/utils/icons.d.ts.map +1 -0
- package/dist/utils/identifiers.d.ts +121 -0
- package/dist/utils/identifiers.d.ts.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/insights-manager.d.ts +39 -0
- package/dist/utils/insights-manager.d.ts.map +1 -0
- package/dist/utils/logger/error-codes.d.ts +48 -0
- package/dist/utils/logger/error-codes.d.ts.map +1 -0
- package/dist/utils/logger/index.d.ts +22 -0
- package/dist/utils/logger/index.d.ts.map +1 -0
- package/dist/utils/logger/logger.d.ts +94 -0
- package/dist/utils/logger/logger.d.ts.map +1 -0
- package/dist/utils/logger/module-logger.d.ts +28 -0
- package/dist/utils/logger/module-logger.d.ts.map +1 -0
- package/dist/utils/logger/types.d.ts +36 -0
- package/dist/utils/logger/types.d.ts.map +1 -0
- package/dist/utils/progress-utils.d.ts +54 -0
- package/dist/utils/progress-utils.d.ts.map +1 -0
- package/dist/utils/redaction.d.ts +4 -0
- package/dist/utils/redaction.d.ts.map +1 -0
- package/dist/utils/resource-annotations.d.ts +36 -0
- package/dist/utils/resource-annotations.d.ts.map +1 -0
- package/dist/utils/validate-json-path.d.ts +43 -0
- package/dist/utils/validate-json-path.d.ts.map +1 -0
- package/dist/utils/validate-path.d.ts +37 -0
- package/dist/utils/validate-path.d.ts.map +1 -0
- package/dist/utils/where-clause.d.ts +42 -0
- package/dist/utils/where-clause.d.ts.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +33 -20
- package/.gitattributes +0 -2
- package/dist/chunk-4IA3DB5C.js +0 -135
- package/dist/chunk-FW7UCRLN.js +0 -82
- package/dist/chunk-RHVEZ42P.js +0 -873
- package/dist/chunk-Z2GFQU3G.js +0 -363
- package/dist/worker-script.d.ts +0 -2
- package/dist/worker-script.js +0 -126
- package/playwright.config.ts +0 -101
- package/scripts/generate-server-instructions.ts +0 -111
- package/server.json +0 -52
- package/test-server/README.md +0 -118
- package/test-server/code-map.md +0 -409
- package/test-server/fixtures/sample.csv +0 -6
- package/test-server/reset-database.ps1 +0 -373
- package/test-server/sample.csv +0 -11
- package/test-server/test-agent-experience.md +0 -243
- package/test-server/test-database.sql +0 -388
- package/test-server/test-group-tools.md +0 -861
- package/test-server/test-help-resources.mjs +0 -238
- package/test-server/test-preflight.md +0 -53
- package/test-server/test-prompts.md +0 -354
- package/test-server/test-resources.md +0 -245
- package/test-server/test-tool-annotations.mjs +0 -157
- package/test-server/test-tools-advanced-1.md +0 -517
- package/test-server/test-tools-advanced-2.md +0 -487
- package/test-server/test-tools-codemode.md +0 -629
- package/test-server/test-tools.md +0 -176
- package/test-server/tool-reference.md +0 -236
- package/tsconfig.test.json +0 -9
package/server.json
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
-
"name": "io.github.neverinfamous/db-mcp",
|
|
4
|
-
"title": "db-mcp (SQLite MCP Server)",
|
|
5
|
-
"description": "SQLite MCP server with OAuth 2.1, HTTP/SSE, 139 tools, and smart tool filtering",
|
|
6
|
-
"version": "1.1.1",
|
|
7
|
-
"packages": [
|
|
8
|
-
{
|
|
9
|
-
"registryType": "npm",
|
|
10
|
-
"identifier": "db-mcp",
|
|
11
|
-
"version": "1.1.1",
|
|
12
|
-
"transport": {
|
|
13
|
-
"type": "stdio"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"registryType": "oci",
|
|
18
|
-
"identifier": "docker.io/writenotenow/db-mcp:v1.1.1",
|
|
19
|
-
"transport": {
|
|
20
|
-
"type": "stdio"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
],
|
|
24
|
-
"keywords": [
|
|
25
|
-
"mcp",
|
|
26
|
-
"model-context-protocol",
|
|
27
|
-
"database",
|
|
28
|
-
"sqlite",
|
|
29
|
-
"sql",
|
|
30
|
-
"oauth",
|
|
31
|
-
"ai",
|
|
32
|
-
"llm",
|
|
33
|
-
"developer-tools",
|
|
34
|
-
"json",
|
|
35
|
-
"fts5",
|
|
36
|
-
"vector-search",
|
|
37
|
-
"geospatial",
|
|
38
|
-
"spatialite",
|
|
39
|
-
"statistical-analysis"
|
|
40
|
-
],
|
|
41
|
-
"author": {
|
|
42
|
-
"name": "Chris LeRoux",
|
|
43
|
-
"email": "writenotenow@gmail.com"
|
|
44
|
-
},
|
|
45
|
-
"homepage": "https://github.com/neverinfamous/db-mcp",
|
|
46
|
-
"repository": {
|
|
47
|
-
"type": "git",
|
|
48
|
-
"url": "https://github.com/neverinfamous/db-mcp.git",
|
|
49
|
-
"source": "github"
|
|
50
|
-
},
|
|
51
|
-
"license": "MIT"
|
|
52
|
-
}
|
package/test-server/README.md
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
# db-mcp Test Database — Agent Testing Instructions
|
|
2
|
-
|
|
3
|
-
> **This README is optimized for AI agent consumption.** It serves as the primary orchestration document for running manual MCP functionality tests against the local SQLite database.
|
|
4
|
-
|
|
5
|
-
## Files
|
|
6
|
-
|
|
7
|
-
| File | Size | Purpose | When to Read |
|
|
8
|
-
| ---------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
9
|
-
| `test-tools.md` | ~12KB | **Entry-point protocol** — schema reference, error pattern docs, reporting format, cleanup rules. Paste a group checklist from `test-group-tools.md` at the bottom. | Always read first (Step 1 says read help resources, Step 2 is the testing) |
|
|
10
|
-
| `test-group-tools.md` | ~54KB | Per-group **deterministic checklists** (core, json, text, stats, vector, admin, geo, introspection, migration). Copy the relevant section into `test-tools.md`. | When running a specific tool group |
|
|
11
|
-
| `test-tools-advanced-1.md` | ~28KB | **Second-pass stress tests (Part 1)** — boundary values, state pollution, error message quality, WASM parity. | After basic checklist passes |
|
|
12
|
-
| `test-tools-advanced-2.md` | ~32KB | **Second-pass stress tests (Part 2)** — cross-group integration. Self-contained. | After basic checklist passes |
|
|
13
|
-
| `test-resources.md` | ~6KB | Resource testing plan (8 data + 7 help resources via `read_resource`) | When testing resources |
|
|
14
|
-
| `test-preflight.md` | ~2KB | **Pre-flight check** — validates slim instructions, help resources, data resources, and tool-filter alignment in 5 steps | Before any test pass |
|
|
15
|
-
| `test-agent-experience.md` | ~9KB | **Agent experience test** — 29 open-ended scenarios across 7 passes validating help resource sufficiency | After help resource changes |
|
|
16
|
-
| `test-prompts.md` | ~10KB | Prompt testing plan (10 prompts, tested manually since agents typically don't invoke prompts) | When testing prompts |
|
|
17
|
-
| `tool-groups-list.md` | — | **Canonical tool inventory** — all 9 groups + codemode, 139 Native / 115 WASM tools. Source of truth for tool counts. | Reference / auditing |
|
|
18
|
-
| `tool-reference.md` | ~18KB | **Complete Tool Reference** — Detailed list of all 139 Native / 115 WASM tools organized by group. | Reference |
|
|
19
|
-
| [`code-map.md`](code-map.md) | ~12KB | **Source Code Map** — Directory tree, handler→tool mapping, type/schema locations, error hierarchy, constants, architecture patterns. | When debugging source code or making changes |
|
|
20
|
-
| `reset-database.ps1` | ~11KB | PowerShell script to delete + re-seed `test.db` from `test-database.sql`. Verifies row counts. | After migration group testing or if data is polluted |
|
|
21
|
-
| `test-database.sql` | ~21KB | Seed SQL (DDL + DML) for all `test_*` tables | Reference only — reset script consumes this |
|
|
22
|
-
| `sample.csv` | <1KB | CSV fixture for `sqlite_create_csv_table` / `sqlite_analyze_csv_schema` testing | Used by admin group checklist |
|
|
23
|
-
|
|
24
|
-
## Test Database Schema
|
|
25
|
-
|
|
26
|
-
| Table | Rows | Notable Columns |
|
|
27
|
-
| ------------------- | ---- | ----------------------------------------------------------------------------------------------------------------- |
|
|
28
|
-
| `test_products` | 16 | price (REAL), category (TEXT, lowercase). Row 16: `Café Décor Light` (accented) |
|
|
29
|
-
| `test_orders` | 20 | product_id FK → test_products, status (TEXT) |
|
|
30
|
-
| `test_jsonb_docs` | 6 | **doc** (JSON), **metadata** (nested JSON), **tags** (JSON array). Row 4: `$.nested.level1.level2 = "deep value"` |
|
|
31
|
-
| `test_articles` | 8 | FTS5 searchable: SQLite, database, JSON, FTS, vector, API, search, MCP |
|
|
32
|
-
| `test_users` | 9 | email, phone (`+1-555-...` format), bio. 1 NULL phone. |
|
|
33
|
-
| `test_measurements` | 200 | sensor_id (INTEGER 1-5), temperature, humidity, pressure |
|
|
34
|
-
| `test_embeddings` | 20 | 8-dim float vectors. Categories: tech, database, food, fitness, travel |
|
|
35
|
-
| `test_locations` | 15 | latitude/longitude. Cities: NYC(3), Paris(3), London(3), Tokyo(2), Sydney(2), SF(2) |
|
|
36
|
-
| `test_categories` | 17 | Hierarchical: name, path, level |
|
|
37
|
-
| `test_events` | 100 | **payload** (JSON), event_type, user_id (INT, 8 values) |
|
|
38
|
-
|
|
39
|
-
**Key FK:** `test_orders.product_id → test_products.id`
|
|
40
|
-
**Redundant index (intentional):** `idx_orders_status` is a prefix of `idx_orders_status_date` — used to test index audit tools.
|
|
41
|
-
|
|
42
|
-
## Conventions
|
|
43
|
-
|
|
44
|
-
| Convention | Rule |
|
|
45
|
-
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
|
|
46
|
-
| **Temp tables (basic tests)** | `temp_*` prefix → drop after testing |
|
|
47
|
-
| **Temp tables (stress tests)** | `stress_*` prefix → drop after testing |
|
|
48
|
-
| **String values** | Lowercase (`'electronics'`, not `'Electronics'`) |
|
|
49
|
-
| **sensor_id** | INTEGER (use `= 1`, not `= 'S001'`) |
|
|
50
|
-
| **Reporting** | ❌ Fail, ⚠️ Issue, 📦 Payload concern. ✅ inline only, omit from final summary. |
|
|
51
|
-
| **Error testing** | Every tool: test (a) domain error + (b) Zod error (`{}`). Must return `{success: false, error: "..."}`, NOT raw MCP error. |
|
|
52
|
-
| **Error item prefix** | All error-path checklist items use 🔴 prefix to distinguish from happy-path items |
|
|
53
|
-
| **Code mode** | Don't pass `readonly: true` unless specifically testing read-only filtering |
|
|
54
|
-
| **Post-test** | Clean up temps → plan fixes → implement → lint+typecheck → changelog → commit (no push) → re-test fixes |
|
|
55
|
-
| **Database reset** | Run `.\reset-database.ps1` after migration testing or data pollution |
|
|
56
|
-
|
|
57
|
-
## WASM Parity Protocol
|
|
58
|
-
|
|
59
|
-
To validate WASM mode produces identical results for shared tools:
|
|
60
|
-
|
|
61
|
-
1. **Configure for WASM**: Set `--sqlite` (not `--sqlite-native`) in your MCP client config
|
|
62
|
-
2. **Expected tool count**: 115 WASM vs 139 Native (24 fewer: 4 FTS5, 6 window, 7 transaction, 7 SpatiaLite)
|
|
63
|
-
3. **Run the same checklists**: Use `test-group-tools.md` but skip items marked `[NATIVE ONLY]`
|
|
64
|
-
4. **Verify shared tools**: All non-`[NATIVE ONLY]` items should produce identical output in both backends
|
|
65
|
-
5. **Verify absent tools**: Calling a Native-only tool in WASM mode should return a structured error (not crash)
|
|
66
|
-
6. **Key groups to verify**: text (FTS5 absent), stats (window functions absent), admin (transactions absent), geo (SpatiaLite absent)
|
|
67
|
-
|
|
68
|
-
## Integration Test Scripts
|
|
69
|
-
|
|
70
|
-
These scripts test features that require separate server processes — they **cannot** be run via MCP tool calls. All scripts are Node.js (`.mjs`), require no dependencies beyond Node.js, and exit with code 0 on success.
|
|
71
|
-
|
|
72
|
-
> [!IMPORTANT]
|
|
73
|
-
> Always `npm run build` before running these scripts — they execute `dist/cli.js` directly.
|
|
74
|
-
|
|
75
|
-
### Script Reference
|
|
76
|
-
|
|
77
|
-
| Script | Tests | Transport | Duration |
|
|
78
|
-
| --------------------------- | --------------------------------------------------------------- | --------- | -------- |
|
|
79
|
-
| `test-help-resources.mjs` | Slim instructions + `sqlite://help` resource filtering by group | stdio | ~15s |
|
|
80
|
-
| `test-tool-annotations.mjs` | `tools/list` openWorldHint annotation presence and consistency | stdio | ~5s |
|
|
81
|
-
|
|
82
|
-
### Quick Run
|
|
83
|
-
|
|
84
|
-
```powershell
|
|
85
|
-
cd C:\Users\chris\Desktop\db-mcp
|
|
86
|
-
npm run build
|
|
87
|
-
|
|
88
|
-
# Help resources
|
|
89
|
-
node test-server/test-help-resources.mjs
|
|
90
|
-
|
|
91
|
-
# Tool annotations
|
|
92
|
-
node test-server/test-tool-annotations.mjs
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Success Criteria
|
|
96
|
-
|
|
97
|
-
#### Help Resources
|
|
98
|
-
|
|
99
|
-
- [ ] Instructions under 1000 chars (~680)
|
|
100
|
-
- [ ] `sqlite://help` always registered
|
|
101
|
-
- [ ] Group-specific help only for enabled groups
|
|
102
|
-
- [ ] No old content leaked into slim instructions
|
|
103
|
-
|
|
104
|
-
#### Tool Annotations
|
|
105
|
-
|
|
106
|
-
- [ ] All tools have `annotations` object with `openWorldHint` set
|
|
107
|
-
- [ ] All `openWorldHint` values are `false` (db-mcp tools are local-only)
|
|
108
|
-
- [ ] 0 missing annotations
|
|
109
|
-
|
|
110
|
-
## Agent Workflow
|
|
111
|
-
|
|
112
|
-
1. Read `sqlite://help` resource (or `view_file` on `src/constants/server-instructions/gotchas.md`).
|
|
113
|
-
2. Read `test-tools.md` for protocol and schema details.
|
|
114
|
-
3. Access `test-group-tools.md` and copy the target group checklist.
|
|
115
|
-
4. Execute via direct MCP tool calls to test logic. Run both happy-path and error-path tests.
|
|
116
|
-
5. Clean up any temporary tables generated during execution.
|
|
117
|
-
6. Report findings using the designated reporting convention.
|
|
118
|
-
7. (Optional) Run stress tests from `test-tools-advanced-1.md` or `test-tools-advanced-2.md`.
|
package/test-server/code-map.md
DELETED
|
@@ -1,409 +0,0 @@
|
|
|
1
|
-
# db-mcp Code Map
|
|
2
|
-
|
|
3
|
-
> **Agent-optimized navigation reference.** Read this before searching the codebase. Covers directory layout, handler→tool mapping, type/schema locations, error hierarchy, and key constants.
|
|
4
|
-
>
|
|
5
|
-
> Last updated: March 18, 2026
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Directory Tree
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
src/
|
|
13
|
-
├── cli.ts # CLI entry point (arg parsing, transport selection)
|
|
14
|
-
├── index.ts # Barrel re-export for library consumers
|
|
15
|
-
├── version.ts # SSoT version constant (reads package.json)
|
|
16
|
-
│
|
|
17
|
-
├── server/
|
|
18
|
-
│ └── mcp-server.ts # McpServer setup, adapter registration, tool/resource/prompt wiring
|
|
19
|
-
│
|
|
20
|
-
├── types/ # Core TypeScript types (barrel: types/index.ts)
|
|
21
|
-
│ ├── adapter.ts # ToolDefinition, ResourceDefinition, PromptDefinition, AdapterCapabilities
|
|
22
|
-
│ ├── auth.ts # OAuthConfig, OAuthScope, TokenClaims, RequestContext
|
|
23
|
-
│ ├── database.ts # DatabaseConfig, QueryResult, ColumnInfo, TableInfo, SchemaInfo, IndexInfo
|
|
24
|
-
│ ├── filtering.ts # ToolGroup, MetaGroup, ToolFilterRule, ToolFilterConfig
|
|
25
|
-
│ ├── server.ts # TransportType, McpServerConfig (incl. authToken, oauth)
|
|
26
|
-
│ └── index.ts # Barrel — also re-exports error classes from utils/errors
|
|
27
|
-
│
|
|
28
|
-
├── constants/
|
|
29
|
-
│ ├── server-instructions.ts # Generated: slim INSTRUCTIONS constant (~680 chars) + HELP_CONTENT map (per-group help)
|
|
30
|
-
│ └── server-instructions/ # Source .md files for each help resource
|
|
31
|
-
│ ├── overview.md # Root help content (sqlite://help)
|
|
32
|
-
│ ├── gotchas.md # Common gotchas and critical usage patterns
|
|
33
|
-
│ ├── admin.md # Admin group help
|
|
34
|
-
│ ├── geo.md # Geo group help
|
|
35
|
-
│ ├── introspection.md # Introspection group help
|
|
36
|
-
│ ├── json.md # JSON group help
|
|
37
|
-
│ ├── migration.md # Migration group help
|
|
38
|
-
│ ├── stats.md # Stats group help
|
|
39
|
-
│ ├── text.md # Text group help
|
|
40
|
-
│ └── vector.md # Vector group help
|
|
41
|
-
│
|
|
42
|
-
├── filtering/
|
|
43
|
-
│ ├── tool-constants.ts # TOOL_GROUPS arrays, META_GROUPS shortcuts, group→tools map
|
|
44
|
-
│ └── tool-filter.ts # ToolFilter class — parse/apply --tool-filter expressions
|
|
45
|
-
│
|
|
46
|
-
├── utils/
|
|
47
|
-
│ ├── annotations.ts # MCP tool annotation helpers (readOnly, destructive hints)
|
|
48
|
-
│ ├── icons.ts # MCP icon definitions per tool group
|
|
49
|
-
│ ├── identifiers.ts # SQL identifier validation/sanitization (table names, columns)
|
|
50
|
-
│ ├── insights-manager.ts # memo://insights resource accumulator
|
|
51
|
-
│ ├── progress-utils.ts # MCP progress notification helpers
|
|
52
|
-
│ ├── resource-annotations.ts # MCP resource annotation helpers
|
|
53
|
-
│ ├── where-clause.ts # WHERE clause builder/validator
|
|
54
|
-
│ ├── index.ts # Barrel re-export
|
|
55
|
-
│ ├── errors/ # Error class hierarchy (see § Error Classes below)
|
|
56
|
-
│ │ ├── base.ts # DbMcpError (abstract base) — auto-refines generic codes via suggestions
|
|
57
|
-
│ │ ├── categories.ts # ErrorCategory enum + ErrorResponse interface
|
|
58
|
-
│ │ ├── classes.ts # 8 concrete error subclasses
|
|
59
|
-
│ │ ├── error-response-fields.ts # ErrorResponseFields mixin (SSoT, re-exported from format.ts)
|
|
60
|
-
│ │ ├── format.ts # formatHandlerError() — structured {success:false} builder
|
|
61
|
-
│ │ ├── suggestions.ts # Error suggestion helpers (typo hints, table/column suggestions)
|
|
62
|
-
│ │ └── index.ts # Barrel
|
|
63
|
-
│ └── logger/
|
|
64
|
-
│ ├── logger.ts # Logger class (structured JSON, severity filtering)
|
|
65
|
-
│ ├── module-logger.ts # createModuleLogger() factory
|
|
66
|
-
│ ├── error-codes.ts # Module-prefixed error code constants
|
|
67
|
-
│ ├── types.ts # LogLevel, LogEntry types
|
|
68
|
-
│ └── index.ts # Barrel
|
|
69
|
-
│
|
|
70
|
-
├── auth/ # OAuth 2.1 implementation
|
|
71
|
-
│ ├── auth-context.ts # Auth context utilities
|
|
72
|
-
│ ├── middleware/ # Express-style OAuth middleware (split from middleware.ts)
|
|
73
|
-
│ │ └── index.ts
|
|
74
|
-
│ ├── token-validator.ts # JWT/JWKS token validation
|
|
75
|
-
│ ├── scopes/ # Scope parsing, enforcement (split from scopes.ts)
|
|
76
|
-
│ │ └── index.ts
|
|
77
|
-
│ ├── scope-map.ts # Tool→scope mapping
|
|
78
|
-
│ ├── oauth-resource-server.ts # RFC 9728 /.well-known/oauth-protected-resource
|
|
79
|
-
│ ├── authorization-server-discovery.ts # RFC 8414 auth server metadata discovery
|
|
80
|
-
│ ├── transport-agnostic.ts # Non-Express auth re-exports for transport portability
|
|
81
|
-
│ ├── errors.ts # OAuth-specific error classes
|
|
82
|
-
│ └── types.ts # OAuth TypeScript types
|
|
83
|
-
│
|
|
84
|
-
├── transports/
|
|
85
|
-
│ └── http/
|
|
86
|
-
│ ├── transport.ts # HTTP/SSE transport (Streamable HTTP + legacy SSE)
|
|
87
|
-
│ ├── session.ts # Session management (stateful + stateless modes)
|
|
88
|
-
│ ├── middleware.ts # Security headers, rate limiting, CORS, body parsing, DNS rebinding guard
|
|
89
|
-
│ ├── oauth.ts # OAuth 2.1 integration + simple bearer auth middleware
|
|
90
|
-
│ ├── type-adapters.ts # Hono→Express type bridges
|
|
91
|
-
│ ├── types.ts # HTTP transport types
|
|
92
|
-
│ └── index.ts # Barrel
|
|
93
|
-
│
|
|
94
|
-
├── codemode/ # Code Mode sandbox (secure JS execution)
|
|
95
|
-
│ ├── sandbox.ts # SandboxPool lifecycle manager
|
|
96
|
-
│ ├── sandbox-factory.ts # Sandbox creation factory
|
|
97
|
-
│ ├── worker-sandbox.ts # Worker thread sandbox (MessagePort RPC bridge)
|
|
98
|
-
│ ├── worker-script.ts # Worker thread entry point (runs inside vm)
|
|
99
|
-
│ ├── api.ts # sqlite.* API bridge (exposes tools to sandbox)
|
|
100
|
-
│ ├── api-constants.ts # API bridge constants and JSON-RPC codes
|
|
101
|
-
│ ├── security.ts # Code validation (blocked patterns, injection prevention)
|
|
102
|
-
│ ├── types.ts # Sandbox TypeScript types
|
|
103
|
-
│ └── index.ts # Barrel
|
|
104
|
-
│
|
|
105
|
-
├── adapters/
|
|
106
|
-
│ ├── database-adapter.ts # Abstract DatabaseAdapter base class
|
|
107
|
-
│ ├── query-validation.ts # Shared query validation (SELECT vs write detection)
|
|
108
|
-
│ ├── sqlite-helpers.ts # Shared SQLite helper utilities
|
|
109
|
-
│ │
|
|
110
|
-
│ ├── sqlite/ # ── WASM adapter (sql.js) ──
|
|
111
|
-
│ │ ├── sqlite-adapter.ts # SqliteAdapter class (extends DatabaseAdapter)
|
|
112
|
-
│ │ ├── query-executor.ts # WASM query execution
|
|
113
|
-
│ │ ├── schema-manager.ts # Schema cache + metadata (TTL-based)
|
|
114
|
-
│ │ ├── json-utils.ts # JSON column detection and normalization
|
|
115
|
-
│ │ ├── types.ts # WASM-specific Zod schemas + TS types
|
|
116
|
-
│ │ ├── resources.ts # 8 data MCP resources (schema, tables, indexes, etc.)
|
|
117
|
-
│ │ ├── index.ts # Barrel
|
|
118
|
-
│ │ ├── output-schemas/ # Zod outputSchema definitions per group (see § below)
|
|
119
|
-
│ │ ├── prompts/ # 10 MCP prompts (see § below)
|
|
120
|
-
│ │ └── tools/ # Tool handler files (see § Handler Map below)
|
|
121
|
-
│ │ ├── column-validation.ts # validateColumnExists() + validateTableExists() — used by geo, stats, text, FTS, window
|
|
122
|
-
│ │ └── ... # Group subdirectories below
|
|
123
|
-
│ │
|
|
124
|
-
│ └── sqlite-native/ # ── Native adapter (better-sqlite3) ──
|
|
125
|
-
│ ├── native-sqlite-adapter.ts # NativeSqliteAdapter class (extends DatabaseAdapter)
|
|
126
|
-
│ ├── native-query-executor.ts # Native query execution
|
|
127
|
-
│ ├── extensions.ts # Extension loader (CSV, SpatiaLite) — uses findProjectRoot()
|
|
128
|
-
│ ├── transaction-methods.ts # Transaction state management
|
|
129
|
-
│ ├── registration/ # Extracted tool/resource registration logic
|
|
130
|
-
│ │ └── index.ts
|
|
131
|
-
│ ├── index.ts # Barrel
|
|
132
|
-
│ └── tools/ # Native-only tool handlers (see § below)
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Handler → Tool Mapping
|
|
138
|
-
|
|
139
|
-
Each file below registers tools with `group` labels. Native-only tools are marked.
|
|
140
|
-
|
|
141
|
-
### WASM Handlers (`src/adapters/sqlite/tools/`)
|
|
142
|
-
|
|
143
|
-
| Group | Handler File(s) | Tools | Key Exports |
|
|
144
|
-
| ----------------- | ----------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
145
|
-
| **codemode** | `codemode.ts` | 1 | `sqlite_execute_code` |
|
|
146
|
-
| **core** | `core/queries.ts` | 2 | `sqlite_read_query`, `sqlite_write_query` |
|
|
147
|
-
| | `core/tables.ts` | 4 | `create_table`, `list_tables`, `describe_table`, `drop_table` |
|
|
148
|
-
| | `core/indexes.ts` | 3 | `get_indexes`, `create_index`, `drop_index` |
|
|
149
|
-
| **json** | `json-operations/crud.ts` | 3 | `json_insert`, `json_update`, `json_select` |
|
|
150
|
-
| | `json-operations/query.ts` | 4 | `json_query`, `json_validate_path`, `json_merge`, `json_analyze_schema` |
|
|
151
|
-
| | `json-operations/transform.ts` | 4 | `json_valid`, `json_extract`, `json_set`, `json_remove` |
|
|
152
|
-
| | `json-helpers/read.ts` | 7 | `json_type`, `json_array_length`, `json_keys`, `json_each`, `json_pretty`, `json_storage_info`, `json_group_array` |
|
|
153
|
-
| | `json-helpers/write.ts` | 5 | `json_array_append`, `json_group_object`, `jsonb_convert`, `json_normalize_column`, `create_json_collection` |
|
|
154
|
-
| **text** | `text/regex.ts` | 2 | `regex_extract`, `regex_match` |
|
|
155
|
-
| | `text/formatting.ts` | 6 | `text_split`, `text_concat`, `text_replace`, `text_trim`, `text_case`, `text_substring` |
|
|
156
|
-
| | `text/search.ts` | 3 | `fuzzy_match`, `phonetic_match`, `advanced_search` |
|
|
157
|
-
| | `text/validate.ts` | 2 | `text_normalize`, `text_validate` |
|
|
158
|
-
| **text** (FTS5) | `fts.ts` | 4 | `fts_create`, `fts_search`, `fts_rebuild`, `fts_match_info` |
|
|
159
|
-
| **stats** | `stats/basic.ts` | 7 | `stats_basic`, `stats_count`, `stats_group_by`, `stats_histogram`, `stats_percentile`, `stats_correlation`, `stats_top_n` |
|
|
160
|
-
| | `stats/advanced.ts` | 6 | `stats_distinct`, `stats_summary`, `stats_frequency`, `stats_outliers`, `stats_regression`, `stats_hypothesis` |
|
|
161
|
-
| **vector** | `vector/storage.ts` | 4 | `vector_create_table`, `vector_store`, `vector_batch_store`, `vector_delete` |
|
|
162
|
-
| | `vector/search.ts` | 2 | `vector_search`, `vector_get` |
|
|
163
|
-
| | `vector/metadata.ts` | 5 | `vector_count`, `vector_stats`, `vector_dimensions`, `vector_normalize`, `vector_distance` |
|
|
164
|
-
| **geo** | `geo.ts` | 4 | `geo_distance`, `geo_nearby`, `geo_bounding_box`, `geo_cluster` |
|
|
165
|
-
| **admin** | `admin/backup/create.ts` | 1 | `backup` |
|
|
166
|
-
| | `admin/backup/restore.ts` | 1 | `restore` |
|
|
167
|
-
| | `admin/backup/analyze.ts` | 1 | `analyze` |
|
|
168
|
-
| | `admin/backup/integrity.ts` | 1 | `integrity_check` |
|
|
169
|
-
| | `admin/backup/optimize.ts` | 1 | `optimize` |
|
|
170
|
-
| | `admin/verify.ts` | 2 | `verify_backup`, `index_stats` |
|
|
171
|
-
| | `admin/pragma.ts` | 6 | `pragma_compile_options`, `pragma_database_list`, `pragma_optimize`, `pragma_settings`, `pragma_table_info`, `append_insight` |
|
|
172
|
-
| | `virtual/views.ts` | 3 | `create_view`, `list_views`, `drop_view` |
|
|
173
|
-
| | `virtual/vtable.ts` | 5 | `list_virtual_tables`, `virtual_table_info`, `drop_virtual_table`, `create_csv_table`, `analyze_csv_schema` |
|
|
174
|
-
| | `virtual/extensions.ts` | 2 | `create_rtree_table`, `create_series_table` |
|
|
175
|
-
| | `virtual/analysis.ts` | 3 | `generate_series`, `dbstat`, `vacuum` |
|
|
176
|
-
| **introspection** | `introspection/graph/tools.ts` | 3 | `dependency_graph`, `topological_sort`, `cascade_simulator` |
|
|
177
|
-
| | `introspection/analysis/constraints.ts` | 1 | `constraint_analysis` |
|
|
178
|
-
| | `introspection/analysis/risks.ts` | 1 | `migration_risks` |
|
|
179
|
-
| | `introspection/analysis/snapshot.ts` | 1 | `schema_snapshot` |
|
|
180
|
-
| | `introspection/diagnostics/storage.ts` | 1 | `storage_analysis` |
|
|
181
|
-
| | `introspection/diagnostics/indexes.ts` | 1 | `index_audit` |
|
|
182
|
-
| | `introspection/diagnostics/query-plan.ts` | 1 | `query_plan` |
|
|
183
|
-
| **migration** | `migration/tracking/init.ts` | 1 | `migration_init` |
|
|
184
|
-
| | `migration/tracking/record.ts` | 1 | `migration_record` |
|
|
185
|
-
| | `migration/tracking/apply.ts` | 1 | `migration_apply` |
|
|
186
|
-
| | `migration/tracking/rollback.ts` | 1 | `migration_rollback` |
|
|
187
|
-
| | `migration/tracking/history.ts` | 1 | `migration_history` |
|
|
188
|
-
| | `migration/tracking/status.ts` | 1 | `migration_status` |
|
|
189
|
-
|
|
190
|
-
### Native-Only Handlers (`src/adapters/sqlite-native/tools/`)
|
|
191
|
-
|
|
192
|
-
| Group | Handler File | Tools | Notes |
|
|
193
|
-
| ------------------------ | ------------------------ | ----- | ------------------------------------------------------------------------------------------------------------------ |
|
|
194
|
-
| **stats** (window) | `window.ts` | 6 | `window_row_number`, `window_rank`, `window_lag_lead`, `window_running_total`, `window_moving_avg`, `window_ntile` |
|
|
195
|
-
| **admin** (transactions) | `transactions.ts` | 7 | `transaction_begin/commit/rollback/savepoint/release/rollback_to/execute` |
|
|
196
|
-
| **geo** (SpatiaLite) | `spatialite/tools.ts` | 4 | `spatialite_load/create_table/query/index` |
|
|
197
|
-
| | `spatialite/analysis.ts` | 3 | `spatialite_analyze/transform/import` |
|
|
198
|
-
|
|
199
|
-
### Utility Files (no tools, shared helpers)
|
|
200
|
-
|
|
201
|
-
Files that provide shared logic but do **not** register tools:
|
|
202
|
-
|
|
203
|
-
| File | Purpose |
|
|
204
|
-
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
205
|
-
| `core/tables.ts` | Also exports `isSpatialiteSystemTable()`, `isSpatialiteSystemView()`, `isSpatialiteSystemIndex()` — used by core + introspection tools for `excludeSystemTables` filtering |
|
|
206
|
-
| `column-validation.ts` | `validateColumnExists()`, `validateTableExists()` — used by geo, stats, text, FTS, window |
|
|
207
|
-
| `json-operations/helpers.ts` | JSON path/value normalization |
|
|
208
|
-
| `json-helpers/helpers.ts` | JSON helper utilities |
|
|
209
|
-
| `text/helpers.ts` | Text processing shared logic |
|
|
210
|
-
| `stats/helpers.ts` | Stats calculation utilities |
|
|
211
|
-
| `stats/inference.ts` | Statistical type inference engine |
|
|
212
|
-
| `stats/math-helpers.ts` | Math utility functions (median, std dev) |
|
|
213
|
-
| `vector/helpers.ts` | Vector math utilities |
|
|
214
|
-
| `vector/schemas.ts` | Zod schemas for vector tools |
|
|
215
|
-
| `vector/tools.ts` | Vector tool registration barrel |
|
|
216
|
-
| `admin/helpers.ts` | Admin tool shared utilities |
|
|
217
|
-
| `migration/schemas.ts` | Zod input schemas for migration tools (re-exports output schemas from `output-schemas/migration.ts`) |
|
|
218
|
-
| `virtual/helpers.ts` | Virtual table helper utilities |
|
|
219
|
-
| `introspection/graph/helpers.ts` | FK graph traversal helpers |
|
|
220
|
-
| `spatialite/schemas.ts` (native) | Zod schemas for SpatiaLite tools |
|
|
221
|
-
| `spatialite/loader.ts` (native) | SpatiaLite extension loader + path resolution |
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## Output Schemas (`src/adapters/sqlite/output-schemas/`)
|
|
226
|
-
|
|
227
|
-
Zod schemas that define the `outputSchema` for MCP tool responses. All output schemas are centralized here with named exports — **zero inline definitions** remain across all tool groups.
|
|
228
|
-
|
|
229
|
-
| File | Groups Covered |
|
|
230
|
-
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
231
|
-
| `common.ts` | Shared base schemas (e.g., success/error shape) |
|
|
232
|
-
| `error-mixin.ts` | `ErrorFieldsMixin` — 6 optional error fields merged into all output schemas |
|
|
233
|
-
| `core.ts` | Core group output schemas |
|
|
234
|
-
| `json.ts` | JSON group output schemas |
|
|
235
|
-
| `text.ts` | Text group output schemas (incl. `TextConcatOutputSchema`, `TextTrimOutputSchema`, `TextCaseOutputSchema`, `TextSubstringOutputSchema`, `AdvancedSearchOutputSchema`) |
|
|
236
|
-
| `fts.ts` | FTS5 output schemas |
|
|
237
|
-
| `stats.ts` | Stats group output schemas (incl. `StatsHypothesisOutputSchema`) |
|
|
238
|
-
| `vector.ts` | Vector group output schemas |
|
|
239
|
-
| `admin.ts` | Admin group output schemas (incl. `AppendInsightOutputSchema`, `DbstatOutputSchema`) |
|
|
240
|
-
| `geo.ts` | Geo group output schemas |
|
|
241
|
-
| `introspection.ts` | Introspection group output schemas (9 schemas: DependencyGraph, TopologicalSort, CascadeSimulator, SchemaSnapshot, ConstraintAnalysis, MigrationRisks, StorageAnalysis, IndexAudit, QueryPlan) |
|
|
242
|
-
| `migration.ts` | Migration group output schemas (7 schemas: MigrationInit, MigrationRecord, MigrationApply, MigrationRollback, MigrationHistory, MigrationStatus + MigrationRecordEntry) |
|
|
243
|
-
| `virtual.ts` | Virtual table output schemas (7 schemas: ListVirtualTables, VirtualTableInfo, DropVirtualTable, CreateCsvTable, AnalyzeCsvSchema, CreateRtreeTable, CreateSeriesTable) |
|
|
244
|
-
| `native.ts` | Native-only output schemas (transactions — 7 schemas, window functions — 6 schemas) |
|
|
245
|
-
| `spatialite.ts` | SpatiaLite output schemas (7 tools — native only) |
|
|
246
|
-
| `server.ts` | Type aliases for core output schemas (built-in tools use `content` pattern, not `structuredContent`) |
|
|
247
|
-
| `index.ts` | Barrel re-export |
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
## Prompts (`src/adapters/sqlite/prompts/`)
|
|
252
|
-
|
|
253
|
-
| File | Prompts |
|
|
254
|
-
| ------------- | ----------------------------------------------------------------------------- |
|
|
255
|
-
| `analysis.ts` | `sqlite_data_analysis`, `sqlite_summarize_table`, `sqlite_demo` |
|
|
256
|
-
| `query.ts` | `sqlite_query_builder`, `sqlite_debug_query`, `sqlite_hybrid_search_workflow` |
|
|
257
|
-
| `schema.ts` | `sqlite_explain_schema`, `sqlite_documentation`, `sqlite_migration` |
|
|
258
|
-
| `index.ts` | Barrel + `sqlite_optimization` |
|
|
259
|
-
|
|
260
|
-
Prompts with required arguments expose typed `argsSchema` via `prompts/list`. All-optional and zero-arg prompts correctly omit `argsSchema`.
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
|
|
264
|
-
## Error Class Hierarchy
|
|
265
|
-
|
|
266
|
-
All errors extend `DbMcpError` (defined in `src/utils/errors/base.ts`). Every tool returns structured `{success: false, error, code, category, suggestion, recoverable}` via `formatHandlerError()` — never raw MCP exceptions.
|
|
267
|
-
|
|
268
|
-
The `DbMcpError` constructor auto-refines generic codes (`DB_QUERY_FAILED`, `DB_WRITE_FAILED`, `QUERY_ERROR`, `RESOURCE_ERROR`, `UNKNOWN_ERROR`) to more specific codes (e.g., `TABLE_NOT_FOUND`, `COLUMN_NOT_FOUND`, `VIEW_NOT_FOUND`, `FILE_NOT_FOUND`, `MALFORMED_JSON`, `TRANSACTION_CONFLICT`) when the error message matches a suggestion pattern.
|
|
269
|
-
|
|
270
|
-
```
|
|
271
|
-
DbMcpError (base.ts)
|
|
272
|
-
├── ValidationError code: VALIDATION_ERROR category: validation
|
|
273
|
-
├── ConnectionError code: CONNECTION_ERROR category: connection recoverable: true
|
|
274
|
-
├── QueryError code: QUERY_ERROR category: query accepts: sql option
|
|
275
|
-
├── PermissionError code: PERMISSION_ERROR category: permission
|
|
276
|
-
├── ResourceNotFoundError code: RESOURCE_NOT_FOUND category: resource accepts: resourceType, resourceName
|
|
277
|
-
├── ConfigurationError code: CONFIG_ERROR category: config
|
|
278
|
-
├── InternalError code: INTERNAL_ERROR category: internal
|
|
279
|
-
├── AuthenticationError code: AUTHENTICATION_ERROR category: authentication
|
|
280
|
-
└── AuthorizationError code: AUTHORIZATION_ERROR category: authorization
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
**Usage pattern** — all tool handlers:
|
|
284
|
-
|
|
285
|
-
```typescript
|
|
286
|
-
import { ValidationError } from "../../utils/errors/index.js";
|
|
287
|
-
import { formatHandlerError } from "../../utils/errors/index.js";
|
|
288
|
-
|
|
289
|
-
// Throw typed errors:
|
|
290
|
-
throw new ValidationError("Table name required", "TABLE_NAME_REQUIRED", {
|
|
291
|
-
suggestion: "Provide a valid table name",
|
|
292
|
-
});
|
|
293
|
-
|
|
294
|
-
// Catch at handler boundary:
|
|
295
|
-
catch (error) {
|
|
296
|
-
return formatHandlerError(error);
|
|
297
|
-
}
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
**Error suggestions** — `src/utils/errors/suggestions.ts` provides:
|
|
301
|
-
|
|
302
|
-
- `suggestTableName(input, existingTables)` — fuzzy-matches typos
|
|
303
|
-
- `suggestColumnName(input, existingColumns)` — fuzzy-matches columns
|
|
304
|
-
- `suggestToolName(input)` — suggests similar tool names
|
|
305
|
-
- Pattern-based refinement: `TABLE_NOT_FOUND`, `COLUMN_NOT_FOUND`, `VIEW_NOT_FOUND`, `FILE_NOT_FOUND`, `MALFORMED_JSON`, `TRANSACTION_CONFLICT`, `DUPLICATE_MIGRATION`, `DUPLICATE_VERSION`, `ALREADY_ROLLED_BACK`, `DIMENSION_MISMATCH`, `VECTOR_NOT_FOUND`
|
|
306
|
-
|
|
307
|
-
---
|
|
308
|
-
|
|
309
|
-
## Key Constants & Config
|
|
310
|
-
|
|
311
|
-
| What | Where | Notes |
|
|
312
|
-
| ---------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------- |
|
|
313
|
-
| Server instructions (agent prompt) | `src/constants/server-instructions.ts` | Generated: slim `INSTRUCTIONS` (~680 chars) + `HELP_CONTENT` map. Source: `server-instructions/*.md` |
|
|
314
|
-
| Tool group arrays | `src/filtering/tool-constants.ts` | `TOOL_GROUPS` map, `META_GROUPS` shortcuts |
|
|
315
|
-
| Tool filter logic | `src/filtering/tool-filter.ts` | `ToolFilter` class |
|
|
316
|
-
| JSON-RPC constants | `src/codemode/api-constants.ts` | Error codes, method names for sandbox RPC |
|
|
317
|
-
| Logger error codes | `src/utils/logger/error-codes.ts` | Module-prefixed codes (`DB_`, `AUTH_`, etc.) |
|
|
318
|
-
| Version SSoT | `src/version.ts` | Reads from `package.json` at build time |
|
|
319
|
-
|
|
320
|
-
---
|
|
321
|
-
|
|
322
|
-
## Architecture Patterns (Quick Reference)
|
|
323
|
-
|
|
324
|
-
| Pattern | Description |
|
|
325
|
-
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
326
|
-
| **Structured Errors** | Every tool returns `{success: false, error, code, category, suggestion, recoverable}` — never raw exceptions. Uses `formatHandlerError()`. |
|
|
327
|
-
| **Adapter Pattern** | `DatabaseAdapter` (abstract) → `SqliteAdapter` (WASM) / `NativeSqliteAdapter` (Native). Both share tool handler files from `sqlite/tools/`. |
|
|
328
|
-
| **Schema Cache** | `SchemaManager` caches table/column metadata with configurable TTL. Auto-invalidates on DDL ops. |
|
|
329
|
-
| **Code Mode Bridge** | `sqlite.*` API in worker thread communicates via MessagePort RPC to main thread tool handlers. All 9 groups exposed (`core`, `json`, `text`, `stats`, `vector`, `geo`, `admin`, `introspection`, `migration`). |
|
|
330
|
-
| **Tool Filtering** | `ToolFilter` parses `--tool-filter` string → whitelist/blacklist of tool names. `codemode` auto-injected unless excluded. Help resources filtered to match enabled groups. |
|
|
331
|
-
| **Output Schemas** | All Zod output schemas live in `output-schemas/` with named exports — **never inline** in handler files. Handlers import from `../../output-schemas/index.js`. All schemas extend `ErrorFieldsMixin.shape`. Domain-specific fields are optional so error responses pass validation. |
|
|
332
|
-
| **Input Coercion** | All numeric params use `z.preprocess(coerceNumber, ...)` so wrong-type strings fall to defaults. Required enums use `z.string()` + handler validation. Optional enums use `coerceEnumValues()` factory. Array params coerce non-arrays to empty arrays for SDK `.partial()` compatibility. |
|
|
333
|
-
| **Readonly Guard** | Code mode `isWriteTool()` uses fail-closed logic (`readOnlyHint === true`) — tools without annotations are blocked in readonly mode. |
|
|
334
|
-
| **Parameter Aliases** | Core tools support backward-compatible aliases (`tableName`→`table`, `sql`→`query`, `name`→`indexName`) via `resolveAliases()` in handlers. Canonical names take precedence. |
|
|
335
|
-
| **Barrel Re-exports** | Every directory has `index.ts` barrel. Import from `./module/index.js` (with `.js` extension for ESM). |
|
|
336
|
-
| **Module Logger** | `createModuleLogger("moduleName")` → structured logs with `[module]` prefix. |
|
|
337
|
-
| **Help Resources** | Pull-based `sqlite://help` + `sqlite://help/{group}` replace the old push-based `--instruction-level` flag. Per-group `.md` sources in `server-instructions/`. |
|
|
338
|
-
| **DNS Rebinding Guard** | `localhostHostValidation()` middleware from MCP SDK on HTTP transport. |
|
|
339
|
-
|
|
340
|
-
---
|
|
341
|
-
|
|
342
|
-
## Import Path Conventions
|
|
343
|
-
|
|
344
|
-
- All imports use **`.js` extension** (ESM requirement): `import { x } from "./foo/index.js"`
|
|
345
|
-
- After splitting `foo.ts` → `foo/` directory: update imports from `./foo.js` → `./foo/index.js`
|
|
346
|
-
- Error classes can be imported from either:
|
|
347
|
-
- `../../utils/errors/index.js` (direct)
|
|
348
|
-
- `../../types/index.js` (re-exported subset: `DbMcpError`, `ValidationError`, `ConnectionError`, `QueryError`, `AuthenticationError`, `AuthorizationError`)
|
|
349
|
-
|
|
350
|
-
---
|
|
351
|
-
|
|
352
|
-
## Test Infrastructure
|
|
353
|
-
|
|
354
|
-
| File / Directory | Purpose |
|
|
355
|
-
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
356
|
-
| `test-server/README.md` | Agent testing orchestration doc |
|
|
357
|
-
| `test-server/test-database.sql` | Seed DDL+DML (10 tables, ~400 rows) |
|
|
358
|
-
| `test-server/reset-database.ps1` | Reset script — drops + re-seeds `test.db` |
|
|
359
|
-
| `test-server/tool-reference.md` | Complete 139/115 tool inventory with descriptions |
|
|
360
|
-
| `test-server/test-preflight.md` | Pre-test verification checklist |
|
|
361
|
-
| `test-server/test-tools.md` | Entry-point protocol (schema ref, reporting format) |
|
|
362
|
-
| `test-server/test-group-tools.md` | Per-group deterministic checklists |
|
|
363
|
-
| `test-server/test-tools-advanced-1.md` | Advanced stress test prompts (part 1) |
|
|
364
|
-
| `test-server/test-tools-advanced-2.md` | Advanced stress test prompts (part 2) |
|
|
365
|
-
| `test-server/test-tools-codemode.md` | Code mode specific test prompts |
|
|
366
|
-
| `test-server/test-resources.md` | MCP resource verification prompts |
|
|
367
|
-
| `test-server/test-prompts.md` | MCP prompt verification prompts |
|
|
368
|
-
| `test-server/test-agent-experience.md` | 20 open-ended scenarios — validates help resource sufficiency |
|
|
369
|
-
| `test-server/test-help-resources.mjs` | Integration test — slim instructions + help resource filtering |
|
|
370
|
-
| `test-server/test-tool-annotations.mjs` | Integration test — openWorldHint annotation verification |
|
|
371
|
-
| `test-server/fixtures/` | Test fixture files (e.g., `sample.csv`) |
|
|
372
|
-
| `tests/adapters/tool-annotations.test.ts` | Vitest invariant — every tool has `annotations` with explicit `readOnlyHint`, per-group checks, title validation |
|
|
373
|
-
| `tests/adapters/tool-output-schemas.test.ts` | Vitest invariant — every tool has `outputSchema`, error response acceptance, centralized schema wiring, no orphans |
|
|
374
|
-
| `tests/` | Vitest unit tests (per-module) |
|
|
375
|
-
| `tests/e2e/` | Playwright E2E tests (~50 spec files, ~300+ tests) — HTTP/SSE transport parity |
|
|
376
|
-
| `benchmarks/` | Vitest bench performance benchmarks |
|
|
377
|
-
|
|
378
|
-
### E2E Spec Files (`tests/e2e/`)
|
|
379
|
-
|
|
380
|
-
| Spec File | Coverage |
|
|
381
|
-
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
382
|
-
| `zod-sweep.spec.ts` | Zod validation sweep — every WASM tool called with `{}` |
|
|
383
|
-
| `zod-sweep-native.spec.ts` | Zod validation sweep — 20 native-only tools (FTS5, window, transactions, SpatiaLite) |
|
|
384
|
-
| `errors.spec.ts` | Basic error path tests |
|
|
385
|
-
| `errors-extended.spec.ts` | Per-group domain error paths |
|
|
386
|
-
| `errors-native.spec.ts` | Native-only error paths (20 tests) |
|
|
387
|
-
| `codemode.spec.ts` | Sandbox lifecycle, security, readonly, workflows, window function smoke tests, API discoverability |
|
|
388
|
-
| `codemode-groups.spec.ts` | All 9 groups via `sqlite.*` API |
|
|
389
|
-
| `codemode-introspection.spec.ts` | Introspection code-mode-only params (~16 tests) |
|
|
390
|
-
| `numeric-coercion.spec.ts` | String-typed numeric param coercion |
|
|
391
|
-
| `numeric-coercion-native.spec.ts` | Native-only numeric coercion (8 tests) |
|
|
392
|
-
| `boundary.spec.ts` | Empty tables, NULLs, idempotency, edge cases, vector empty table edges |
|
|
393
|
-
| `help-resources.spec.ts` | Root + 8 group help resources listed, readable, non-empty |
|
|
394
|
-
| `aliases.spec.ts` | Backward-compatible parameter aliases (14 tests) |
|
|
395
|
-
| `resources.spec.ts` | MCP resource verification (schema, tables, indexes, health, meta, insights, help) |
|
|
396
|
-
| `prompts.spec.ts` | MCP prompt verification (argsSchema, required args, content assertions) |
|
|
397
|
-
| `transactions-nested.spec.ts` | Nested savepoint data correctness (~4 tests) |
|
|
398
|
-
| `integration-workflows.spec.ts` | Cross-group pipelines (~8 tests) |
|
|
399
|
-
| `payloads-*.spec.ts` | Per-group payload correctness (core, json, text, fts, stats, vector, geo, admin, introspection, migration, spatialite, transactions, window, virtual, csv) |
|
|
400
|
-
| `auth.spec.ts`, `oauth-discovery.spec.ts` | OAuth 2.1 and RFC 9728 metadata |
|
|
401
|
-
| `health.spec.ts` | Health endpoint verification |
|
|
402
|
-
| `security.spec.ts` | Security header assertions, HSTS |
|
|
403
|
-
| `sessions.spec.ts`, `session-advanced.spec.ts` | Session management (cross-protocol, sequential isolation, post-DELETE) |
|
|
404
|
-
| `streaming.spec.ts`, `streamable-http.spec.ts` | Raw SSE streaming verification |
|
|
405
|
-
| `rate-limiting.spec.ts` | 429 burst, Retry-After header, health exemption |
|
|
406
|
-
| `protocols.spec.ts` | Transport protocol tests |
|
|
407
|
-
| `stateless.spec.ts` | Stateless mode tests |
|
|
408
|
-
| `tools.spec.ts` | Core tool listing and invocation |
|
|
409
|
-
| `native.spec.ts`, `wasm.spec.ts` | Backend-specific tests |
|