db-mcp 1.0.1

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 (208) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +860 -0
  3. package/dist/adapters/DatabaseAdapter.d.ts +141 -0
  4. package/dist/adapters/DatabaseAdapter.d.ts.map +1 -0
  5. package/dist/adapters/DatabaseAdapter.js +131 -0
  6. package/dist/adapters/DatabaseAdapter.js.map +1 -0
  7. package/dist/adapters/sqlite/SchemaManager.d.ts +58 -0
  8. package/dist/adapters/sqlite/SchemaManager.d.ts.map +1 -0
  9. package/dist/adapters/sqlite/SchemaManager.js +187 -0
  10. package/dist/adapters/sqlite/SchemaManager.js.map +1 -0
  11. package/dist/adapters/sqlite/SqliteAdapter.d.ts +161 -0
  12. package/dist/adapters/sqlite/SqliteAdapter.d.ts.map +1 -0
  13. package/dist/adapters/sqlite/SqliteAdapter.js +741 -0
  14. package/dist/adapters/sqlite/SqliteAdapter.js.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/index.js +8 -0
  18. package/dist/adapters/sqlite/index.js.map +1 -0
  19. package/dist/adapters/sqlite/json-utils.d.ts +100 -0
  20. package/dist/adapters/sqlite/json-utils.d.ts.map +1 -0
  21. package/dist/adapters/sqlite/json-utils.js +274 -0
  22. package/dist/adapters/sqlite/json-utils.js.map +1 -0
  23. package/dist/adapters/sqlite/output-schemas.d.ts +1187 -0
  24. package/dist/adapters/sqlite/output-schemas.d.ts.map +1 -0
  25. package/dist/adapters/sqlite/output-schemas.js +1337 -0
  26. package/dist/adapters/sqlite/output-schemas.js.map +1 -0
  27. package/dist/adapters/sqlite/prompts.d.ts +13 -0
  28. package/dist/adapters/sqlite/prompts.d.ts.map +1 -0
  29. package/dist/adapters/sqlite/prompts.js +605 -0
  30. package/dist/adapters/sqlite/prompts.js.map +1 -0
  31. package/dist/adapters/sqlite/resources.d.ts +13 -0
  32. package/dist/adapters/sqlite/resources.d.ts.map +1 -0
  33. package/dist/adapters/sqlite/resources.js +251 -0
  34. package/dist/adapters/sqlite/resources.js.map +1 -0
  35. package/dist/adapters/sqlite/tools/admin.d.ts +14 -0
  36. package/dist/adapters/sqlite/tools/admin.d.ts.map +1 -0
  37. package/dist/adapters/sqlite/tools/admin.js +788 -0
  38. package/dist/adapters/sqlite/tools/admin.js.map +1 -0
  39. package/dist/adapters/sqlite/tools/core.d.ts +25 -0
  40. package/dist/adapters/sqlite/tools/core.d.ts.map +1 -0
  41. package/dist/adapters/sqlite/tools/core.js +359 -0
  42. package/dist/adapters/sqlite/tools/core.js.map +1 -0
  43. package/dist/adapters/sqlite/tools/fts.d.ts +13 -0
  44. package/dist/adapters/sqlite/tools/fts.d.ts.map +1 -0
  45. package/dist/adapters/sqlite/tools/fts.js +347 -0
  46. package/dist/adapters/sqlite/tools/fts.js.map +1 -0
  47. package/dist/adapters/sqlite/tools/geo.d.ts +14 -0
  48. package/dist/adapters/sqlite/tools/geo.d.ts.map +1 -0
  49. package/dist/adapters/sqlite/tools/geo.js +252 -0
  50. package/dist/adapters/sqlite/tools/geo.js.map +1 -0
  51. package/dist/adapters/sqlite/tools/index.d.ts +30 -0
  52. package/dist/adapters/sqlite/tools/index.d.ts.map +1 -0
  53. package/dist/adapters/sqlite/tools/index.js +61 -0
  54. package/dist/adapters/sqlite/tools/index.js.map +1 -0
  55. package/dist/adapters/sqlite/tools/json-helpers.d.ts +14 -0
  56. package/dist/adapters/sqlite/tools/json-helpers.d.ts.map +1 -0
  57. package/dist/adapters/sqlite/tools/json-helpers.js +477 -0
  58. package/dist/adapters/sqlite/tools/json-helpers.js.map +1 -0
  59. package/dist/adapters/sqlite/tools/json-operations.d.ts +14 -0
  60. package/dist/adapters/sqlite/tools/json-operations.d.ts.map +1 -0
  61. package/dist/adapters/sqlite/tools/json-operations.js +839 -0
  62. package/dist/adapters/sqlite/tools/json-operations.js.map +1 -0
  63. package/dist/adapters/sqlite/tools/stats.d.ts +15 -0
  64. package/dist/adapters/sqlite/tools/stats.d.ts.map +1 -0
  65. package/dist/adapters/sqlite/tools/stats.js +1219 -0
  66. package/dist/adapters/sqlite/tools/stats.js.map +1 -0
  67. package/dist/adapters/sqlite/tools/text.d.ts +14 -0
  68. package/dist/adapters/sqlite/tools/text.d.ts.map +1 -0
  69. package/dist/adapters/sqlite/tools/text.js +1141 -0
  70. package/dist/adapters/sqlite/tools/text.js.map +1 -0
  71. package/dist/adapters/sqlite/tools/vector.d.ts +14 -0
  72. package/dist/adapters/sqlite/tools/vector.d.ts.map +1 -0
  73. package/dist/adapters/sqlite/tools/vector.js +613 -0
  74. package/dist/adapters/sqlite/tools/vector.js.map +1 -0
  75. package/dist/adapters/sqlite/tools/virtual.d.ts +13 -0
  76. package/dist/adapters/sqlite/tools/virtual.d.ts.map +1 -0
  77. package/dist/adapters/sqlite/tools/virtual.js +930 -0
  78. package/dist/adapters/sqlite/tools/virtual.js.map +1 -0
  79. package/dist/adapters/sqlite/types.d.ts +207 -0
  80. package/dist/adapters/sqlite/types.d.ts.map +1 -0
  81. package/dist/adapters/sqlite/types.js +186 -0
  82. package/dist/adapters/sqlite/types.js.map +1 -0
  83. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts +163 -0
  84. package/dist/adapters/sqlite-native/NativeSqliteAdapter.d.ts.map +1 -0
  85. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js +748 -0
  86. package/dist/adapters/sqlite-native/NativeSqliteAdapter.js.map +1 -0
  87. package/dist/adapters/sqlite-native/index.d.ts +11 -0
  88. package/dist/adapters/sqlite-native/index.d.ts.map +1 -0
  89. package/dist/adapters/sqlite-native/index.js +11 -0
  90. package/dist/adapters/sqlite-native/index.js.map +1 -0
  91. package/dist/adapters/sqlite-native/tools/spatialite.d.ts +19 -0
  92. package/dist/adapters/sqlite-native/tools/spatialite.d.ts.map +1 -0
  93. package/dist/adapters/sqlite-native/tools/spatialite.js +628 -0
  94. package/dist/adapters/sqlite-native/tools/spatialite.js.map +1 -0
  95. package/dist/adapters/sqlite-native/tools/transactions.d.ts +12 -0
  96. package/dist/adapters/sqlite-native/tools/transactions.d.ts.map +1 -0
  97. package/dist/adapters/sqlite-native/tools/transactions.js +255 -0
  98. package/dist/adapters/sqlite-native/tools/transactions.js.map +1 -0
  99. package/dist/adapters/sqlite-native/tools/window.d.ts +12 -0
  100. package/dist/adapters/sqlite-native/tools/window.d.ts.map +1 -0
  101. package/dist/adapters/sqlite-native/tools/window.js +370 -0
  102. package/dist/adapters/sqlite-native/tools/window.js.map +1 -0
  103. package/dist/auth/AuthorizationServerDiscovery.d.ts +90 -0
  104. package/dist/auth/AuthorizationServerDiscovery.d.ts.map +1 -0
  105. package/dist/auth/AuthorizationServerDiscovery.js +204 -0
  106. package/dist/auth/AuthorizationServerDiscovery.js.map +1 -0
  107. package/dist/auth/OAuthResourceServer.d.ts +65 -0
  108. package/dist/auth/OAuthResourceServer.d.ts.map +1 -0
  109. package/dist/auth/OAuthResourceServer.js +121 -0
  110. package/dist/auth/OAuthResourceServer.js.map +1 -0
  111. package/dist/auth/TokenValidator.d.ts +60 -0
  112. package/dist/auth/TokenValidator.d.ts.map +1 -0
  113. package/dist/auth/TokenValidator.js +235 -0
  114. package/dist/auth/TokenValidator.js.map +1 -0
  115. package/dist/auth/errors.d.ts +74 -0
  116. package/dist/auth/errors.d.ts.map +1 -0
  117. package/dist/auth/errors.js +133 -0
  118. package/dist/auth/errors.js.map +1 -0
  119. package/dist/auth/index.d.ts +13 -0
  120. package/dist/auth/index.d.ts.map +1 -0
  121. package/dist/auth/index.js +15 -0
  122. package/dist/auth/index.js.map +1 -0
  123. package/dist/auth/middleware.d.ts +81 -0
  124. package/dist/auth/middleware.d.ts.map +1 -0
  125. package/dist/auth/middleware.js +291 -0
  126. package/dist/auth/middleware.js.map +1 -0
  127. package/dist/auth/scopes.d.ts +136 -0
  128. package/dist/auth/scopes.d.ts.map +1 -0
  129. package/dist/auth/scopes.js +349 -0
  130. package/dist/auth/scopes.js.map +1 -0
  131. package/dist/auth/types.d.ts +257 -0
  132. package/dist/auth/types.d.ts.map +1 -0
  133. package/dist/auth/types.js +8 -0
  134. package/dist/auth/types.js.map +1 -0
  135. package/dist/cli.d.ts +8 -0
  136. package/dist/cli.d.ts.map +1 -0
  137. package/dist/cli.js +236 -0
  138. package/dist/cli.js.map +1 -0
  139. package/dist/constants/ServerInstructions.d.ts +45 -0
  140. package/dist/constants/ServerInstructions.d.ts.map +1 -0
  141. package/dist/constants/ServerInstructions.js +356 -0
  142. package/dist/constants/ServerInstructions.js.map +1 -0
  143. package/dist/filtering/ToolConstants.d.ts +34 -0
  144. package/dist/filtering/ToolConstants.d.ts.map +1 -0
  145. package/dist/filtering/ToolConstants.js +174 -0
  146. package/dist/filtering/ToolConstants.js.map +1 -0
  147. package/dist/filtering/ToolFilter.d.ts +82 -0
  148. package/dist/filtering/ToolFilter.d.ts.map +1 -0
  149. package/dist/filtering/ToolFilter.js +296 -0
  150. package/dist/filtering/ToolFilter.js.map +1 -0
  151. package/dist/index.d.ts +13 -0
  152. package/dist/index.d.ts.map +1 -0
  153. package/dist/index.js +17 -0
  154. package/dist/index.js.map +1 -0
  155. package/dist/server/McpServer.d.ts +61 -0
  156. package/dist/server/McpServer.d.ts.map +1 -0
  157. package/dist/server/McpServer.js +270 -0
  158. package/dist/server/McpServer.js.map +1 -0
  159. package/dist/transports/http.d.ts +134 -0
  160. package/dist/transports/http.d.ts.map +1 -0
  161. package/dist/transports/http.js +516 -0
  162. package/dist/transports/http.js.map +1 -0
  163. package/dist/transports/index.d.ts +5 -0
  164. package/dist/transports/index.d.ts.map +1 -0
  165. package/dist/transports/index.js +5 -0
  166. package/dist/transports/index.js.map +1 -0
  167. package/dist/types/index.d.ts +380 -0
  168. package/dist/types/index.d.ts.map +1 -0
  169. package/dist/types/index.js +68 -0
  170. package/dist/types/index.js.map +1 -0
  171. package/dist/utils/annotations.d.ts +44 -0
  172. package/dist/utils/annotations.d.ts.map +1 -0
  173. package/dist/utils/annotations.js +77 -0
  174. package/dist/utils/annotations.js.map +1 -0
  175. package/dist/utils/errors.d.ts +155 -0
  176. package/dist/utils/errors.d.ts.map +1 -0
  177. package/dist/utils/errors.js +329 -0
  178. package/dist/utils/errors.js.map +1 -0
  179. package/dist/utils/identifiers.d.ts +121 -0
  180. package/dist/utils/identifiers.d.ts.map +1 -0
  181. package/dist/utils/identifiers.js +319 -0
  182. package/dist/utils/identifiers.js.map +1 -0
  183. package/dist/utils/index.d.ts +7 -0
  184. package/dist/utils/index.d.ts.map +1 -0
  185. package/dist/utils/index.js +7 -0
  186. package/dist/utils/index.js.map +1 -0
  187. package/dist/utils/insightsManager.d.ts +39 -0
  188. package/dist/utils/insightsManager.d.ts.map +1 -0
  189. package/dist/utils/insightsManager.js +63 -0
  190. package/dist/utils/insightsManager.js.map +1 -0
  191. package/dist/utils/logger.d.ts +189 -0
  192. package/dist/utils/logger.d.ts.map +1 -0
  193. package/dist/utils/logger.js +394 -0
  194. package/dist/utils/logger.js.map +1 -0
  195. package/dist/utils/progress-utils.d.ts +54 -0
  196. package/dist/utils/progress-utils.d.ts.map +1 -0
  197. package/dist/utils/progress-utils.js +74 -0
  198. package/dist/utils/progress-utils.js.map +1 -0
  199. package/dist/utils/resourceAnnotations.d.ts +36 -0
  200. package/dist/utils/resourceAnnotations.d.ts.map +1 -0
  201. package/dist/utils/resourceAnnotations.js +57 -0
  202. package/dist/utils/resourceAnnotations.js.map +1 -0
  203. package/dist/utils/where-clause.d.ts +41 -0
  204. package/dist/utils/where-clause.d.ts.map +1 -0
  205. package/dist/utils/where-clause.js +116 -0
  206. package/dist/utils/where-clause.js.map +1 -0
  207. package/package.json +83 -0
  208. package/server.json +53 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * db-mcp - Main MCP Server
