mcp-server-db2i 1.2.1 → 1.3.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 (62) hide show
  1. package/README.md +90 -308
  2. package/dist/auth/authMiddleware.d.ts +66 -0
  3. package/dist/auth/authMiddleware.d.ts.map +1 -0
  4. package/dist/auth/authMiddleware.js +217 -0
  5. package/dist/auth/authMiddleware.js.map +1 -0
  6. package/dist/auth/index.d.ts +9 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/auth/index.js +10 -0
  9. package/dist/auth/index.js.map +1 -0
  10. package/dist/auth/tokenManager.d.ts +114 -0
  11. package/dist/auth/tokenManager.d.ts.map +1 -0
  12. package/dist/auth/tokenManager.js +255 -0
  13. package/dist/auth/tokenManager.js.map +1 -0
  14. package/dist/auth/types.d.ts +103 -0
  15. package/dist/auth/types.d.ts.map +1 -0
  16. package/dist/auth/types.js +10 -0
  17. package/dist/auth/types.js.map +1 -0
  18. package/dist/config.d.ts +128 -0
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +185 -0
  21. package/dist/config.js.map +1 -1
  22. package/dist/db/connection.d.ts +53 -3
  23. package/dist/db/connection.d.ts.map +1 -1
  24. package/dist/db/connection.js +154 -15
  25. package/dist/db/connection.js.map +1 -1
  26. package/dist/db/queries.d.ts +29 -6
  27. package/dist/db/queries.d.ts.map +1 -1
  28. package/dist/db/queries.js +35 -12
  29. package/dist/db/queries.js.map +1 -1
  30. package/dist/index.d.ts +9 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +97 -42
  33. package/dist/index.js.map +1 -1
  34. package/dist/openapi.d.ts +49 -0
  35. package/dist/openapi.d.ts.map +1 -0
  36. package/dist/openapi.js +634 -0
  37. package/dist/openapi.js.map +1 -0
  38. package/dist/server.d.ts +26 -2
  39. package/dist/server.d.ts.map +1 -1
  40. package/dist/server.js +68 -22
  41. package/dist/server.js.map +1 -1
  42. package/dist/tools/metadata.d.ts +10 -0
  43. package/dist/tools/metadata.d.ts.map +1 -1
  44. package/dist/tools/metadata.js +10 -6
  45. package/dist/tools/metadata.js.map +1 -1
  46. package/dist/tools/query.d.ts +4 -0
  47. package/dist/tools/query.d.ts.map +1 -1
  48. package/dist/tools/query.js +5 -3
  49. package/dist/tools/query.js.map +1 -1
  50. package/dist/transports/http.d.ts +26 -0
  51. package/dist/transports/http.d.ts.map +1 -0
  52. package/dist/transports/http.js +552 -0
  53. package/dist/transports/http.js.map +1 -0
  54. package/dist/transports/index.d.ts +8 -0
  55. package/dist/transports/index.d.ts.map +1 -0
  56. package/dist/transports/index.js +8 -0
  57. package/dist/transports/index.js.map +1 -0
  58. package/dist/transports/sessionManager.d.ts +106 -0
  59. package/dist/transports/sessionManager.d.ts.map +1 -0
  60. package/dist/transports/sessionManager.js +260 -0
  61. package/dist/transports/sessionManager.js.map +1 -0
  62. package/package.json +9 -5
@@ -1,28 +1,134 @@
1
1
  /**
2
2
  * JDBC Connection Manager for IBM DB2i using node-jt400
3
+ *
4
+ * Supports both:
5
+ * - Global pool: For stdio transport (single user, env-based config)
6
+ * - Session pools: For HTTP transport (per-user, token-based config)
3
7
  */
4
8
  import { pool } from 'node-jt400';
5
9
  import { buildConnectionConfig } from '../config.js';
6
10
  import { createChildLogger } from '../utils/logger.js';
7
11
  const log = createChildLogger({ component: 'database' });
