db-mcp 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/.gitattributes +2 -0
  2. package/LICENSE +1 -1
  3. package/README.md +244 -518
  4. package/dist/chunk-4IA3DB5C.js +135 -0
  5. package/dist/chunk-AOUL5SHS.js +930 -0
  6. package/dist/chunk-DWJXQEFA.js +13759 -0
  7. package/dist/chunk-DZQLDEQS.js +879 -0
  8. package/dist/chunk-S5IDDSSB.js +74 -0
  9. package/dist/chunk-Z2GFQU3G.js +363 -0
  10. package/dist/cli.d.ts +0 -7
  11. package/dist/cli.js +227 -183
  12. package/dist/http-VSB7DBJR.js +1541 -0
  13. package/dist/index.d.ts +842 -10
  14. package/dist/index.js +5 -17
  15. package/dist/sqlite-VHBA4ABV.js +600 -0
  16. package/dist/sqlite-native-D2LH5ZT7.js +2498 -0
  17. package/dist/worker-script.d.ts +2 -0
  18. package/dist/worker-script.js +126 -0
  19. package/package.json +26 -16
  20. package/playwright.config.ts +101 -0
  21. package/scripts/generate-server-instructions.ts +111 -0
  22. package/server.json +5 -6
  23. package/test-server/README.md +118 -0
  24. package/test-server/code-map.md +409 -0
  25. package/test-server/fixtures/sample.csv +6 -0
  26. package/test-server/reset-database.ps1 +373 -0
  27. package/test-server/sample.csv +11 -0
  28. package/test-server/test-agent-experience.md +243 -0
  29. package/test-server/test-database.sql +388 -0
  30. package/test-server/test-group-tools.md +861 -0
  31. package/test-server/test-help-resources.mjs +238 -0
  32. package/test-server/test-preflight.md +53 -0
  33. package/test-server/test-prompts.md +354 -0
  34. package/test-server/test-resources.md +245 -0
  35. package/test-server/test-tool-annotations.mjs +157 -0
  36. package/test-server/test-tools-advanced-1.md +517 -0
  37. package/test-server/test-tools-advanced-2.md +487 -0
  38. package/test-server/test-tools-codemode.md +629 -0
  39. package/test-server/test-tools.md +176 -0
  40. package/test-server/tool-reference.md +236 -0
  41. package/tsconfig.test.json +9 -0
  42. package/dist/adapters/DatabaseAdapter.d.ts +0 -141
  43. package/dist/adapters/DatabaseAdapter.d.ts.map +0 -1
  44. package/dist/adapters/DatabaseAdapter.js +0 -131
  45. package/dist/adapters/DatabaseAdapter.js.map +0 -1
  46. package/dist/adapters/sqlite/SchemaManager.d.ts +0 -58
  47. package/dist/adapters/sqlite/SchemaManager.d.ts.map +0 -1
  48. package/dist/adapters/sqlite/SchemaManager.js +0 -187
  49. package/dist/adapters/sqlite/SchemaManager.js.map +0 -1
  50. package/dist/adapters/sqlite/SqliteAdapter.d.ts +0 -161
  51. package/dist/adapters/sqlite/SqliteAdapter.d.ts.map +0 -1
  52. package/dist/adapters/sqlite/SqliteAdapter.js +0 -741
  53. package/dist/adapters/sqlite/SqliteAdapter.js.map +0 -1
  54. package/dist/adapters/sqlite/index.d.ts +0 -9
  55. package/dist/adapters/sqlite/index.d.ts.map +0 -1
  56. package/dist/adapters/sqlite/index.js +0 -8
  57. package/dist/adapters/sqlite/index.js.map +0 -1
  58. package/dist/adapters/sqlite/json-utils.d.ts +0 -100
  59. package/dist/adapters/sqlite/json-utils.d.ts.map +0 -1
  60. package/dist/adapters/sqlite/json-utils.js +0 -274
  61. package/dist/adapters/sqlite/json-utils.js.map +0 -1
  62. package/dist/adapters/sqlite/output-schemas.d.ts +0 -1187
  63. package/dist/adapters/sqlite/output-schemas.d.ts.map +0 -1
  64. package/dist/adapters/sqlite/output-schemas.js +0 -1337
  65. package/dist/adapters/sqlite/output-schemas.js.map +0 -1
  66. package/dist/adapters/sqlite/prompts.d.ts +0 -13
  67. package/dist/adapters/sqlite/prompts.d.ts.map +0 -1
  68. package/dist/adapters/sqlite/prompts.js +0 -605
  69. package/dist/adapters/sqlite/prompts.js.map +0 -1
  70. package/dist/adapters/sqlite/resources.d.ts +0 -13
  71. package/dist/adapters/sqlite/resources.d.ts.map +0 -1
  72. package/dist/adapters/sqlite/resources.js +0 -251
  73. package/dist/adapters/sqlite/resources.js.map +0 -1
  74. package/dist/adapters/sqlite/tools/admin.d.ts +0 -14
  75. package/dist/adapters/sqlite/tools/admin.d.ts.map +0 -1
  76. package/dist/adapters/sqlite/tools/admin.js +0 -788
  77. package/dist/adapters/sqlite/tools/admin.js.map +0 -1
  78. package/dist/adapters/sqlite/tools/core.d.ts +0 -25
  79. package/dist/adapters/sqlite/tools/core.d.ts.map +0 -1
  80. package/dist/adapters/sqlite/tools/core.js +0 -359
  81. package/dist/adapters/sqlite/tools/core.js.map +0 -1
  82. package/dist/adapters/sqlite/tools/fts.d.ts +0 -13
  83. package/dist/adapters/sqlite/tools/fts.d.ts.map +0 -1
  84. package/dist/adapters/sqlite/tools/fts.js +0 -347
  85. package/dist/adapters/sqlite/tools/fts.js.map +0 -1
  86. package/dist/adapters/sqlite/tools/geo.d.ts +0 -14
  87. package/dist/adapters/sqlite/tools/geo.d.ts.map +0 -1
  88. package/dist/adapters/sqlite/tools/geo.js +0 -252
  89. package/dist/adapters/sqlite/tools/geo.js.map +0 -1
  90. package/dist/adapters/sqlite/tools/index.d.ts +0 -30
  91. package/dist/adapters/sqlite/tools/index.d.ts.map +0 -1
  92. package/dist/adapters/sqlite/tools/index.js +0 -61
  93. package/dist/adapters/sqlite/tools/index.js.map +0 -1
  94. package/dist/adapters/sqlite/tools/json-helpers.d.ts +0 -14
  95. package/dist/adapters/sqlite/tools/json-helpers.d.ts.map +0 -1
  96. package/dist/adapters/sqlite/tools/json-helpers.js +0 -477
  97. package/dist/adapters/sqlite/tools/json-helpers.js.map +0 -1
  98. package/dist/adapters/sqlite/tools/json-operations.d.ts +0 -14
  99. package/dist/adapters/sqlite/tools/json-operations.d.ts.map +0 -1
  100. package/dist/adapters/sqlite/tools/json-operations.js +0 -839
  101. package/dist/adapters/sqlite/tools/json-operations.js.map +0 -1
  102. package/dist/adapters/sqlite/tools/stats.d.ts +0 -15
  103. package/dist/adapters/sqlite/tools/stats.d.ts.map +0 -1
  104. package/dist/adapters/sqlite/tools/stats.js +0 -1219
  105. package/dist/adapters/sqlite/tools/stats.js.map +0 -1
  106. package/dist/adapters/sqlite/tools/text.d.ts +0 -14
  107. package/dist/adapters/sqlite/tools/text.d.ts.map +0 -1
  108. package/dist/adapters/sqlite/tools/text.js +0 -1141
  109. package/dist/adapters/sqlite/tools/text.js.map +0 -1
  110. package/dist/adapters/sqlite/tools/vector.d.ts +0 -14
  111. package/dist/adapters/sqlite/tools/vector.d.ts.map +0 -1
  112. package/dist/adapters/sqlite/tools/vector.js +0 -613
  113. package/dist/adapters/sqlite/tools/vector.js.map +0 -1
  114. package/dist/adapters/sqlite/tools/virtual.d.ts +0 -13
  115. package/dist/adapters/sqlite/tools/virtual.d.ts.map +0 -1
  116. package/dist/adapters/sqlite/tools/virtual.js +0 -930
  117. package/dist/adapters/sqlite/tools/virtual.js.map +0 -1
  118. package/dist/adapters/sqlite/types.d.ts +0 -207
  119. package/dist/adapters/sqlite/types.d.ts.map +0 -1
  120. package/dist/adapters/sqlite/types.js +0 -186
  121. package/dist/adapters/sqlite/types.js.map +0 -1
  122. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts +0 -163
  123. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts.map +0 -1
  124. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js +0 -748
  125. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js.map +0 -1
  126. package/dist/adapters/sqlite-native/index.d.ts +0 -11
  127. package/dist/adapters/sqlite-native/index.d.ts.map +0 -1
  128. package/dist/adapters/sqlite-native/index.js +0 -11
  129. package/dist/adapters/sqlite-native/index.js.map +0 -1
  130. package/dist/adapters/sqlite-native/tools/spatialite.d.ts +0 -19
  131. package/dist/adapters/sqlite-native/tools/spatialite.d.ts.map +0 -1
  132. package/dist/adapters/sqlite-native/tools/spatialite.js +0 -628
  133. package/dist/adapters/sqlite-native/tools/spatialite.js.map +0 -1
  134. package/dist/adapters/sqlite-native/tools/transactions.d.ts +0 -12
  135. package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +0 -1
  136. package/dist/adapters/sqlite-native/tools/transactions.js +0 -255
  137. package/dist/adapters/sqlite-native/tools/transactions.js.map +0 -1
  138. package/dist/adapters/sqlite-native/tools/window.d.ts +0 -12
  139. package/dist/adapters/sqlite-native/tools/window.d.ts.map +0 -1
  140. package/dist/adapters/sqlite-native/tools/window.js +0 -370
  141. package/dist/adapters/sqlite-native/tools/window.js.map +0 -1
  142. package/dist/auth/AuthorizationServerDiscovery.d.ts +0 -90
  143. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +0 -1
  144. package/dist/auth/AuthorizationServerDiscovery.js +0 -204
  145. package/dist/auth/AuthorizationServerDiscovery.js.map +0 -1
  146. package/dist/auth/OAuthResourceServer.d.ts +0 -65
  147. package/dist/auth/OAuthResourceServer.d.ts.map +0 -1
  148. package/dist/auth/OAuthResourceServer.js +0 -121
  149. package/dist/auth/OAuthResourceServer.js.map +0 -1
  150. package/dist/auth/TokenValidator.d.ts +0 -60
  151. package/dist/auth/TokenValidator.d.ts.map +0 -1
  152. package/dist/auth/TokenValidator.js +0 -235
  153. package/dist/auth/TokenValidator.js.map +0 -1
  154. package/dist/auth/errors.d.ts +0 -74
  155. package/dist/auth/errors.d.ts.map +0 -1
  156. package/dist/auth/errors.js +0 -133
  157. package/dist/auth/errors.js.map +0 -1
  158. package/dist/auth/index.d.ts +0 -13
  159. package/dist/auth/index.d.ts.map +0 -1
  160. package/dist/auth/index.js +0 -15
  161. package/dist/auth/index.js.map +0 -1
  162. package/dist/auth/middleware.d.ts +0 -81
  163. package/dist/auth/middleware.d.ts.map +0 -1
  164. package/dist/auth/middleware.js +0 -291
  165. package/dist/auth/middleware.js.map +0 -1
  166. package/dist/auth/scopes.d.ts +0 -136
  167. package/dist/auth/scopes.d.ts.map +0 -1
  168. package/dist/auth/scopes.js +0 -349
  169. package/dist/auth/scopes.js.map +0 -1
  170. package/dist/auth/types.d.ts +0 -257
  171. package/dist/auth/types.d.ts.map +0 -1
  172. package/dist/auth/types.js +0 -8
  173. package/dist/auth/types.js.map +0 -1
  174. package/dist/cli.d.ts.map +0 -1
  175. package/dist/cli.js.map +0 -1
  176. package/dist/constants/ServerInstructions.d.ts +0 -45
  177. package/dist/constants/ServerInstructions.d.ts.map +0 -1
  178. package/dist/constants/ServerInstructions.js +0 -356
  179. package/dist/constants/ServerInstructions.js.map +0 -1
  180. package/dist/filtering/ToolConstants.d.ts +0 -34
  181. package/dist/filtering/ToolConstants.d.ts.map +0 -1
  182. package/dist/filtering/ToolConstants.js +0 -174
  183. package/dist/filtering/ToolConstants.js.map +0 -1
  184. package/dist/filtering/ToolFilter.d.ts +0 -82
  185. package/dist/filtering/ToolFilter.d.ts.map +0 -1
  186. package/dist/filtering/ToolFilter.js +0 -296
  187. package/dist/filtering/ToolFilter.js.map +0 -1
  188. package/dist/index.d.ts.map +0 -1
  189. package/dist/index.js.map +0 -1
  190. package/dist/server/McpServer.d.ts +0 -61
  191. package/dist/server/McpServer.d.ts.map +0 -1
  192. package/dist/server/McpServer.js +0 -270
  193. package/dist/server/McpServer.js.map +0 -1
  194. package/dist/transports/http.d.ts +0 -134
  195. package/dist/transports/http.d.ts.map +0 -1
  196. package/dist/transports/http.js +0 -516
  197. package/dist/transports/http.js.map +0 -1
  198. package/dist/transports/index.d.ts +0 -5
  199. package/dist/transports/index.d.ts.map +0 -1
  200. package/dist/transports/index.js +0 -5
  201. package/dist/transports/index.js.map +0 -1
  202. package/dist/types/index.d.ts +0 -380
  203. package/dist/types/index.d.ts.map +0 -1
  204. package/dist/types/index.js +0 -68
  205. package/dist/types/index.js.map +0 -1
  206. package/dist/utils/annotations.d.ts +0 -44
  207. package/dist/utils/annotations.d.ts.map +0 -1
  208. package/dist/utils/annotations.js +0 -77
  209. package/dist/utils/annotations.js.map +0 -1
  210. package/dist/utils/errors.d.ts +0 -155
  211. package/dist/utils/errors.d.ts.map +0 -1
  212. package/dist/utils/errors.js +0 -329
  213. package/dist/utils/errors.js.map +0 -1
  214. package/dist/utils/identifiers.d.ts +0 -121
  215. package/dist/utils/identifiers.d.ts.map +0 -1
  216. package/dist/utils/identifiers.js +0 -319
  217. package/dist/utils/identifiers.js.map +0 -1
  218. package/dist/utils/index.d.ts +0 -7
  219. package/dist/utils/index.d.ts.map +0 -1
  220. package/dist/utils/index.js +0 -7
  221. package/dist/utils/index.js.map +0 -1
  222. package/dist/utils/insightsManager.d.ts +0 -39
  223. package/dist/utils/insightsManager.d.ts.map +0 -1
  224. package/dist/utils/insightsManager.js +0 -63
  225. package/dist/utils/insightsManager.js.map +0 -1
  226. package/dist/utils/logger.d.ts +0 -189
  227. package/dist/utils/logger.d.ts.map +0 -1
  228. package/dist/utils/logger.js +0 -394
  229. package/dist/utils/logger.js.map +0 -1
  230. package/dist/utils/progress-utils.d.ts +0 -54
  231. package/dist/utils/progress-utils.d.ts.map +0 -1
  232. package/dist/utils/progress-utils.js +0 -74
  233. package/dist/utils/progress-utils.js.map +0 -1
  234. package/dist/utils/resourceAnnotations.d.ts +0 -36
  235. package/dist/utils/resourceAnnotations.d.ts.map +0 -1
  236. package/dist/utils/resourceAnnotations.js +0 -57
  237. package/dist/utils/resourceAnnotations.js.map +0 -1
  238. package/dist/utils/where-clause.d.ts +0 -41
  239. package/dist/utils/where-clause.d.ts.map +0 -1
  240. package/dist/utils/where-clause.js +0 -116
  241. package/dist/utils/where-clause.js.map +0 -1
