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.
Files changed (508) hide show
  1. package/README.md +247 -169
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/adapters/database-adapter.d.ts +173 -0
  4. package/dist/adapters/database-adapter.d.ts.map +1 -0
  5. package/dist/adapters/query-validation.d.ts +20 -0
  6. package/dist/adapters/query-validation.d.ts.map +1 -0
  7. package/dist/adapters/registration/index.d.ts +4 -0
  8. package/dist/adapters/registration/index.d.ts.map +1 -0
  9. package/dist/adapters/registration/prompts.d.ts +7 -0
  10. package/dist/adapters/registration/prompts.d.ts.map +1 -0
  11. package/dist/adapters/registration/resources.d.ts +7 -0
  12. package/dist/adapters/registration/resources.d.ts.map +1 -0
  13. package/dist/adapters/registration/tools.d.ts +9 -0
  14. package/dist/adapters/registration/tools.d.ts.map +1 -0
  15. package/dist/adapters/sqlite/index.d.ts +9 -0
  16. package/dist/adapters/sqlite/index.d.ts.map +1 -0
  17. package/dist/adapters/sqlite/json-utils.d.ts +100 -0
  18. package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
  19. package/dist/adapters/sqlite/prompts/analysis.d.ts +23 -0
  20. package/dist/adapters/sqlite/prompts/analysis.d.ts.map +1 -0
  21. package/dist/adapters/sqlite/prompts/index.d.ts +16 -0
  22. package/dist/adapters/sqlite/prompts/index.d.ts.map +1 -0
  23. package/dist/adapters/sqlite/prompts/query.d.ts +19 -0
  24. package/dist/adapters/sqlite/prompts/query.d.ts.map +1 -0
  25. package/dist/adapters/sqlite/prompts/schema.d.ts +20 -0
  26. package/dist/adapters/sqlite/prompts/schema.d.ts.map +1 -0
  27. package/dist/adapters/sqlite/query-executor.d.ts +38 -0
  28. package/dist/adapters/sqlite/query-executor.d.ts.map +1 -0
  29. package/dist/adapters/sqlite/resources.d.ts +13 -0
  30. package/dist/adapters/sqlite/resources.d.ts.map +1 -0
  31. package/dist/adapters/sqlite/schema-manager.d.ts +69 -0
  32. package/dist/adapters/sqlite/schema-manager.d.ts.map +1 -0
  33. package/dist/adapters/sqlite/schemas/admin.d.ts +459 -0
  34. package/dist/adapters/sqlite/schemas/admin.d.ts.map +1 -0
  35. package/dist/adapters/sqlite/schemas/codemode.d.ts +30 -0
  36. package/dist/adapters/sqlite/schemas/codemode.d.ts.map +1 -0
  37. package/dist/adapters/sqlite/schemas/common.d.ts +9 -0
  38. package/dist/adapters/sqlite/schemas/common.d.ts.map +1 -0
  39. package/dist/adapters/sqlite/schemas/core.d.ts +530 -0
  40. package/dist/adapters/sqlite/schemas/core.d.ts.map +1 -0
  41. package/dist/adapters/sqlite/schemas/error-mixin.d.ts +10 -0
  42. package/dist/adapters/sqlite/schemas/error-mixin.d.ts.map +1 -0
  43. package/dist/adapters/sqlite/schemas/fts.d.ts +106 -0
  44. package/dist/adapters/sqlite/schemas/fts.d.ts.map +1 -0
  45. package/dist/adapters/sqlite/schemas/geo.d.ts +135 -0
  46. package/dist/adapters/sqlite/schemas/geo.d.ts.map +1 -0
  47. package/dist/adapters/sqlite/schemas/index.d.ts +23 -0
  48. package/dist/adapters/sqlite/schemas/index.d.ts.map +1 -0
  49. package/dist/adapters/sqlite/schemas/introspection.d.ts +583 -0
  50. package/dist/adapters/sqlite/schemas/introspection.d.ts.map +1 -0
  51. package/dist/adapters/sqlite/schemas/json.d.ts +849 -0
  52. package/dist/adapters/sqlite/schemas/json.d.ts.map +1 -0
  53. package/dist/adapters/sqlite/schemas/migration.d.ts +220 -0
  54. package/dist/adapters/sqlite/schemas/migration.d.ts.map +1 -0
  55. package/dist/adapters/sqlite/schemas/native.d.ts +235 -0
  56. package/dist/adapters/sqlite/schemas/native.d.ts.map +1 -0
  57. package/dist/adapters/sqlite/schemas/server.d.ts +13 -0
  58. package/dist/adapters/sqlite/schemas/server.d.ts.map +1 -0
  59. package/dist/adapters/sqlite/schemas/spatialite.d.ts +114 -0
  60. package/dist/adapters/sqlite/schemas/spatialite.d.ts.map +1 -0
  61. package/dist/adapters/sqlite/schemas/stats.d.ts +780 -0
  62. package/dist/adapters/sqlite/schemas/stats.d.ts.map +1 -0
  63. package/dist/adapters/sqlite/schemas/text.d.ts +570 -0
  64. package/dist/adapters/sqlite/schemas/text.d.ts.map +1 -0
  65. package/dist/adapters/sqlite/schemas/vector.d.ts +252 -0
  66. package/dist/adapters/sqlite/schemas/vector.d.ts.map +1 -0
  67. package/dist/adapters/sqlite/schemas/virtual.d.ts +257 -0
  68. package/dist/adapters/sqlite/schemas/virtual.d.ts.map +1 -0
  69. package/dist/adapters/sqlite/schemas/where.d.ts +20 -0
  70. package/dist/adapters/sqlite/schemas/where.d.ts.map +1 -0
  71. package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts +13 -0
  72. package/dist/adapters/sqlite/sqlite-adapter/lifecycle.d.ts.map +1 -0
  73. package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts +7 -0
  74. package/dist/adapters/sqlite/sqlite-adapter/schema.d.ts.map +1 -0
  75. package/dist/adapters/sqlite/sqlite-adapter.d.ts +138 -0
  76. package/dist/adapters/sqlite/sqlite-adapter.d.ts.map +1 -0
  77. package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts +7 -0
  78. package/dist/adapters/sqlite/tools/admin/backup/analyze.d.ts.map +1 -0
  79. package/dist/adapters/sqlite/tools/admin/backup/create.d.ts +11 -0
  80. package/dist/adapters/sqlite/tools/admin/backup/create.d.ts.map +1 -0
  81. package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts +7 -0
  82. package/dist/adapters/sqlite/tools/admin/backup/dump.d.ts.map +1 -0
  83. package/dist/adapters/sqlite/tools/admin/backup/index.d.ts +7 -0
  84. package/dist/adapters/sqlite/tools/admin/backup/index.d.ts.map +1 -0
  85. package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts +7 -0
  86. package/dist/adapters/sqlite/tools/admin/backup/integrity.d.ts.map +1 -0
  87. package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts +7 -0
  88. package/dist/adapters/sqlite/tools/admin/backup/optimize.d.ts.map +1 -0
  89. package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts +7 -0
  90. package/dist/adapters/sqlite/tools/admin/backup/restore.d.ts.map +1 -0
  91. package/dist/adapters/sqlite/tools/admin/helpers.d.ts +18 -0
  92. package/dist/adapters/sqlite/tools/admin/helpers.d.ts.map +1 -0
  93. package/dist/adapters/sqlite/tools/admin/index.d.ts +10 -0
  94. package/dist/adapters/sqlite/tools/admin/index.d.ts.map +1 -0
  95. package/dist/adapters/sqlite/tools/admin/pragma.d.ts +37 -0
  96. package/dist/adapters/sqlite/tools/admin/pragma.d.ts.map +1 -0
  97. package/dist/adapters/sqlite/tools/admin/reindex.d.ts +10 -0
  98. package/dist/adapters/sqlite/tools/admin/reindex.d.ts.map +1 -0
  99. package/dist/adapters/sqlite/tools/admin/verify.d.ts +13 -0
  100. package/dist/adapters/sqlite/tools/admin/verify.d.ts.map +1 -0
  101. package/dist/adapters/sqlite/tools/admin/wal.d.ts +10 -0
  102. package/dist/adapters/sqlite/tools/admin/wal.d.ts.map +1 -0
  103. package/dist/adapters/sqlite/tools/codemode.d.ts +22 -0
  104. package/dist/adapters/sqlite/tools/codemode.d.ts.map +1 -0
  105. package/dist/adapters/sqlite/tools/column-validation.d.ts +26 -0
  106. package/dist/adapters/sqlite/tools/column-validation.d.ts.map +1 -0
  107. package/dist/adapters/sqlite/tools/core/alter-table.d.ts +11 -0
  108. package/dist/adapters/sqlite/tools/core/alter-table.d.ts.map +1 -0
  109. package/dist/adapters/sqlite/tools/core/constraints.d.ts +10 -0
  110. package/dist/adapters/sqlite/tools/core/constraints.d.ts.map +1 -0
  111. package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts +20 -0
  112. package/dist/adapters/sqlite/tools/core/convenience-helpers.d.ts.map +1 -0
  113. package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts +20 -0
  114. package/dist/adapters/sqlite/tools/core/convenience-schemas.d.ts.map +1 -0
  115. package/dist/adapters/sqlite/tools/core/convenience.d.ts +29 -0
  116. package/dist/adapters/sqlite/tools/core/convenience.d.ts.map +1 -0
  117. package/dist/adapters/sqlite/tools/core/datetime.d.ts +11 -0
  118. package/dist/adapters/sqlite/tools/core/datetime.d.ts.map +1 -0
  119. package/dist/adapters/sqlite/tools/core/index.d.ts +14 -0
  120. package/dist/adapters/sqlite/tools/core/index.d.ts.map +1 -0
  121. package/dist/adapters/sqlite/tools/core/indexes.d.ts +20 -0
  122. package/dist/adapters/sqlite/tools/core/indexes.d.ts.map +1 -0
  123. package/dist/adapters/sqlite/tools/core/queries.d.ts +16 -0
  124. package/dist/adapters/sqlite/tools/core/queries.d.ts.map +1 -0
  125. package/dist/adapters/sqlite/tools/core/tables.d.ts +37 -0
  126. package/dist/adapters/sqlite/tools/core/tables.d.ts.map +1 -0
  127. package/dist/adapters/sqlite/tools/core/triggers.d.ts +18 -0
  128. package/dist/adapters/sqlite/tools/core/triggers.d.ts.map +1 -0
  129. package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
  130. package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
  131. package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
  132. package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
  133. package/dist/adapters/sqlite/tools/index.d.ts +33 -0
  134. package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
  135. package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts +10 -0
  136. package/dist/adapters/sqlite/tools/introspection/analysis/constraints.d.ts.map +1 -0
  137. package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts +11 -0
  138. package/dist/adapters/sqlite/tools/introspection/analysis/diff.d.ts.map +1 -0
  139. package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts +10 -0
  140. package/dist/adapters/sqlite/tools/introspection/analysis/index.d.ts.map +1 -0
  141. package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts +9 -0
  142. package/dist/adapters/sqlite/tools/introspection/analysis/risks.d.ts.map +1 -0
  143. package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts +40 -0
  144. package/dist/adapters/sqlite/tools/introspection/analysis/snapshot.d.ts.map +1 -0
  145. package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts +9 -0
  146. package/dist/adapters/sqlite/tools/introspection/diagnostics/index.d.ts.map +1 -0
  147. package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts +10 -0
  148. package/dist/adapters/sqlite/tools/introspection/diagnostics/indexes.d.ts.map +1 -0
  149. package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts +10 -0
  150. package/dist/adapters/sqlite/tools/introspection/diagnostics/query-plan.d.ts.map +1 -0
  151. package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts +10 -0
  152. package/dist/adapters/sqlite/tools/introspection/diagnostics/storage.d.ts.map +1 -0
  153. package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts +44 -0
  154. package/dist/adapters/sqlite/tools/introspection/graph/helpers.d.ts.map +1 -0
  155. package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts +9 -0
  156. package/dist/adapters/sqlite/tools/introspection/graph/index.d.ts.map +1 -0
  157. package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts +12 -0
  158. package/dist/adapters/sqlite/tools/introspection/graph/tools.d.ts.map +1 -0
  159. package/dist/adapters/sqlite/tools/introspection/index.d.ts +17 -0
  160. package/dist/adapters/sqlite/tools/introspection/index.d.ts.map +1 -0
  161. package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts +21 -0
  162. package/dist/adapters/sqlite/tools/json-helpers/helpers.d.ts.map +1 -0
  163. package/dist/adapters/sqlite/tools/json-helpers/index.d.ts +17 -0
  164. package/dist/adapters/sqlite/tools/json-helpers/index.d.ts.map +1 -0
  165. package/dist/adapters/sqlite/tools/json-helpers/read.d.ts +24 -0
  166. package/dist/adapters/sqlite/tools/json-helpers/read.d.ts.map +1 -0
  167. package/dist/adapters/sqlite/tools/json-helpers/write.d.ts +24 -0
  168. package/dist/adapters/sqlite/tools/json-helpers/write.d.ts.map +1 -0
  169. package/dist/adapters/sqlite/tools/json-operations/crud.d.ts +39 -0
  170. package/dist/adapters/sqlite/tools/json-operations/crud.d.ts.map +1 -0
  171. package/dist/adapters/sqlite/tools/json-operations/diff.d.ts +11 -0
  172. package/dist/adapters/sqlite/tools/json-operations/diff.d.ts.map +1 -0
  173. package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts +18 -0
  174. package/dist/adapters/sqlite/tools/json-operations/helpers.d.ts.map +1 -0
  175. package/dist/adapters/sqlite/tools/json-operations/index.d.ts +10 -0
  176. package/dist/adapters/sqlite/tools/json-operations/index.d.ts.map +1 -0
  177. package/dist/adapters/sqlite/tools/json-operations/query.d.ts +24 -0
  178. package/dist/adapters/sqlite/tools/json-operations/query.d.ts.map +1 -0
  179. package/dist/adapters/sqlite/tools/json-operations/security.d.ts +19 -0
  180. package/dist/adapters/sqlite/tools/json-operations/security.d.ts.map +1 -0
  181. package/dist/adapters/sqlite/tools/json-operations/transform.d.ts +24 -0
  182. package/dist/adapters/sqlite/tools/json-operations/transform.d.ts.map +1 -0
  183. package/dist/adapters/sqlite/tools/migration/helpers.d.ts +34 -0
  184. package/dist/adapters/sqlite/tools/migration/helpers.d.ts.map +1 -0
  185. package/dist/adapters/sqlite/tools/migration/index.d.ts +15 -0
  186. package/dist/adapters/sqlite/tools/migration/index.d.ts.map +1 -0
  187. package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts +4 -0
  188. package/dist/adapters/sqlite/tools/migration/tracking/apply.d.ts.map +1 -0
  189. package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts +4 -0
  190. package/dist/adapters/sqlite/tools/migration/tracking/history.d.ts.map +1 -0
  191. package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts +7 -0
  192. package/dist/adapters/sqlite/tools/migration/tracking/index.d.ts.map +1 -0
  193. package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts +4 -0
  194. package/dist/adapters/sqlite/tools/migration/tracking/init.d.ts.map +1 -0
  195. package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts +4 -0
  196. package/dist/adapters/sqlite/tools/migration/tracking/record.d.ts.map +1 -0
  197. package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts +4 -0
  198. package/dist/adapters/sqlite/tools/migration/tracking/rollback.d.ts.map +1 -0
  199. package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts +4 -0
  200. package/dist/adapters/sqlite/tools/migration/tracking/status.d.ts.map +1 -0
  201. package/dist/adapters/sqlite/tools/stats/advanced.d.ts +28 -0
  202. package/dist/adapters/sqlite/tools/stats/advanced.d.ts.map +1 -0
  203. package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts +22 -0
  204. package/dist/adapters/sqlite/tools/stats/anomaly-detection.d.ts.map +1 -0
  205. package/dist/adapters/sqlite/tools/stats/basic.d.ts +32 -0
  206. package/dist/adapters/sqlite/tools/stats/basic.d.ts.map +1 -0
  207. package/dist/adapters/sqlite/tools/stats/helpers.d.ts +27 -0
  208. package/dist/adapters/sqlite/tools/stats/helpers.d.ts.map +1 -0
  209. package/dist/adapters/sqlite/tools/stats/index.d.ts +12 -0
  210. package/dist/adapters/sqlite/tools/stats/index.d.ts.map +1 -0
  211. package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts +7 -0
  212. package/dist/adapters/sqlite/tools/stats/inference/hypothesis.d.ts.map +1 -0
  213. package/dist/adapters/sqlite/tools/stats/inference/index.d.ts +4 -0
  214. package/dist/adapters/sqlite/tools/stats/inference/index.d.ts.map +1 -0
  215. package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts +7 -0
  216. package/dist/adapters/sqlite/tools/stats/inference/outlier.d.ts.map +1 -0
  217. package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts +7 -0
  218. package/dist/adapters/sqlite/tools/stats/inference/regression.d.ts.map +1 -0
  219. package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts +17 -0
  220. package/dist/adapters/sqlite/tools/stats/math-helpers.d.ts.map +1 -0
  221. package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts +15 -0
  222. package/dist/adapters/sqlite/tools/stats/schema-risks.d.ts.map +1 -0
  223. package/dist/adapters/sqlite/tools/text/formatting.d.ts +48 -0
  224. package/dist/adapters/sqlite/tools/text/formatting.d.ts.map +1 -0
  225. package/dist/adapters/sqlite/tools/text/helpers.d.ts +22 -0
  226. package/dist/adapters/sqlite/tools/text/helpers.d.ts.map +1 -0
  227. package/dist/adapters/sqlite/tools/text/index.d.ts +10 -0
  228. package/dist/adapters/sqlite/tools/text/index.d.ts.map +1 -0
  229. package/dist/adapters/sqlite/tools/text/regex.d.ts +21 -0
  230. package/dist/adapters/sqlite/tools/text/regex.d.ts.map +1 -0
  231. package/dist/adapters/sqlite/tools/text/search.d.ts +17 -0
  232. package/dist/adapters/sqlite/tools/text/search.d.ts.map +1 -0
  233. package/dist/adapters/sqlite/tools/text/sentiment.d.ts +13 -0
  234. package/dist/adapters/sqlite/tools/text/sentiment.d.ts.map +1 -0
  235. package/dist/adapters/sqlite/tools/text/validate.d.ts +11 -0
  236. package/dist/adapters/sqlite/tools/text/validate.d.ts.map +1 -0
  237. package/dist/adapters/sqlite/tools/vector/helpers.d.ts +11 -0
  238. package/dist/adapters/sqlite/tools/vector/helpers.d.ts.map +1 -0
  239. package/dist/adapters/sqlite/tools/vector/index.d.ts +14 -0
  240. package/dist/adapters/sqlite/tools/vector/index.d.ts.map +1 -0
  241. package/dist/adapters/sqlite/tools/vector/metadata.d.ts +28 -0
  242. package/dist/adapters/sqlite/tools/vector/metadata.d.ts.map +1 -0
  243. package/dist/adapters/sqlite/tools/vector/search.d.ts +16 -0
  244. package/dist/adapters/sqlite/tools/vector/search.d.ts.map +1 -0
  245. package/dist/adapters/sqlite/tools/vector/storage.d.ts +24 -0
  246. package/dist/adapters/sqlite/tools/vector/storage.d.ts.map +1 -0
  247. package/dist/adapters/sqlite/tools/vector/tools.d.ts +9 -0
  248. package/dist/adapters/sqlite/tools/vector/tools.d.ts.map +1 -0
  249. package/dist/adapters/sqlite/tools/virtual/analysis.d.ts +24 -0
  250. package/dist/adapters/sqlite/tools/virtual/analysis.d.ts.map +1 -0
  251. package/dist/adapters/sqlite/tools/virtual/extensions.d.ts +13 -0
  252. package/dist/adapters/sqlite/tools/virtual/extensions.d.ts.map +1 -0
  253. package/dist/adapters/sqlite/tools/virtual/helpers.d.ts +18 -0
  254. package/dist/adapters/sqlite/tools/virtual/helpers.d.ts.map +1 -0
  255. package/dist/adapters/sqlite/tools/virtual/index.d.ts +10 -0
  256. package/dist/adapters/sqlite/tools/virtual/index.d.ts.map +1 -0
  257. package/dist/adapters/sqlite/tools/virtual/views.d.ts +21 -0
  258. package/dist/adapters/sqlite/tools/virtual/views.d.ts.map +1 -0
  259. package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts +4 -0
  260. package/dist/adapters/sqlite/tools/virtual/vtable/analyze-csv.d.ts.map +1 -0
  261. package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts +4 -0
  262. package/dist/adapters/sqlite/tools/virtual/vtable/csv.d.ts.map +1 -0
  263. package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts +4 -0
  264. package/dist/adapters/sqlite/tools/virtual/vtable/drop.d.ts.map +1 -0
  265. package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts +6 -0
  266. package/dist/adapters/sqlite/tools/virtual/vtable/index.d.ts.map +1 -0
  267. package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts +4 -0
  268. package/dist/adapters/sqlite/tools/virtual/vtable/info.d.ts.map +1 -0
  269. package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts +4 -0
  270. package/dist/adapters/sqlite/tools/virtual/vtable/list.d.ts.map +1 -0
  271. package/dist/adapters/sqlite/types.d.ts +89 -0
  272. package/dist/adapters/sqlite/types.d.ts.map +1 -0
  273. package/dist/adapters/sqlite-helpers.d.ts +51 -0
  274. package/dist/adapters/sqlite-helpers.d.ts.map +1 -0
  275. package/dist/adapters/sqlite-native/extensions.d.ts +17 -0
  276. package/dist/adapters/sqlite-native/extensions.d.ts.map +1 -0
  277. package/dist/adapters/sqlite-native/index.d.ts +11 -0
  278. package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
  279. package/dist/adapters/sqlite-native/native-query-executor.d.ts +24 -0
  280. package/dist/adapters/sqlite-native/native-query-executor.d.ts.map +1 -0
  281. package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts +160 -0
  282. package/dist/adapters/sqlite-native/native-sqlite-adapter.d.ts.map +1 -0
  283. package/dist/adapters/sqlite-native/registration/index.d.ts +12 -0
  284. package/dist/adapters/sqlite-native/registration/index.d.ts.map +1 -0
  285. package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts +23 -0
  286. package/dist/adapters/sqlite-native/tools/spatialite/analysis.d.ts.map +1 -0
  287. package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts +15 -0
  288. package/dist/adapters/sqlite-native/tools/spatialite/index.d.ts.map +1 -0
  289. package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts +22 -0
  290. package/dist/adapters/sqlite-native/tools/spatialite/loader.d.ts.map +1 -0
  291. package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts +78 -0
  292. package/dist/adapters/sqlite-native/tools/spatialite/schemas.d.ts.map +1 -0
  293. package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts +30 -0
  294. package/dist/adapters/sqlite-native/tools/spatialite/tools.d.ts.map +1 -0
  295. package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
  296. package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
  297. package/dist/adapters/sqlite-native/tools/window.d.ts +7 -0
  298. package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
  299. package/dist/adapters/sqlite-native/transaction-methods.d.ts +36 -0
  300. package/dist/adapters/sqlite-native/transaction-methods.d.ts.map +1 -0
  301. package/dist/audit/backup-manager.d.ts +90 -0
  302. package/dist/audit/backup-manager.d.ts.map +1 -0
  303. package/dist/audit/index.d.ts +11 -0
  304. package/dist/audit/index.d.ts.map +1 -0
  305. package/dist/audit/interceptor.d.ts +54 -0
  306. package/dist/audit/interceptor.d.ts.map +1 -0
  307. package/dist/audit/logger.d.ts +62 -0
  308. package/dist/audit/logger.d.ts.map +1 -0
  309. package/dist/audit/types.d.ts +112 -0
  310. package/dist/audit/types.d.ts.map +1 -0
  311. package/dist/auth/auth-context.d.ts +28 -0
  312. package/dist/auth/auth-context.d.ts.map +1 -0
  313. package/dist/auth/authorization-server-discovery.d.ts +90 -0
  314. package/dist/auth/authorization-server-discovery.d.ts.map +1 -0
  315. package/dist/auth/errors.d.ts +74 -0
  316. package/dist/auth/errors.d.ts.map +1 -0
  317. package/dist/auth/middleware/core.d.ts +22 -0
  318. package/dist/auth/middleware/core.d.ts.map +1 -0
  319. package/dist/auth/middleware/express-auth.d.ts +13 -0
  320. package/dist/auth/middleware/express-auth.d.ts.map +1 -0
  321. package/dist/auth/middleware/express-scopes.d.ts +6 -0
  322. package/dist/auth/middleware/express-scopes.d.ts.map +1 -0
  323. package/dist/auth/middleware/extraction.d.ts +2 -0
  324. package/dist/auth/middleware/extraction.d.ts.map +1 -0
  325. package/dist/auth/middleware/index.d.ts +5 -0
  326. package/dist/auth/middleware/index.d.ts.map +1 -0
  327. package/dist/auth/oauth-resource-server.d.ts +74 -0
  328. package/dist/auth/oauth-resource-server.d.ts.map +1 -0
  329. package/dist/auth/scope-map.d.ts +24 -0
  330. package/dist/auth/scope-map.d.ts.map +1 -0
  331. package/dist/auth/scopes/constants.d.ts +40 -0
  332. package/dist/auth/scopes/constants.d.ts.map +1 -0
  333. package/dist/auth/scopes/display.d.ts +5 -0
  334. package/dist/auth/scopes/display.d.ts.map +1 -0
  335. package/dist/auth/scopes/enforcement.d.ts +27 -0
  336. package/dist/auth/scopes/enforcement.d.ts.map +1 -0
  337. package/dist/auth/scopes/index.d.ts +6 -0
  338. package/dist/auth/scopes/index.d.ts.map +1 -0
  339. package/dist/auth/scopes/mapping.d.ts +39 -0
  340. package/dist/auth/scopes/mapping.d.ts.map +1 -0
  341. package/dist/auth/scopes/validation.d.ts +27 -0
  342. package/dist/auth/scopes/validation.d.ts.map +1 -0
  343. package/dist/auth/token-validator.d.ts +63 -0
  344. package/dist/auth/token-validator.d.ts.map +1 -0
  345. package/dist/auth/transport-agnostic.d.ts +11 -0
  346. package/dist/auth/transport-agnostic.d.ts.map +1 -0
  347. package/dist/auth/types.d.ts +257 -0
  348. package/dist/auth/types.d.ts.map +1 -0
  349. package/dist/chunk-E5IESRTK.js +489 -0
  350. package/dist/{chunk-TVIZ3XJH.js → chunk-FR65YPAH.js} +8509 -3925
  351. package/dist/{chunk-AOUL5SHS.js → chunk-L552U3QS.js} +880 -252
  352. package/dist/chunk-THATOQRT.js +2624 -0
  353. package/dist/chunk-W5WQVNVX.js +568 -0
  354. package/dist/cli.d.ts +7 -0
  355. package/dist/cli.d.ts.map +1 -0
  356. package/dist/cli.js +114 -19
  357. package/dist/codemode/api-constants.d.ts +40 -0
  358. package/dist/codemode/api-constants.d.ts.map +1 -0
  359. package/dist/codemode/api.d.ts +70 -0
  360. package/dist/codemode/api.d.ts.map +1 -0
  361. package/dist/codemode/auto-return.d.ts +25 -0
  362. package/dist/codemode/auto-return.d.ts.map +1 -0
  363. package/dist/codemode/index.d.ts +12 -0
  364. package/dist/codemode/index.d.ts.map +1 -0
  365. package/dist/codemode/sandbox-factory.d.ts +72 -0
  366. package/dist/codemode/sandbox-factory.d.ts.map +1 -0
  367. package/dist/codemode/sandbox.d.ts +54 -0
  368. package/dist/codemode/sandbox.d.ts.map +1 -0
  369. package/dist/codemode/security.d.ts +45 -0
  370. package/dist/codemode/security.d.ts.map +1 -0
  371. package/dist/codemode/types.d.ts +167 -0
  372. package/dist/codemode/types.d.ts.map +1 -0
  373. package/dist/constants/server-instructions.d.ts +22 -0
  374. package/dist/constants/server-instructions.d.ts.map +1 -0
  375. package/dist/filtering/tool-constants.d.ts +45 -0
  376. package/dist/filtering/tool-constants.d.ts.map +1 -0
  377. package/dist/filtering/tool-filter.d.ts +82 -0
  378. package/dist/filtering/tool-filter.d.ts.map +1 -0
  379. package/dist/{http-VSB7DBJR.js → http-HWTUVFIA.js} +587 -358
  380. package/dist/index.d.ts +9 -842
  381. package/dist/index.d.ts.map +1 -0
  382. package/dist/index.js +4 -5
  383. package/dist/server/mcp-server.d.ts +66 -0
  384. package/dist/server/mcp-server.d.ts.map +1 -0
  385. package/dist/server/registration/audit-tools.d.ts +13 -0
  386. package/dist/server/registration/audit-tools.d.ts.map +1 -0
  387. package/dist/server/registration/built-in-tools.d.ts +8 -0
  388. package/dist/server/registration/built-in-tools.d.ts.map +1 -0
  389. package/dist/server/registration/help-resources.d.ts +7 -0
  390. package/dist/server/registration/help-resources.d.ts.map +1 -0
  391. package/dist/server/registration/index.d.ts +4 -0
  392. package/dist/server/registration/index.d.ts.map +1 -0
  393. package/dist/{sqlite-26V3Y4MK.js → sqlite-6C3AJI4I.js} +115 -147
  394. package/dist/{sqlite-native-5O7FZJGB.js → sqlite-native-ZSSWCTYC.js} +1016 -349
  395. package/dist/transports/http/index.d.ts +8 -0
  396. package/dist/transports/http/index.d.ts.map +1 -0
  397. package/dist/transports/http/middleware.d.ts +25 -0
  398. package/dist/transports/http/middleware.d.ts.map +1 -0
  399. package/dist/transports/http/oauth.d.ts +24 -0
  400. package/dist/transports/http/oauth.d.ts.map +1 -0
  401. package/dist/transports/http/session.d.ts +2 -0
  402. package/dist/transports/http/session.d.ts.map +1 -0
  403. package/dist/transports/http/sessions/index.d.ts +4 -0
  404. package/dist/transports/http/sessions/index.d.ts.map +1 -0
  405. package/dist/transports/http/sessions/legacy-sse.d.ts +6 -0
  406. package/dist/transports/http/sessions/legacy-sse.d.ts.map +1 -0
  407. package/dist/transports/http/sessions/mutex.d.ts +6 -0
  408. package/dist/transports/http/sessions/mutex.d.ts.map +1 -0
  409. package/dist/transports/http/sessions/stateful.d.ts +12 -0
  410. package/dist/transports/http/sessions/stateful.d.ts.map +1 -0
  411. package/dist/transports/http/sessions/stateless.d.ts +6 -0
  412. package/dist/transports/http/sessions/stateless.d.ts.map +1 -0
  413. package/dist/transports/http/transport.d.ts +65 -0
  414. package/dist/transports/http/transport.d.ts.map +1 -0
  415. package/dist/transports/http/type-adapters.d.ts +20 -0
  416. package/dist/transports/http/type-adapters.d.ts.map +1 -0
  417. package/dist/transports/http/types.d.ts +120 -0
  418. package/dist/transports/http/types.d.ts.map +1 -0
  419. package/dist/types/adapter.d.ts +138 -0
  420. package/dist/types/adapter.d.ts.map +1 -0
  421. package/dist/types/auth.d.ts +79 -0
  422. package/dist/types/auth.d.ts.map +1 -0
  423. package/dist/types/database.d.ts +100 -0
  424. package/dist/types/database.d.ts.map +1 -0
  425. package/dist/types/filtering.d.ts +41 -0
  426. package/dist/types/filtering.d.ts.map +1 -0
  427. package/dist/types/index.d.ts +13 -0
  428. package/dist/types/index.d.ts.map +1 -0
  429. package/dist/types/server.d.ts +48 -0
  430. package/dist/types/server.d.ts.map +1 -0
  431. package/dist/utils/annotations.d.ts +62 -0
  432. package/dist/utils/annotations.d.ts.map +1 -0
  433. package/dist/utils/errors/base.d.ts +33 -0
  434. package/dist/utils/errors/base.d.ts.map +1 -0
  435. package/dist/utils/errors/categories.d.ts +41 -0
  436. package/dist/utils/errors/categories.d.ts.map +1 -0
  437. package/dist/utils/errors/classes.d.ts +124 -0
  438. package/dist/utils/errors/classes.d.ts.map +1 -0
  439. package/dist/utils/errors/error-response-fields.d.ts +24 -0
  440. package/dist/utils/errors/error-response-fields.d.ts.map +1 -0
  441. package/dist/utils/errors/format.d.ts +74 -0
  442. package/dist/utils/errors/format.d.ts.map +1 -0
  443. package/dist/utils/errors/index.d.ts +11 -0
  444. package/dist/utils/errors/index.d.ts.map +1 -0
  445. package/dist/utils/errors/suggestions.d.ts +16 -0
  446. package/dist/utils/errors/suggestions.d.ts.map +1 -0
  447. package/dist/utils/icons.d.ts +19 -0
  448. package/dist/utils/icons.d.ts.map +1 -0
  449. package/dist/utils/identifiers.d.ts +121 -0
  450. package/dist/utils/identifiers.d.ts.map +1 -0
  451. package/dist/utils/index.d.ts +9 -0
  452. package/dist/utils/index.d.ts.map +1 -0
  453. package/dist/utils/insights-manager.d.ts +39 -0
  454. package/dist/utils/insights-manager.d.ts.map +1 -0
  455. package/dist/utils/logger/error-codes.d.ts +48 -0
  456. package/dist/utils/logger/error-codes.d.ts.map +1 -0
  457. package/dist/utils/logger/index.d.ts +22 -0
  458. package/dist/utils/logger/index.d.ts.map +1 -0
  459. package/dist/utils/logger/logger.d.ts +94 -0
  460. package/dist/utils/logger/logger.d.ts.map +1 -0
  461. package/dist/utils/logger/module-logger.d.ts +28 -0
  462. package/dist/utils/logger/module-logger.d.ts.map +1 -0
  463. package/dist/utils/logger/types.d.ts +36 -0
  464. package/dist/utils/logger/types.d.ts.map +1 -0
  465. package/dist/utils/progress-utils.d.ts +54 -0
  466. package/dist/utils/progress-utils.d.ts.map +1 -0
  467. package/dist/utils/redaction.d.ts +4 -0
  468. package/dist/utils/redaction.d.ts.map +1 -0
  469. package/dist/utils/resource-annotations.d.ts +36 -0
  470. package/dist/utils/resource-annotations.d.ts.map +1 -0
  471. package/dist/utils/validate-json-path.d.ts +43 -0
  472. package/dist/utils/validate-json-path.d.ts.map +1 -0
  473. package/dist/utils/validate-path.d.ts +37 -0
  474. package/dist/utils/validate-path.d.ts.map +1 -0
  475. package/dist/utils/where-clause.d.ts +42 -0
  476. package/dist/utils/where-clause.d.ts.map +1 -0
  477. package/dist/version.d.ts +10 -0
  478. package/dist/version.d.ts.map +1 -0
  479. package/package.json +33 -20
  480. package/.gitattributes +0 -2
  481. package/dist/chunk-4IA3DB5C.js +0 -135
  482. package/dist/chunk-FW7UCRLN.js +0 -82
  483. package/dist/chunk-RHVEZ42P.js +0 -873
  484. package/dist/chunk-Z2GFQU3G.js +0 -363
  485. package/dist/worker-script.d.ts +0 -2
  486. package/dist/worker-script.js +0 -126
  487. package/playwright.config.ts +0 -101
  488. package/scripts/generate-server-instructions.ts +0 -111
  489. package/server.json +0 -52
  490. package/test-server/README.md +0 -118
  491. package/test-server/code-map.md +0 -409
  492. package/test-server/fixtures/sample.csv +0 -6
  493. package/test-server/reset-database.ps1 +0 -373
  494. package/test-server/sample.csv +0 -11
  495. package/test-server/test-agent-experience.md +0 -243
  496. package/test-server/test-database.sql +0 -388
  497. package/test-server/test-group-tools.md +0 -861
  498. package/test-server/test-help-resources.mjs +0 -238
  499. package/test-server/test-preflight.md +0 -53
  500. package/test-server/test-prompts.md +0 -354
  501. package/test-server/test-resources.md +0 -245
  502. package/test-server/test-tool-annotations.mjs +0 -157
  503. package/test-server/test-tools-advanced-1.md +0 -517
  504. package/test-server/test-tools-advanced-2.md +0 -487
  505. package/test-server/test-tools-codemode.md +0 -629
  506. package/test-server/test-tools.md +0 -176
  507. package/test-server/tool-reference.md +0 -236
  508. 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
- }
@@ -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`.
@@ -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 |
@@ -1,6 +0,0 @@
1
- id,name,category,price,in_stock
2
- 1,Widget A,hardware,9.99,true
3
- 2,Widget B,hardware,14.50,true
4
- 3,Gadget X,electronics,29.99,false
5
- 4,Gadget Y,electronics,49.99,true
6
- 5,Tool Z,accessories,5.25,true