8
- let connectionPool = null;
12
+ // Global pool for stdio transport (backwards compatible)
13
+ let globalPool = null;
14
+ // Session pools for HTTP transport (keyed by session/token ID)
15
+ const sessionPools = new Map();
9
16
  /**
10
- * Initialize the connection pool
17
+ * Initialize the global connection pool (for stdio transport)
18
+ *
19
+ * Safe to call multiple times - will skip if pool already exists.
11
20
  */
12
21
  export function initializePool(config) {
13
- log.debug({ hostname: config.hostname, port: config.port }, 'Initializing connection pool');
22
+ if (globalPool) {
23
+ log.debug({ hostname: config.hostname }, 'Global pool already exists, skipping initialization');
24
+ return;
25
+ }
26
+ log.debug({ hostname: config.hostname, port: config.port }, 'Initializing global connection pool');
27
+ const connectionConfig = buildConnectionConfig(config);
28
+ globalPool = pool(connectionConfig);
29
+ log.info({ hostname: config.hostname }, 'Global connection pool created');
30
+ }
31
+ /**
32
+ * Initialize a session-specific connection pool (for HTTP transport)
33
+ *
34
+ * @param sessionId - Unique session identifier (typically the auth token)
35
+ * @param config - DB2i configuration for this session
36
+ */
37
+ export function initializeSessionPool(sessionId, config) {
38
+ // Don't recreate if already exists
39
+ if (sessionPools.has(sessionId)) {
40
+ log.debug({ sessionId: sessionId.substring(0, 8) }, 'Session pool already exists');
41
+ return;
42
+ }
43
+ log.debug({ sessionId: sessionId.substring(0, 8), hostname: config.hostname }, 'Initializing session connection pool');
14
44
  const connectionConfig = buildConnectionConfig(config);
15
- connectionPool = pool(connectionConfig);
16
- log.info({ hostname: config.hostname }, 'Connection pool created');
45
+ const sessionPool = pool(connectionConfig);
46
+ sessionPools.set(sessionId, sessionPool);
47
+ log.info({ sessionId: sessionId.substring(0, 8), hostname: config.hostname, poolCount: sessionPools.size }, 'Session connection pool created');
17
48
  }
18
49
  /**
19
- * Get the connection pool instance (internal use only)
50
+ * Close a session-specific connection pool
51
+ *
52
+ * @param sessionId - The session identifier
53
+ * @returns Promise that resolves when the pool is closed
20
54
  */