@@ -1,131 +0,0 @@
1
- /**
2
- * db-mcp - Database Adapter Interface
3
- *
4
- * Abstract base class for SQLite database adapters.
5
- * Provides a consistent interface for SQLite database operations
6
- * across WASM and native backend variants.
7
- */
8
- import { isToolEnabled } from "../filtering/ToolFilter.js";
9
- /**
10
- * Abstract base class for database adapters
11
- */
12
- export class DatabaseAdapter {
13
- /** Connection status */
14
- connected = false;
15
- /** Database configuration */
16
- config = null;
17
- /**
18
- * Check if connected to the database
19
- */
20
- isConnected() {
21
- return this.connected;
22
- }
23
- /**
24
- * Register tools with the MCP server
25
- * @param server - MCP server instance
26
- * @param filterConfig - Tool filter configuration
27
- */
28
- registerTools(server, filterConfig) {
29
- const tools = this.getToolDefinitions();
30
- for (const tool of tools) {
31
- if (!isToolEnabled(tool, filterConfig)) {
32
- continue;
33
- }
34
- // Register with MCP server
35
- this.registerTool(server, tool);
36
- }
37
- }
38
- /**
39
- * Register resources with the MCP server
40
- */
41
- registerResources(server) {
42
- const resources = this.getResourceDefinitions();
43
- for (const resource of resources) {
44
- this.registerResource(server, resource);
45
- }
46
- }
47
- /**
48
- * Register prompts with the MCP server
49
- */
50
- registerPrompts(server) {
51
- const prompts = this.getPromptDefinitions();
52
- for (const prompt of prompts) {
53
- this.registerPrompt(server, prompt);
54
- }
55
- }
56
- // ===========================================================================
57
- // Utility Methods
58
- // ===========================================================================
59
- /**
60
- * Validate query for safety (SQL injection prevention)
61
- * @param sql - SQL query to validate
62
- * @param isReadOnly - Whether to enforce read-only restrictions
63
- */
64
- validateQuery(sql, isReadOnly) {
65
- const trimmedSql = sql.trim().toUpperCase();
66
- if (isReadOnly) {
67
- // For read-only queries, block mutating statements
68
- const writePrefixes = [
69
- "INSERT",
70
- "UPDATE",
71
- "DELETE",
72
- "DROP",
73
- "CREATE",
74
- "ALTER",
75
- "TRUNCATE",
76
- ];
77
- for (const prefix of writePrefixes) {
78
- if (trimmedSql.startsWith(prefix)) {
79
- throw new Error(`Read-only mode: ${prefix} statements are not allowed`);
80
- }
81
- }
82
- }
83
- // Block obvious SQL injection patterns
84
- // Note: This is a basic check; parameterized queries are the primary defense
85
- const dangerousPatterns = [
86
- /;\s*DROP\s+/i,
87
- /;\s*DELETE\s+/i,
88
- /;\s*TRUNCATE\s+/i,
89
- /--.*$/m, // SQL comments (potential injection)
90
- /\/\*.*\*\//s, // Block comments
91
- ];
92
- for (const pattern of dangerousPatterns) {
93
- if (pattern.test(sql)) {
94
- throw new Error("Query contains potentially dangerous patterns");
95
- }
96
- }
97
- }
98
- /**
99
- * Create a request context for tool execution
100
- * @param requestId Optional request ID for tracing
101
- * @param server Optional MCP Server instance for progress notifications
102
- * @param progressToken Optional progress token from client request _meta
103
- */
104
- createContext(requestId, server, progressToken) {
105
- const context = {
106
- timestamp: new Date(),
107
- requestId: requestId ?? crypto.randomUUID(),
108
- };
109
- if (server !== undefined) {
110
- context.server = server;
111
- }
112
- if (progressToken !== undefined) {
113
- context.progressToken = progressToken;
114
- }
115
- return context;
116
- }
117
- /**
118
- * Get adapter info for logging/debugging
119
- */
120
- getInfo() {
121
- return {
122
- type: this.type,
123
- name: this.name,
124
- version: this.version,
125
- connected: this.connected,
126
- capabilities: this.getCapabilities(),
127
- toolGroups: this.getSupportedToolGroups(),
128
- };
129
- }
130
- }
131
- //# sourceMappingURL=DatabaseAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DatabaseAdapter.js","sourceRoot":"","sources":["../../src/adapters/DatabaseAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- /**
2
- * SQLite Schema Manager
3
- *
4
- * Provides TTL-based caching for schema metadata operations.
5
- * Ported from mysql-mcp's SchemaManager pattern.
6
- */
7
- import type { QueryResult, TableInfo, SchemaInfo, IndexInfo } from "../../types/index.js";
8
- export interface QueryExecutor {
9
- executeReadQuery(sql: string, params?: unknown[]): Promise<QueryResult>;
10
- }
11
- /**
12
- * SchemaManager provides cached access to database schema metadata.
13
- * Reduces repeated schema queries during tool/resource invocations.
14
- */
15
- export declare class SchemaManager {
16
- private executor;
17
- private metadataCache;
18
- private cacheTtlMs;
19
- constructor(executor: QueryExecutor);
20
- /**
21
- * Get cached value if not expired
22
- */
23
- private getCached;
24
- /**
25
- * Set cache value
26
- */
27
- private setCache;
28
- /**
29
- * Clear all cached metadata (useful after DDL operations)
30
- */
31
- clearCache(): void;
32
- /**
33
- * Get the current cache TTL in milliseconds
34
- */
35
- getCacheTtl(): number;
36
- /**
37
- * Get full database schema (cached)
38
- */
39
- getSchema(): Promise<SchemaInfo>;
40
- /**
41
- * List all tables (cached)
42
- */
43
- listTables(): Promise<TableInfo[]>;
44
- /**
45
- * Describe a table's structure (cached per table)
46
- */
47
- describeTable(tableName: string): Promise<TableInfo>;
48
- /**
49
- * Get all indexes in a single query (cached)
50
- * Performance optimization: eliminates N+1 query pattern
51
- */
52
- getAllIndexes(): Promise<IndexInfo[]>;
53
- /**
54
- * Get indexes for a specific table (uses cached all_indexes)
55
- */
56
- getTableIndexes(tableName: string): Promise<IndexInfo[]>;
57
- }
58
- //# sourceMappingURL=SchemaManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SchemaManager.d.ts","sourceRoot":"","sources":["../../../src/adapters/sqlite/SchemaManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,SAAS,EAEV,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACzE;AAgBD;;;GAGG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ;IAH5B,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,UAAU,CAAwB;gBAEtB,QAAQ,EAAE,aAAa;IAE3C;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAYtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAoCxC;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAmD1D;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAwC3C;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAI/D"}
@@ -1,187 +0,0 @@
1
- /**
2
- * SQLite Schema Manager
3
- *
4
- * Provides TTL-based caching for schema metadata operations.
5
- * Ported from mysql-mcp's SchemaManager pattern.
6
- */
7
- /**
8
- * Default cache TTL in milliseconds (configurable via METADATA_CACHE_TTL_MS env var)
9
- * SQLite is embedded/local, so 5s default (vs mysql-mcp's 30s for network latency)
10
- */
11
- const DEFAULT_CACHE_TTL_MS = parseInt(process.env["METADATA_CACHE_TTL_MS"] ?? "5000", 10);
12
- /**
13
- * SchemaManager provides cached access to database schema metadata.
14
- * Reduces repeated schema queries during tool/resource invocations.
15
- */
16
- export class SchemaManager {
17
- executor;
18
- metadataCache = new Map();
19
- cacheTtlMs = DEFAULT_CACHE_TTL_MS;
20
- constructor(executor) {
21
- this.executor = executor;
22
- }
23
- /**
24
- * Get cached value if not expired
25
- */
26
- getCached(key) {
27
- const entry = this.metadataCache.get(key);
28
- if (!entry)
29
- return undefined;
30
- if (Date.now() - entry.timestamp > this.cacheTtlMs) {
31
- this.metadataCache.delete(key);
32
- return undefined;
33
- }
34
- return entry.data;
35
- }
36
- /**
37
- * Set cache value
38
- */
39
- setCache(key, data) {
40
- this.metadataCache.set(key, { data, timestamp: Date.now() });
41
- }
42
- /**
43
- * Clear all cached metadata (useful after DDL operations)
44
- */
45
- clearCache() {
46
- this.metadataCache.clear();
47
- }
48
- /**
49
- * Get the current cache TTL in milliseconds
50
- */
51
- getCacheTtl() {
52
- return this.cacheTtlMs;
53
- }
54
- /**
55
- * Get full database schema (cached)
56
- */
57
- async getSchema() {
58
- const cached = this.getCached("schema");
59
- if (cached)
60
- return cached;
61
- const tables = await this.listTables();
62
- const indexes = await this.getAllIndexes();
63
- const schema = { tables, indexes };
64
- this.setCache("schema", schema);
65
- return schema;
66
- }
67
- /**
68
- * List all tables (cached)
69
- */
70
- async listTables() {
71
- const cached = this.getCached("tables");
72
- if (cached)
73
- return cached;
74
- const result = await this.executor.executeReadQuery(`SELECT name, type FROM sqlite_master
75
- WHERE type IN ('table', 'view') AND name NOT LIKE 'sqlite_%'
76
- ORDER BY name`);
77
- const tables = [];
78
- for (const row of result.rows ?? []) {
79
- const name = row["name"];
80
- const type = row["type"];
81
- // Skip FTS5 virtual tables and shadow tables (they're internal implementation details)
82
- // - Virtual tables: end with "_fts" (e.g., "articles_fts")
83
- // - Shadow tables: contain "_fts_" (e.g., "articles_fts_config", "articles_fts_data")
84
- if (name.endsWith("_fts") || name.includes("_fts_")) {
85
- continue;
86
- }
87
- try {
88
- const tableInfo = await this.describeTable(name);
89
- tables.push({ ...tableInfo, type });
90
- }
91
- catch {
92
- // FTS5 virtual tables fail PRAGMA table_info in WASM mode (no FTS5 module)
93
- // Skip these tables rather than failing the entire operation
94
- continue;
95
- }
96
- }
97
- this.setCache("tables", tables);
98
- return tables;
99
- }
100
- /**
101
- * Describe a table's structure (cached per table)
102
- */
103
- async describeTable(tableName) {
104
- const cacheKey = `table_${tableName}`;
105
- const cached = this.getCached(cacheKey);
106
- if (cached)
107
- return cached;
108
- // Validate table name
109
- if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(tableName)) {
110
- throw new Error("Invalid table name");
111
- }
112
- const result = await this.executor.executeReadQuery(`PRAGMA table_info("${tableName}")`);
113
- // Check if table exists (PRAGMA returns empty for non-existent tables)
114
- if (!result.rows || result.rows.length === 0) {
115
- throw new Error(`Table '${tableName}' does not exist`);
116
- }
117
- const columns = (result.rows ?? []).map((row) => ({
118
- name: row["name"],
119
- type: row["type"],
120
- nullable: row["notnull"] === 0,
121
- primaryKey: row["pk"] === 1,
122
- defaultValue: row["dflt_value"],
123
- }));
124
- // Get row count (wrapped in try-catch for FTS5/virtual tables in WASM mode)
125
- let rowCount = 0;
126
- try {
127
- const countResult = await this.executor.executeReadQuery(`SELECT COUNT(*) as count FROM "${tableName}"`);
128
- rowCount = countResult.rows?.[0]?.["count"] ?? 0;
129
- }
130
- catch {
131
- // FTS5 virtual tables may fail in WASM mode (no FTS5 module)
132
- // Return 0 for row count rather than failing the entire operation
133
- rowCount = 0;
134
- }
135
- const tableInfo = {
136
- name: tableName,
137
- type: "table",
138
- columns,
139
- rowCount,
140
- };
141
- this.setCache(cacheKey, tableInfo);
142
- return tableInfo;
143
- }
144
- /**
145
- * Get all indexes in a single query (cached)
146
- * Performance optimization: eliminates N+1 query pattern
147
- */
148
- async getAllIndexes() {
149
- const cached = this.getCached("all_indexes");
150
- if (cached)
151
- return cached;
152
- const result = await this.executor.executeReadQuery(`SELECT name, tbl_name, sql FROM sqlite_master
153
- WHERE type = 'index' AND sql IS NOT NULL`);
154
- const indexes = [];
155
- for (const row of result.rows ?? []) {
156
- const indexName = row["name"];
157
- const tableName = row["tbl_name"];
158
- const sql = row["sql"];
159
- // Get column info for this index via PRAGMA index_info
160
- let columns = [];
161
- try {
162
- const indexInfo = await this.executor.executeReadQuery(`PRAGMA index_info("${indexName}")`);
163
- columns = (indexInfo.rows ?? []).map((col) => col["name"]);
164
- }
165
- catch {
166
- // If PRAGMA fails, fall back to empty columns
167
- columns = [];
168
- }
169
- indexes.push({
170
- name: indexName,
171
- tableName,
172
- columns,
173
- unique: sql?.toUpperCase().includes("UNIQUE") ?? false,
174
- });
175
- }
176
- this.setCache("all_indexes", indexes);
177
- return indexes;
178
- }
179
- /**
180
- * Get indexes for a specific table (uses cached all_indexes)
181
- */
182
- async getTableIndexes(tableName) {
183
- const allIndexes = await this.getAllIndexes();
184
- return allIndexes.filter((idx) => idx.tableName === tableName);
185
- }
186
- }
187
- //# sourceMappingURL=SchemaManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SchemaManager.js","sourceRoot":"","sources":["../../../src/adapters/sqlite/SchemaManager.ts"],"names":[],"mappings":"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"}
@@ -1,161 +0,0 @@
1
- /**
2
- * SQLite Adapter
3
- *
4
- * MCP adapter for SQLite databases using sql.js (WebAssembly).
5
- * Provides 73 tools for database operations, JSON, text processing,
6
- * statistics, vector search, and geospatial features.
7
- */
8
- import { type Database } from "sql.js";
9
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10
- import { DatabaseAdapter } from "../DatabaseAdapter.js";
11
- import type { DatabaseConfig, QueryResult, SchemaInfo, TableInfo, IndexInfo, HealthStatus, AdapterCapabilities, ToolDefinition, ResourceDefinition, PromptDefinition, ToolGroup } from "../../types/index.js";
12
- import type { SqliteConfig } from "./types.js";
13
- /**
14
- * SQLite Database Adapter
15
- *
16
- * Implements the DatabaseAdapter interface for SQLite using sql.js.
17
- * Supports file-based and in-memory databases.
18
- */
19
- export declare class SqliteAdapter extends DatabaseAdapter {
20
- readonly type: "sqlite";
21
- readonly name = "SQLite Adapter";
22
- readonly version = "1.0.0";
23
- /**
24
- * Check if this adapter uses native (better-sqlite3) backend.
25
- * Returns false for WASM/sql.js adapter.
26
- */
27
- isNativeBackend(): boolean;
28
- /**
29
- * Get the configured database file path.
30
- * Returns the user-configured path, not internal WASM virtual filesystem paths.
31
- */
32
- getConfiguredPath(): string;
33
- private db;
34
- protected config: SqliteConfig | null;
35
- private sqlJsInstance;
36
- private schemaManager;
37
- /**
38
- * Connect to a SQLite database
39
- */
40
- connect(config: DatabaseConfig): Promise<void>;
41
- /**
42
- * Apply SQLite PRAGMA options
43
- */
44
- private applyOptions;
45
- /**
46
- * Disconnect from the database
47
- */
48
- disconnect(): Promise<void>;
49
- /**
50
- * Get database health status
51
- */
52
- getHealth(): Promise<HealthStatus>;
53
- /**
54
- * Normalize parameters for SQLite binding
55
- * Converts booleans to integers since SQLite doesn't have native boolean type
56
- */
57
- private normalizeParams;
58
- /**
59
- * Execute a read-only query
60
- */
61
- executeReadQuery(sql: string, params?: unknown[]): Promise<QueryResult>;
62
- /**
63
- * Execute a write query
64
- */
65
- executeWriteQuery(sql: string, params?: unknown[], skipValidation?: boolean): Promise<QueryResult>;
66
- /**
67
- * Execute any query (for admin operations)
68
- */
69
- executeQuery(sql: string, params?: unknown[]): Promise<QueryResult>;
70
- /**
71
- * Get full database schema (cached via SchemaManager)
72
- */
73
- getSchema(): Promise<SchemaInfo>;
74
- /**
75
- * List all tables (cached via SchemaManager)
76
- */
77
- listTables(): Promise<TableInfo[]>;
78
- /**
79
- * Describe a table's structure (cached via SchemaManager)
80
- */
81
- describeTable(tableName: string): Promise<TableInfo>;
82
- /**
83
- * List available schemas (SQLite has only 'main')
84
- */
85
- listSchemas(): Promise<string[]>;
86
- /**
87
- * Get indexes, optionally for a specific table (cached via SchemaManager)
88
- */
89
- getIndexes(table?: string): Promise<IndexInfo[]>;
90
- /**
91
- * Get all indexes in a single query (cached via SchemaManager)
92
- * Performance optimization: eliminates N+1 query pattern
93
- */
94
- getAllIndexes(): Promise<IndexInfo[]>;
95
- /**
96
- * Clear the schema metadata cache
97
- * Call after DDL operations or when fresh data is needed
98
- */
99
- clearSchemaCache(): void;
100
- /**
101
- * Get adapter capabilities
102
- */
103
- getCapabilities(): AdapterCapabilities;
104
- /**
105
- * Get supported tool groups
106
- */
107
- getSupportedToolGroups(): ToolGroup[];
108
- /**
109
- * Get all tool definitions
110
- */
111
- getToolDefinitions(): ToolDefinition[];
112
- /**
113
- * Get resource definitions
114
- */
115
- getResourceDefinitions(): ResourceDefinition[];
116
- /**
117
- * Get prompt definitions
118
- */
119
- getPromptDefinitions(): PromptDefinition[];
120
- /**
121
- * Get adapter info for metadata resource
122
- */
123
- getInfo(): {
124
- type: string;
125
- name: string;
126
- version: string;
127
- connected: boolean;
128
- };
129
- /**
130
- * Register a single tool with the MCP server
131
- * Uses modern registerTool() API for MCP 2025-11-25 compliance
132
- */
133
- protected registerTool(server: McpServer, tool: ToolDefinition): void;
134
- /**
135
- * Register a single resource with the MCP server
136
- * Handles both static resources and URI templates
137
- */
138
- protected registerResource(server: McpServer, resource: ResourceDefinition): void;
139
- /**
140
- * Register a single prompt with the MCP server
141
- */
142
- protected registerPrompt(server: McpServer, prompt: PromptDefinition): void;
143
- /**
144
- * Ensure database is connected
145
- */
146
- private ensureConnected;
147
- /**
148
- * Ensure database is connected and return the database instance
149
- */
150
- private ensureDb;
151
- /**
152
- * Get the raw database instance (for tools)
153
- */
154
- getDatabase(): Database;
155
- /**
156
- * Execute raw SQL and return results (for tools)
157
- */
158
- rawQuery(sql: string, params?: unknown[]): Promise<QueryResult>;
159
- }
160
- export declare function createSqliteAdapter(): SqliteAdapter;
161
- //# sourceMappingURL=SqliteAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SqliteAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/sqlite/SqliteAdapter.ts"],"names":[],"mappings":"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"}