3
+ *
4
+ * SQLite MCP server with OAuth 2.1 authentication,
5
+ * HTTP/SSE transport, and dynamic tool filtering.
6
+ */
7
+ import type { McpServerConfig, DatabaseConfig } from "../types/index.js";
8
+ import { type DatabaseAdapter } from "../adapters/DatabaseAdapter.js";
9
+ /**
10
+ * Main db-mcp server class
11
+ *
12
+ * Manages database adapters, tool registration, and MCP protocol handling.
13
+ */
14
+ export declare class DbMcpServer {
15
+ private server;
16
+ private adapters;
17
+ private toolFilter;
18
+ private config;
19
+ constructor(config: McpServerConfig);
20
+ /**
21
+ * Register a database adapter
22
+ */
23
+ registerAdapter(adapter: DatabaseAdapter, config: DatabaseConfig): Promise<void>;
24
+ /**
25
+ * Get an adapter by ID
26
+ */
27
+ getAdapter(adapterId: string): DatabaseAdapter | undefined;
28
+ /**
29
+ * Get all registered adapters
30
+ */
31
+ getAdapters(): Map<string, DatabaseAdapter>;
32
+ /**
33
+ * Register built-in server tools (health, info, etc.)
34
+ */
35
+ private registerBuiltInTools;
36
+ /**
37
+ * Start the server with the configured transport
38
+ */
39
+ start(): Promise<void>;
40
+ /**
41
+ * Start server with stdio transport
42
+ */
43
+ private startStdio;
44
+ /**
45
+ * Start server with HTTP transport (Streamable HTTP with SSE support)
46
+ */
47
+ private startHttp;
48
+ /**
49
+ * Gracefully shut down the server
50
+ */
51
+ shutdown(): Promise<void>;
52
+ }
53
+ /**
54
+ * Create and configure a db-mcp server instance
55
+ */
56
+ export declare function createServer(config: McpServerConfig): DbMcpServer;
57
+ /**
58
+ * Default server configuration
59
+ */
60
+ export declare const DEFAULT_CONFIG: Partial<McpServerConfig>;
61
+ //# sourceMappingURL=McpServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpServer.d.ts","sourceRoot":"","sources":["../../src/server/McpServer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAStE;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;IA8CnC;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAmBhB;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1D;;OAEG;IACH,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAI3C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuG5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;OAEG;YACW,UAAU;IAQxB;;OAEG;YACW,SAAS;IAmDvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBhC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,WAAW,CAEjE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,eAAe,CAKnD,CAAC"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * db-mcp - Main MCP Server
3
+ *
4
+ * SQLite MCP server with OAuth 2.1 authentication,
5
+ * HTTP/SSE transport, and dynamic tool filtering.
6
+ */
7
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
+ import { parseToolFilter, getFilterSummary, getToolFilterFromEnv, } from "../filtering/ToolFilter.js";
10
+ import { generateInstructions } from "../constants/ServerInstructions.js";
11
+ import { logger } from "../utils/logger.js";
12
+ /**
13
+ * Main db-mcp server class
14
+ *
15
+ * Manages database adapters, tool registration, and MCP protocol handling.
16
+ */
17
+ export class DbMcpServer {
18
+ server;
19
+ adapters = new Map();
20
+ toolFilter;
21
+ config;
22
+ constructor(config) {
23
+ this.config = config;
24
+ // Initialize tool filter from config or environment (needed for instructions)
25
+ this.toolFilter = config.toolFilter
26
+ ? parseToolFilter(config.toolFilter)
27
+ : getToolFilterFromEnv();
28
+ // Generate server instructions based on enabled tools
29
+ const enabledTools = new Set();
30
+ for (const group of this.toolFilter.enabledGroups) {
31
+ // Add all tools from enabled groups to the set
32
+ enabledTools.add(group);
33
+ }
34
+ const instructions = generateInstructions(enabledTools, [], []);
35
+ // Initialize MCP server with logging capability and instructions
36
+ this.server = new McpServer({
37
+ name: config.name,
38
+ version: config.version,
39
+ }, {
40
+ capabilities: {
41
+ logging: {},
42
+ },
43
+ instructions,
44
+ });
45
+ // Log filter summary
46
+ logger.info(getFilterSummary(this.toolFilter), { module: "FILTER" });
47
+ // Log server initialization with capabilities
48
+ logger.info("MCP Server initialized", {
49
+ module: "SERVER",
50
+ name: config.name,
51
+ version: config.version,
52
+ toolFilter: config.toolFilter ?? "none",
53
+ capabilities: ["logging"],
54
+ });
55
+ // Register built-in tools
56
+ this.registerBuiltInTools();
57
+ }
58
+ /**
59
+ * Register a database adapter
60
+ */
61
+ async registerAdapter(adapter, config) {
62
+ const adapterId = `${adapter.type}:${config.database ?? "default"}`;
63
+ // Connect to database
64
+ await adapter.connect(config);
65
+ // Store adapter
66
+ this.adapters.set(adapterId, adapter);
67
+ // Register adapter's tools with filtering
68
+ adapter.registerTools(this.server, this.toolFilter);
69
+ adapter.registerResources(this.server);
70
+ adapter.registerPrompts(this.server);
71
+ logger.info(`Registered adapter: ${adapter.name} (${adapterId})`, {
72
+ module: "SERVER",
73
+ });
74
+ }
75
+ /**
76
+ * Get an adapter by ID
77
+ */
78
+ getAdapter(adapterId) {
79
+ return this.adapters.get(adapterId);
80
+ }
81
+ /**
82
+ * Get all registered adapters
83
+ */
84
+ getAdapters() {
85
+ return this.adapters;
86
+ }
87
+ /**
88
+ * Register built-in server tools (health, info, etc.)
89
+ */
90
+ registerBuiltInTools() {
91
+ // Server info tool
92
+ this.server.registerTool("server_info", {
93
+ description: "Get information about the db-mcp server and registered adapters",
94
+ }, () => {
95
+ const adapterInfo = [];
96
+ for (const [id, adapter] of this.adapters) {
97
+ adapterInfo.push({
98
+ id,
99
+ ...adapter.getInfo(),
100
+ });
101
+ }
102
+ return {
103
+ content: [
104
+ {
105
+ type: "text",
106
+ text: JSON.stringify({
107
+ name: this.config.name,
108
+ version: this.config.version,
109
+ transport: this.config.transport,
110
+ adapters: adapterInfo,
111
+ toolFilter: {
112
+ raw: this.toolFilter.raw,
113
+ enabledGroups: [...this.toolFilter.enabledGroups],
114
+ },
115
+ }, null, 2),
116
+ },
117
+ ],
118
+ };
119
+ });
120
+ // Health check tool
121
+ this.server.registerTool("server_health", { description: "Check health status of all database connections" }, async () => {
122
+ const health = {
123
+ server: "healthy",
124
+ timestamp: new Date().toISOString(),
125
+ adapters: {},
126
+ };
127
+ for (const [id, adapter] of this.adapters) {
128
+ try {
129
+ const adapterHealth = await adapter.getHealth();
130
+ health["adapters"][id] = adapterHealth;
131
+ }
132
+ catch (error) {
133
+ health["adapters"][id] = {
134
+ connected: false,
135
+ error: error instanceof Error ? error.message : "Unknown error",
136
+ };
137
+ }
138
+ }
139
+ return {
140
+ content: [
141
+ {
142
+ type: "text",
143
+ text: JSON.stringify(health, null, 2),
144
+ },
145
+ ],
146
+ };
147
+ });
148
+ // List adapters tool
149
+ this.server.registerTool("list_adapters", { description: "List all registered database adapters" }, () => {
150
+ const adapters = [];
151
+ for (const [id, adapter] of this.adapters) {
152
+ adapters.push({
153
+ id,
154
+ type: adapter.type,
155
+ name: adapter.name,
156
+ version: adapter.version,
157
+ connected: adapter.isConnected(),
158
+ });
159
+ }
160
+ return {
161
+ content: [
162
+ {
163
+ type: "text",
164
+ text: JSON.stringify(adapters, null, 2),
165
+ },
166
+ ],
167
+ };
168
+ });
169
+ }
170
+ /**
171
+ * Start the server with the configured transport
172
+ */
173
+ async start() {
174
+ switch (this.config.transport) {
175
+ case "stdio":
176
+ await this.startStdio();
177
+ break;
178
+ case "http":
179
+ await this.startHttp();
180
+ break;
181
+ default:
182
+ throw new Error(`Unsupported transport: ${this.config.transport}`);
183
+ }
184
+ }
185
+ /**
186
+ * Start server with stdio transport
187
+ */
188
+ async startStdio() {
189
+ const transport = new StdioServerTransport();
190
+ await this.server.connect(transport);
191
+ logger.info(`db-mcp server started (stdio transport)`, {
192
+ module: "SERVER",
193
+ });
194
+ }
195
+ /**
196
+ * Start server with HTTP transport (Streamable HTTP with SSE support)
197
+ */
198
+ async startHttp() {
199
+ const { HttpTransport } = await import("../transports/http.js");
200
+ // Build OAuth config, only including defined optional properties
201
+ const oauthConfig = {
202
+ enabled: this.config.oauth?.enabled ?? false,
203
+ authorizationServerUrl: this.config.oauth?.authorizationServerUrl ?? "",
204
+ audience: this.config.oauth?.audience ?? this.config.name,
205
+ };
206
+ // Only add optional properties if they are defined
207
+ if (this.config.oauth?.issuer !== undefined) {
208
+ oauthConfig.issuer = this.config.oauth.issuer;
209
+ }
210
+ if (this.config.oauth?.jwksUri !== undefined) {
211
+ oauthConfig.jwksUri = this.config.oauth.jwksUri;
212
+ }
213
+ if (this.config.oauth?.clockTolerance !== undefined) {
214
+ oauthConfig.clockTolerance = this.config.oauth.clockTolerance;
215
+ }
216
+ if (this.config.oauth?.publicPaths !== undefined) {
217
+ oauthConfig.publicPaths = this.config.oauth.publicPaths;
218
+ }
219
+ const transport = new HttpTransport({
220
+ port: this.config.port ?? 3000,
221
+ oauth: oauthConfig,
222
+ stateless: this.config.statelessHttp ?? false,
223
+ });
224
+ // Initialize transport with the MCP server reference
225
+ // In stateful mode, transport manages sessions internally
226
+ // In stateless mode, transport creates a single shared connection
227
+ await transport.initialize(this.server);
228
+ await transport.start();
229
+ const mode = this.config.statelessHttp ? "stateless" : "stateful";
230
+ logger.info(`db-mcp server started (HTTP transport on port ${String(this.config.port ?? 3000)}, ${mode} mode)`, { module: "TRANSPORT", mode });
231
+ }
232
+ /**
233
+ * Gracefully shut down the server
234
+ */
235
+ async shutdown() {
236
+ logger.info("Shutting down db-mcp server...", { module: "SERVER" });
237
+ // Disconnect all adapters
238
+ for (const [id, adapter] of this.adapters) {
239
+ try {
240
+ await adapter.disconnect();
241
+ logger.info(`Disconnected adapter: ${id}`, { module: "SERVER" });
242
+ }
243
+ catch (error) {
244
+ logger.error(`Error disconnecting adapter ${id}`, {
245
+ module: "SERVER",
246
+ error: error instanceof Error ? error : undefined,
247
+ });
248
+ }
249
+ }
250
+ // Close MCP server
251
+ await this.server.close();
252
+ logger.info("Server shutdown complete", { module: "SERVER" });
253
+ }
254
+ }
255
+ /**
256
+ * Create and configure a db-mcp server instance
257
+ */
258
+ export function createServer(config) {
259
+ return new DbMcpServer(config);
260
+ }
261
+ /**
262
+ * Default server configuration
263
+ */
264
+ export const DEFAULT_CONFIG = {
265
+ name: "db-mcp",
266
+ version: "0.1.0",
267
+ transport: "stdio",
268
+ databases: [],
269
+ };
270
+ //# sourceMappingURL=McpServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpServer.js","sourceRoot":"","sources":["../../src/server/McpServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * db-mcp - HTTP Transport
3
+ *
4
+ * Streamable HTTP transport with OAuth 2.0 integration and SSE support.
5
+ * Provides secure HTTP endpoints for MCP communication with optional
6
+ * session management and server-sent events for notifications.
7
+ *
8
+ * Modes:
9
+ * - Stateful (default): Multi-session management with SSE streaming
10
+ * - Stateless (opt-in): Lightweight serverless-compatible mode
11
+ */
12
+ import { type Express } from "express";
13
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
14
+ import { OAuthResourceServer } from "../auth/OAuthResourceServer.js";
15
+ /**
16
+ * HTTP transport configuration
17
+ */
18
+ export interface HttpTransportConfig {
19
+ /** Port to listen on */
20
+ port: number;
21
+ /** Host to bind to (default: '0.0.0.0') */
22
+ host?: string;
23
+ /**
24
+ * Enable stateless HTTP mode (no session management, no SSE streaming).
25
+ * Ideal for serverless deployments (Lambda, Workers, Vercel).
26
+ * Default: false (stateful mode with session management and SSE support)
27
+ */
28
+ stateless?: boolean;
29
+ /** OAuth configuration */
30
+ oauth: {
31
+ /** Enable OAuth authentication */
32
+ enabled: boolean;
33
+ /** Authorization server URL */
34
+ authorizationServerUrl: string;
35
+ /** Expected audience in tokens */
36
+ audience: string;
37
+ /** Expected issuer (defaults to authorizationServerUrl) */
38
+ issuer?: string;
39
+ /** JWKS URI (auto-discovered if not provided) */
40
+ jwksUri?: string;
41
+ /** Clock tolerance in seconds (default: 60) */
42
+ clockTolerance?: number;
43
+ /** Paths that bypass authentication */
44
+ publicPaths?: string[];
45
+ };
46
+ /** CORS configuration */
47
+ cors?: {
48
+ /** Allowed origins */
49
+ origin?: string | string[] | boolean;
50
+ /** Allowed methods */
51
+ methods?: string[];
52
+ /** Allowed headers */
53
+ allowedHeaders?: string[];
54
+ /** Exposed headers */
55
+ exposedHeaders?: string[];
56
+ /** Allow credentials */
57
+ credentials?: boolean;
58
+ };
59
+ /** Resource URI (defaults to http://localhost:{port}) */
60
+ resourceUri?: string;
61
+ }
62
+ /**
63
+ * HTTP Transport for MCP with OAuth 2.0 integration and SSE support.
64
+ *
65
+ * Supports two modes:
66
+ * - Stateful (default): Multi-session management with SSE streaming for notifications
67
+ * - Stateless: Single transport, no session management - ideal for serverless
68
+ */
69
+ export declare class HttpTransport {
70
+ private readonly config;
71
+ private app;
72
+ private httpServer;
73
+ private transports;
74
+ private statelessTransport;
75
+ private resourceServer;
76
+ private authServerDiscovery;
77
+ private tokenValidator;
78
+ private mcpServer;
79
+ constructor(config: HttpTransportConfig);
80
+ /**
81
+ * Initialize the transport with the MCP server.
82
+ *
83
+ * For stateful mode, the server reference is stored to connect new sessions.
84
+ * For stateless mode, a single transport is created and connected.
85
+ *
86
+ * @param server - The MCP server instance
87
+ */
88
+ initialize(server: McpServer): Promise<void>;
89
+ /**
90
+ * Configure CORS with SSE-compatible headers
91
+ */
92
+ private setupCors;
93
+ /**
94
+ * Set up stateless mode endpoints (serverless-compatible)
95
+ */
96
+ private setupStatelessEndpoints;
97
+ /**
98
+ * Set up stateful mode endpoints with session management and SSE
99
+ */
100
+ private setupStatefulEndpoints;
101
+ /**
102
+ * Apply OAuth authentication middleware if enabled
103
+ */
104
+ private applyAuthMiddleware;
105
+ /**
106
+ * Set up OAuth 2.0 components
107
+ */
108
+ private setupOAuth;
109
+ /**
110
+ * Start listening on the configured port
111
+ */
112
+ start(): Promise<void>;
113
+ /**
114
+ * Stop the server and close all active sessions
115
+ */
116
+ stop(): Promise<void>;
117
+ /**
118
+ * Get the underlying Express app
119
+ */
120
+ getApp(): Express | null;
121
+ /**
122
+ * Get the number of active sessions (stateful mode only)
123
+ */
124
+ getActiveSessionCount(): number;
125
+ /**
126
+ * Get the OAuth Resource Server
127
+ */
128
+ getResourceServer(): OAuthResourceServer | null;
129
+ }
130
+ /**
131
+ * Create an HTTP transport instance
132
+ */
133
+ export declare function createHttpTransport(config: HttpTransportConfig): HttpTransport;
134
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/transports/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAgB,EAAE,KAAK,OAAO,EAAuB,MAAM,SAAS,CAAC;AAMrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAcrE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,0BAA0B;IAC1B,KAAK,EAAE;QACL,kCAAkC;QAClC,OAAO,EAAE,OAAO,CAAC;QAEjB,+BAA+B;QAC/B,sBAAsB,EAAE,MAAM,CAAC;QAE/B,kCAAkC;QAClC,QAAQ,EAAE,MAAM,CAAC;QAEjB,2DAA2D;QAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,iDAAiD;QACjD,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,+CAA+C;QAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,uCAAuC;QACvC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IAEF,yBAAyB;IACzB,IAAI,CAAC,EAAE;QACL,sBAAsB;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QAErC,sBAAsB;QACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAEnB,sBAAsB;QACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAE1B,sBAAsB;QACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAE1B,wBAAwB;QACxB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IAEF,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,UAAU,CAA4B;IAG9C,OAAO,CAAC,UAAU,CAAoD;IAGtE,OAAO,CAAC,kBAAkB,CAA8C;IAGxE,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,SAAS,CAA0B;gBAE/B,MAAM,EAAE,mBAAmB;IAQvC;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA2ElD;;OAEG;IACH,OAAO,CAAC,SAAS;IAwDjB;;OAEG;YACW,uBAAuB;IA2DrC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8J9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;YACW,UAAU;IA6DxB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD3B;;OAEG;IACH,MAAM,IAAI,OAAO,GAAG,IAAI;IAIxB;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,iBAAiB,IAAI,mBAAmB,GAAG,IAAI;CAGhD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,GAC1B,aAAa,CAEf"}