21
- function getPool() {
22
- if (!connectionPool) {
23
- throw new Error('Connection pool not initialized. Call initializePool first.');
55
+ export async function closeSessionPool(sessionId) {
56
+ const sessionPool = sessionPools.get(sessionId);
57
+ if (sessionPool) {
58
+ try {
59
+ await sessionPool.close();
60
+ sessionPools.delete(sessionId);
61
+ log.info({ sessionId: sessionId.substring(0, 8), poolCount: sessionPools.size }, 'Session connection pool closed');
62
+ }
63
+ catch (err) {
64
+ // Still remove from map on error to avoid retry loops with broken pools
65
+ sessionPools.delete(sessionId);
66
+ log.warn({ err, sessionId: sessionId.substring(0, 8) }, 'Error closing session connection pool');
67
+ }
24
68
  }
25
- return connectionPool;
69
+ }
70
+ /**
71
+ * Close all session connection pools (for shutdown)
72
+ *
73
+ * @returns Promise that resolves when all pools are closed
74
+ */
75
+ export async function closeAllSessionPools() {
76
+ const poolCount = sessionPools.size;
77
+ if (poolCount === 0) {
78
+ return;
79
+ }
80
+ log.info({ poolCount }, 'Closing all session connection pools');
81
+ const closePromises = Array.from(sessionPools.keys()).map(sessionId => closeSessionPool(sessionId));
82
+ await Promise.all(closePromises);
83
+ log.info('All session connection pools closed');
84
+ }
85
+ /**
86
+ * Close the global connection pool (for shutdown)
87
+ *
88
+ * @returns Promise that resolves when the pool is closed
89
+ */
90
+ export async function closeGlobalPool() {
91
+ if (globalPool) {
92
+ try {
93
+ await globalPool.close();
94
+ globalPool = null;
95
+ log.info('Global connection pool closed');
96
+ }
97
+ catch (err) {
98
+ log.warn({ err }, 'Error closing global connection pool');
99
+ }
100
+ }
101
+ }
102
+ /**
103
+ * Get the global connection pool instance (internal use only)
104
+ */
105
+ function getGlobalPool() {
106
+ if (!globalPool) {
107
+ throw new Error('Global connection pool not initialized. Call initializePool first.');
108
+ }
109
+ return globalPool;
110
+ }
111
+ /**
112
+ * Get a session-specific connection pool
113
+ *
114
+ * @param sessionId - The session identifier
115
+ * @returns The pool for the session, or throws if not found
116
+ */
117
+ function getSessionPool(sessionId) {
118
+ const sessionPool = sessionPools.get(sessionId);
119
+ if (!sessionPool) {
120
+ throw new Error(`Session pool not found for session: ${sessionId.substring(0, 8)}...`);
121
+ }
122
+ return sessionPool;
123
+ }
124
+ /**
125
+ * Get the appropriate pool - session pool if sessionId provided, otherwise global
126
+ */
127
+ function getPool(sessionId) {
128
+ if (sessionId) {
129
+ return getSessionPool(sessionId);
130
+ }
131
+ return getGlobalPool();
26
132
  }
27
133
  /**
28
134
  * Convert unknown params to Param type, filtering out undefined
@@ -45,11 +151,15 @@ function toParams(params) {
45
151
  }
46
152
  /**
47
153
  * Execute a query and return results
154
+ *
155
+ * @param sql - SQL query to execute
156
+ * @param params - Query parameters
157
+ * @param sessionId - Optional session ID for HTTP transport
48
158
  */
49
- export async function executeQuery(sql, params = []) {
50
- const db = getPool();
159
+ export async function executeQuery(sql, params = [], sessionId) {
160
+ const db = getPool(sessionId);
51
161
  try {
52
- log.debug({ sql: sql.substring(0, 200), paramCount: params.length }, 'Executing query');
162
+ log.debug({ sql: sql.substring(0, 200), paramCount: params.length, sessionId: sessionId?.substring(0, 8) }, 'Executing query');
53
163
  const typedParams = toParams(params);
54
164
  const results = await db.query(sql, typedParams);
55
165
  const rows = results;
@@ -63,11 +173,11 @@ export async function executeQuery(sql, params = []) {
63
173
  }
64
174
  }
65
175
  /**
66
- * Test the database connection
176
+ * Test the global database connection (for stdio transport)
67
177
  */
68
178
  export async function testConnection() {
69
179
  try {
70
- log.debug('Testing database connection');
180
+ log.debug('Testing global database connection');
71
181
  await executeQuery('SELECT 1 FROM SYSIBM.SYSDUMMY1');
72
182
  log.debug('Connection test successful');
73
183
  return true;
@@ -77,4 +187,33 @@ export async function testConnection() {
77
187
  return false;
78
188
  }
79
189
  }
190
+ /**
191
+ * Test a session-specific database connection (for HTTP transport)
192
+ *
193
+ * @param sessionId - The session identifier
194
+ */
195
+ export async function testSessionConnection(sessionId) {
196
+ try {
197
+ log.debug({ sessionId: sessionId.substring(0, 8) }, 'Testing session database connection');
198
+ await executeQuery('SELECT 1 FROM SYSIBM.SYSDUMMY1', [], sessionId);
199
+ log.debug({ sessionId: sessionId.substring(0, 8) }, 'Session connection test successful');
200
+ return true;
201
+ }
202
+ catch (error) {
203
+ log.warn({ err: error, sessionId: sessionId.substring(0, 8) }, 'Session connection test failed');
204
+ return false;
205
+ }
206
+ }
207
+ /**
208
+ * Check if a session pool exists
209
+ */
210
+ export function hasSessionPool(sessionId) {
211
+ return sessionPools.has(sessionId);
212
+ }
213
+ /**
214
+ * Get count of active session pools
215
+ */
216
+ export function getSessionPoolCount() {
217
+ return sessionPools.size;
218
+ }
80
219
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
@@ -32,23 +32,34 @@ export declare function isReadOnlyQuery(sql: string): boolean;
32
32
  export declare function validateQuery(sql: string, config?: SecurityConfig): SecurityValidationResult;
33
33
  /**
34
34
  * List all schemas/libraries
35
+ *
36
+ * @param filter - Optional filter pattern
37
+ * @param sessionId - Optional session ID for HTTP transport
35
38
  */
36
- export declare function listSchemas(filter?: string): Promise<Array<{
39
+ export declare function listSchemas(filter?: string, sessionId?: string): Promise<Array<{
37
40
  schema_name: string;
38
41
  schema_text: string | null;
39
42
  }>>;
40
43
  /**
41
44
  * List tables in a schema
45
+ *
46
+ * @param schema - Schema name
47
+ * @param filter - Optional filter pattern
48
+ * @param sessionId - Optional session ID for HTTP transport
42
49
  */
43
- export declare function listTables(schema: string, filter?: string): Promise<Array<{
50
+ export declare function listTables(schema: string, filter?: string, sessionId?: string): Promise<Array<{
44
51
  table_name: string;
45
52
  table_type: string;
46
53
  table_text: string | null;
47
54
  }>>;
48
55
  /**
49
56
  * Describe a table's columns
57
+ *
58
+ * @param schema - Schema name
59
+ * @param table - Table name
60
+ * @param sessionId - Optional session ID for HTTP transport
50
61
  */
51
- export declare function describeTable(schema: string, table: string): Promise<Array<{
62
+ export declare function describeTable(schema: string, table: string, sessionId?: string): Promise<Array<{
52
63
  column_name: string;
53
64
  ordinal_position: number;
54
65
  data_type: string;
@@ -65,8 +76,12 @@ export declare function describeTable(schema: string, table: string): Promise<Ar
65
76
  *
66
77
  * Note: This only returns SQL-defined views (CREATE VIEW).
67
78
  * For legacy DDS logical files, query QSYS.QADBFDEP.
79
+ *
80
+ * @param schema - Schema name
81
+ * @param filter - Optional filter pattern
82
+ * @param sessionId - Optional session ID for HTTP transport
68
83
  */
69
- export declare function listViews(schema: string, filter?: string): Promise<Array<{
84
+ export declare function listViews(schema: string, filter?: string, sessionId?: string): Promise<Array<{
70
85
  view_name: string;
71
86
  view_text: string | null;
72
87
  }>>;
@@ -75,8 +90,12 @@ export declare function listViews(schema: string, filter?: string): Promise<Arra
75
90
  *
76
91
  * Note: This only returns SQL-defined indexes (CREATE INDEX).
77
92
  * For legacy DDS logical files, query QSYS.QADBFDEP and QSYS.QADBKFLD.
93
+ *
94
+ * @param schema - Schema name
95
+ * @param table - Table name
96
+ * @param sessionId - Optional session ID for HTTP transport
78
97
  */
79
- export declare function listIndexes(schema: string, table: string): Promise<Array<{
98
+ export declare function listIndexes(schema: string, table: string, sessionId?: string): Promise<Array<{
80
99
  index_name: string;
81
100
  index_schema: string;
82
101
  is_unique: string;
@@ -84,8 +103,12 @@ export declare function listIndexes(schema: string, table: string): Promise<Arra
84
103
  }>>;
85
104
  /**
86
105
  * Get table constraints (primary keys, foreign keys, unique constraints)
106
+ *
107
+ * @param schema - Schema name
108
+ * @param table - Table name
109
+ * @param sessionId - Optional session ID for HTTP transport
87
110
  */
88
- export declare function getTableConstraints(schema: string, table: string): Promise<Array<{
111
+ export declare function getTableConstraints(schema: string, table: string, sessionId?: string): Promise<Array<{
89
112
  constraint_name: string;
90
113
  constraint_type: string;
91
114
  column_name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,oBAAoB,EACpB,aAAa,IAAI,gBAAgB,EACjC,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EACpB,MAAM,2CAA2C,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,KAAK,wBAAwB,EAAE,KAAK,cAAc,EAAE,CAAC;AAEtG;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAiBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGlD;AAEH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,wBAAwB,CAE5F;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAkBtH;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAqBvF;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC,CAAC,CAiCF;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC,CAoBjE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC,CA4BF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,KAAK,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC,CAAC,CAAC,CAqCF"}
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
@@ -53,8 +53,11 @@ export function validateQuery(sql, config) {
53
53
  }
54
54
  /**
55
55
  * List all schemas/libraries
56
+ *
57
+ * @param filter - Optional filter pattern
58
+ * @param sessionId - Optional session ID for HTTP transport
56
59
  */
57
- export async function listSchemas(filter) {
60
+ export async function listSchemas(filter, sessionId) {
58
61
  const pattern = filterToLikePattern(filter);
59
62
  const sql = `
60
63
  SELECT
@@ -64,7 +67,7 @@ export async function listSchemas(filter) {
64
67
  WHERE SCHEMA_NAME LIKE ?
65
68
  ORDER BY SCHEMA_NAME
66
69
  `;
67
- const result = await executeQuery(sql, [pattern]);
70
+ const result = await executeQuery(sql, [pattern], sessionId);
68
71
  return result.rows.map(row => ({
69
72
  schema_name: String(row.SCHEMA_NAME || '').trim(),
70
73
  schema_text: row.SCHEMA_TEXT ? String(row.SCHEMA_TEXT).trim() : null,
@@ -72,8 +75,12 @@ export async function listSchemas(filter) {
72
75
  }
73
76
  /**
74
77
  * List tables in a schema
78
+ *
79
+ * @param schema - Schema name
80
+ * @param filter - Optional filter pattern
81
+ * @param sessionId - Optional session ID for HTTP transport
75
82
  */
76
- export async function listTables(schema, filter) {
83
+ export async function listTables(schema, filter, sessionId) {
77
84
  const pattern = filterToLikePattern(filter);
78
85
  const sql = `
79
86
  SELECT
@@ -85,7 +92,7 @@ export async function listTables(schema, filter) {
85
92
  AND TABLE_NAME LIKE ?
86
93
  ORDER BY TABLE_NAME
87
94
  `;
88
- const result = await executeQuery(sql, [schema.toUpperCase(), pattern]);
95
+ const result = await executeQuery(sql, [schema.toUpperCase(), pattern], sessionId);
89
96
  return result.rows.map(row => ({
90
97
  table_name: String(row.TABLE_NAME || '').trim(),
91
98
  table_type: String(row.TABLE_TYPE || '').trim(),
@@ -94,8 +101,12 @@ export async function listTables(schema, filter) {
94
101
  }
95
102
  /**
96
103
  * Describe a table's columns
104
+ *
105
+ * @param schema - Schema name
106
+ * @param table - Table name
107
+ * @param sessionId - Optional session ID for HTTP transport
97
108
  */
98
- export async function describeTable(schema, table) {
109
+ export async function describeTable(schema, table, sessionId) {
99
110
  const sql = `
100
111
  SELECT
101
112
  COLUMN_NAME,
@@ -113,7 +124,7 @@ export async function describeTable(schema, table) {
113
124
  AND TABLE_NAME = ?
114
125
  ORDER BY ORDINAL_POSITION
115
126
  `;
116
- const result = await executeQuery(sql, [schema.toUpperCase(), table.toUpperCase()]);
127
+ const result = await executeQuery(sql, [schema.toUpperCase(), table.toUpperCase()], sessionId);
117
128
  return result.rows.map(row => ({
118
129
  column_name: String(row.COLUMN_NAME || '').trim(),
119
130
  ordinal_position: Number(row.ORDINAL_POSITION),
@@ -132,8 +143,12 @@ export async function describeTable(schema, table) {
132
143
  *
133
144
  * Note: This only returns SQL-defined views (CREATE VIEW).
134
145
  * For legacy DDS logical files, query QSYS.QADBFDEP.
146
+ *
147
+ * @param schema - Schema name
148
+ * @param filter - Optional filter pattern
149
+ * @param sessionId - Optional session ID for HTTP transport
135
150
  */
136
- export async function listViews(schema, filter) {
151
+ export async function listViews(schema, filter, sessionId) {
137
152
  const pattern = filterToLikePattern(filter);
138
153
  const sql = `
139
154
  SELECT
@@ -145,7 +160,7 @@ export async function listViews(schema, filter) {
145
160
  AND TABLE_NAME LIKE ?
146
161
  ORDER BY TABLE_NAME
147
162
  `;
148
- const result = await executeQuery(sql, [schema.toUpperCase(), pattern]);
163
+ const result = await executeQuery(sql, [schema.toUpperCase(), pattern], sessionId);
149
164
  return result.rows.map(row => ({
150
165
  view_name: String(row.VIEW_NAME || '').trim(),
151
166
  view_text: row.VIEW_TEXT ? String(row.VIEW_TEXT).trim() : null,
@@ -156,8 +171,12 @@ export async function listViews(schema, filter) {
156
171
  *
157
172
  * Note: This only returns SQL-defined indexes (CREATE INDEX).
158
173
  * For legacy DDS logical files, query QSYS.QADBFDEP and QSYS.QADBKFLD.
174
+ *
175
+ * @param schema - Schema name
176
+ * @param table - Table name
177
+ * @param sessionId - Optional session ID for HTTP transport
159
178
  */
160
- export async function listIndexes(schema, table) {
179
+ export async function listIndexes(schema, table, sessionId) {
161
180
  const sql = `
162
181
  SELECT
163
182
  I.INDEX_NAME,
@@ -176,7 +195,7 @@ export async function listIndexes(schema, table) {
176
195
  GROUP BY I.INDEX_NAME, I.INDEX_SCHEMA, I.IS_UNIQUE
177
196
  ORDER BY I.INDEX_NAME
178
197
  `;
179
- const result = await executeQuery(sql, [schema.toUpperCase(), table.toUpperCase()]);
198
+ const result = await executeQuery(sql, [schema.toUpperCase(), table.toUpperCase()], sessionId);
180
199
  return result.rows.map(row => ({
181
200
  index_name: String(row.INDEX_NAME || '').trim(),
182
201
  index_schema: String(row.INDEX_SCHEMA || '').trim(),
@@ -186,8 +205,12 @@ export async function listIndexes(schema, table) {
186
205
  }
187
206
  /**
188
207
  * Get table constraints (primary keys, foreign keys, unique constraints)
208
+ *
209
+ * @param schema - Schema name
210
+ * @param table - Table name
211
+ * @param sessionId - Optional session ID for HTTP transport
189
212
  */
190
- export async function getTableConstraints(schema, table) {
213
+ export async function getTableConstraints(schema, table, sessionId) {
191
214
  const sql = `
192
215
  SELECT
193
216
  CST.CONSTRAINT_NAME,
@@ -212,7 +235,7 @@ export async function getTableConstraints(schema, table) {
212
235
  AND CST.TABLE_NAME = ?
213
236
  ORDER BY CST.CONSTRAINT_NAME, KC.ORDINAL_POSITION
214
237
  `;
215
- const result = await executeQuery(sql, [schema.toUpperCase(), table.toUpperCase()]);
238
+ const result = await executeQuery(sql, [schema.toUpperCase(), table.toUpperCase()], sessionId);
216
239
  return result.rows.map(row => ({
217
240
  constraint_name: String(row.CONSTRAINT_NAME || '').trim(),
218
241
  constraint_type: String(row.CONSTRAINT_TYPE || '').trim(),
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/db/queries.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,15 @@
4
4
  *
5
5
  * A Model Context Protocol server for querying and inspecting
6
6
  * IBM DB2 for i (DB2i) databases using the JT400 JDBC driver.
7
+ *
8
+ * Supports two transport modes:
9
+ * - stdio (default): For CLI/IDE integration
10
+ * - http: For web/agent integration with token authentication
11
+ *
12
+ * Transport mode is controlled by MCP_TRANSPORT environment variable:
13
+ * - 'stdio' (default): Only stdio transport
14
+ * - 'http': Only HTTP transport
15
+ * - 'both': Both transports simultaneously
7
16
  */
8
17
  export {};
9
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}