@ibm/ibmi-mcp-server 0.1.2 → 0.3.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 (207) hide show
  1. package/README.md +2178 -46
  2. package/dist/config/index.d.ts +2 -0
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +57 -24
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/config/resolver.d.ts.map +1 -1
  7. package/dist/config/resolver.js.map +1 -1
  8. package/dist/ibmi-mcp-server/auth/httpAuthEndpoint.js +1 -1
  9. package/dist/ibmi-mcp-server/services/connectionPool.js +2 -2
  10. package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts +80 -0
  11. package/dist/ibmi-mcp-server/tools/executeSql.tool.d.ts.map +1 -0
  12. package/dist/ibmi-mcp-server/tools/executeSql.tool.js +356 -0
  13. package/dist/ibmi-mcp-server/tools/executeSql.tool.js.map +1 -0
  14. package/dist/ibmi-mcp-server/tools/generateSql.tool.d.ts +36 -0
  15. package/dist/ibmi-mcp-server/tools/generateSql.tool.d.ts.map +1 -0
  16. package/dist/ibmi-mcp-server/tools/generateSql.tool.js +281 -0
  17. package/dist/ibmi-mcp-server/tools/generateSql.tool.js.map +1 -0
  18. package/dist/ibmi-mcp-server/tools/index.d.ts +85 -0
  19. package/dist/ibmi-mcp-server/tools/index.d.ts.map +1 -0
  20. package/dist/ibmi-mcp-server/tools/index.js +21 -0
  21. package/dist/ibmi-mcp-server/tools/index.js.map +1 -0
  22. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts +9 -0
  23. package/dist/ibmi-mcp-server/utils/config/configParser.d.ts.map +1 -1
  24. package/dist/ibmi-mcp-server/utils/config/configParser.js +58 -0
  25. package/dist/ibmi-mcp-server/utils/config/configParser.js.map +1 -1
  26. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +1 -1
  27. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -1
  28. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts +4 -4
  29. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.d.ts.map +1 -1
  30. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js +7 -8
  31. package/dist/ibmi-mcp-server/utils/config/toolDefinitions.js.map +1 -1
  32. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +0 -8
  33. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -1
  34. package/dist/ibmi-mcp-server/utils/config/toolFactory.js +0 -31
  35. package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -1
  36. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts +1 -1
  37. package/dist/ibmi-mcp-server/utils/config/toolsetManager.d.ts.map +1 -1
  38. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js +2 -2
  39. package/dist/ibmi-mcp-server/utils/config/toolsetManager.js.map +1 -1
  40. package/dist/ibmi-mcp-server/utils/language/document.d.ts +26 -0
  41. package/dist/ibmi-mcp-server/utils/language/document.d.ts.map +1 -0
  42. package/dist/ibmi-mcp-server/utils/language/document.js +318 -0
  43. package/dist/ibmi-mcp-server/utils/language/document.js.map +1 -0
  44. package/dist/ibmi-mcp-server/utils/language/statement.d.ts +43 -0
  45. package/dist/ibmi-mcp-server/utils/language/statement.d.ts.map +1 -0
  46. package/dist/ibmi-mcp-server/utils/language/statement.js +796 -0
  47. package/dist/ibmi-mcp-server/utils/language/statement.js.map +1 -0
  48. package/dist/ibmi-mcp-server/utils/language/tokens.d.ts +32 -0
  49. package/dist/ibmi-mcp-server/utils/language/tokens.d.ts.map +1 -0
  50. package/dist/ibmi-mcp-server/utils/language/tokens.js +532 -0
  51. package/dist/ibmi-mcp-server/utils/language/tokens.js.map +1 -0
  52. package/dist/ibmi-mcp-server/utils/language/types.d.ts +138 -0
  53. package/dist/ibmi-mcp-server/utils/language/types.d.ts.map +1 -0
  54. package/dist/ibmi-mcp-server/utils/language/types.js +93 -0
  55. package/dist/ibmi-mcp-server/utils/language/types.js.map +1 -0
  56. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.d.ts +48 -0
  57. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.d.ts.map +1 -0
  58. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.js +93 -0
  59. package/dist/ibmi-mcp-server/utils/security/ibmiSqlParser.js.map +1 -0
  60. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts +35 -59
  61. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.d.ts.map +1 -1
  62. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js +108 -288
  63. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidator.js.map +1 -1
  64. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.d.ts +54 -0
  65. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.d.ts.map +1 -0
  66. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.js +91 -0
  67. package/dist/ibmi-mcp-server/utils/security/sqlSecurityValidatorFallback.js.map +1 -0
  68. package/dist/index.js +4 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/mcp-server/tools/index.d.ts +13 -2
  71. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  72. package/dist/mcp-server/tools/index.js +29 -9
  73. package/dist/mcp-server/tools/index.js.map +1 -1
  74. package/dist/mcp-server/tools/utils/index.d.ts +7 -0
  75. package/dist/mcp-server/tools/utils/index.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/utils/index.js +7 -0
  77. package/dist/mcp-server/tools/utils/index.js.map +1 -0
  78. package/dist/mcp-server/tools/utils/tool-factory.d.ts +129 -0
  79. package/dist/mcp-server/tools/utils/tool-factory.d.ts.map +1 -0
  80. package/dist/mcp-server/tools/utils/tool-factory.js +179 -0
  81. package/dist/mcp-server/tools/utils/tool-factory.js.map +1 -0
  82. package/dist/mcp-server/tools/utils/types.d.ts +117 -0
  83. package/dist/mcp-server/tools/utils/types.d.ts.map +1 -0
  84. package/dist/mcp-server/tools/utils/types.js +11 -0
  85. package/dist/mcp-server/tools/utils/types.js.map +1 -0
  86. package/dist/mcp-server/transports/core/cleanupTransformStream.d.ts +26 -0
  87. package/dist/mcp-server/transports/core/cleanupTransformStream.d.ts.map +1 -0
  88. package/dist/mcp-server/transports/core/cleanupTransformStream.js +60 -0
  89. package/dist/mcp-server/transports/core/cleanupTransformStream.js.map +1 -0
  90. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts +1 -1
  91. package/dist/mcp-server/transports/core/statefulTransportManager.d.ts.map +1 -1
  92. package/dist/mcp-server/transports/core/statefulTransportManager.js +50 -40
  93. package/dist/mcp-server/transports/core/statefulTransportManager.js.map +1 -1
  94. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts +2 -13
  95. package/dist/mcp-server/transports/core/statelessTransportManager.d.ts.map +1 -1
  96. package/dist/mcp-server/transports/core/statelessTransportManager.js +35 -62
  97. package/dist/mcp-server/transports/core/statelessTransportManager.js.map +1 -1
  98. package/dist/mcp-server/transports/core/transportRequest.d.ts +1 -2
  99. package/dist/mcp-server/transports/core/transportRequest.d.ts.map +1 -1
  100. package/dist/mcp-server/transports/http/mcpTransportMiddleware.d.ts.map +1 -1
  101. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js +1 -3
  102. package/dist/mcp-server/transports/http/mcpTransportMiddleware.js.map +1 -1
  103. package/dist/utils/internal/logger.d.ts +5 -0
  104. package/dist/utils/internal/logger.d.ts.map +1 -1
  105. package/dist/utils/internal/logger.js +65 -36
  106. package/dist/utils/internal/logger.js.map +1 -1
  107. package/package.json +29 -23
  108. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts +0 -9
  109. package/dist/ibmi-mcp-server/tools/executeSql/index.d.ts.map +0 -1
  110. package/dist/ibmi-mcp-server/tools/executeSql/index.js +0 -9
  111. package/dist/ibmi-mcp-server/tools/executeSql/index.js.map +0 -1
  112. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts +0 -51
  113. package/dist/ibmi-mcp-server/tools/executeSql/logic.d.ts.map +0 -1
  114. package/dist/ibmi-mcp-server/tools/executeSql/logic.js +0 -179
  115. package/dist/ibmi-mcp-server/tools/executeSql/logic.js.map +0 -1
  116. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts +0 -52
  117. package/dist/ibmi-mcp-server/tools/executeSql/registration.d.ts.map +0 -1
  118. package/dist/ibmi-mcp-server/tools/executeSql/registration.js +0 -161
  119. package/dist/ibmi-mcp-server/tools/executeSql/registration.js.map +0 -1
  120. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts +0 -13
  121. package/dist/ibmi-mcp-server/tools/generateSql/index.d.ts.map +0 -1
  122. package/dist/ibmi-mcp-server/tools/generateSql/index.js +0 -13
  123. package/dist/ibmi-mcp-server/tools/generateSql/index.js.map +0 -1
  124. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts +0 -64
  125. package/dist/ibmi-mcp-server/tools/generateSql/logic.d.ts.map +0 -1
  126. package/dist/ibmi-mcp-server/tools/generateSql/logic.js +0 -190
  127. package/dist/ibmi-mcp-server/tools/generateSql/logic.js.map +0 -1
  128. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts +0 -18
  129. package/dist/ibmi-mcp-server/tools/generateSql/registration.d.ts.map +0 -1
  130. package/dist/ibmi-mcp-server/tools/generateSql/registration.js +0 -64
  131. package/dist/ibmi-mcp-server/tools/generateSql/registration.js.map +0 -1
  132. package/dist/mcp-server/tools/catFactFetcher/index.d.ts +0 -8
  133. package/dist/mcp-server/tools/catFactFetcher/index.d.ts.map +0 -1
  134. package/dist/mcp-server/tools/catFactFetcher/index.js +0 -8
  135. package/dist/mcp-server/tools/catFactFetcher/index.js.map +0 -1
  136. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts +0 -52
  137. package/dist/mcp-server/tools/catFactFetcher/logic.d.ts.map +0 -1
  138. package/dist/mcp-server/tools/catFactFetcher/logic.js +0 -95
  139. package/dist/mcp-server/tools/catFactFetcher/logic.js.map +0 -1
  140. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts +0 -9
  141. package/dist/mcp-server/tools/catFactFetcher/registration.d.ts.map +0 -1
  142. package/dist/mcp-server/tools/catFactFetcher/registration.js +0 -43
  143. package/dist/mcp-server/tools/catFactFetcher/registration.js.map +0 -1
  144. package/dist/mcp-server/tools/echoTool/index.d.ts +0 -13
  145. package/dist/mcp-server/tools/echoTool/index.d.ts.map +0 -1
  146. package/dist/mcp-server/tools/echoTool/index.js +0 -13
  147. package/dist/mcp-server/tools/echoTool/index.js.map +0 -1
  148. package/dist/mcp-server/tools/echoTool/logic.d.ts +0 -69
  149. package/dist/mcp-server/tools/echoTool/logic.d.ts.map +0 -1
  150. package/dist/mcp-server/tools/echoTool/logic.js +0 -119
  151. package/dist/mcp-server/tools/echoTool/logic.js.map +0 -1
  152. package/dist/mcp-server/tools/echoTool/registration.d.ts +0 -9
  153. package/dist/mcp-server/tools/echoTool/registration.d.ts.map +0 -1
  154. package/dist/mcp-server/tools/echoTool/registration.js +0 -45
  155. package/dist/mcp-server/tools/echoTool/registration.js.map +0 -1
  156. package/dist/mcp-server/tools/imageTest/index.d.ts +0 -7
  157. package/dist/mcp-server/tools/imageTest/index.d.ts.map +0 -1
  158. package/dist/mcp-server/tools/imageTest/index.js +0 -7
  159. package/dist/mcp-server/tools/imageTest/index.js.map +0 -1
  160. package/dist/mcp-server/tools/imageTest/logic.d.ts +0 -27
  161. package/dist/mcp-server/tools/imageTest/logic.d.ts.map +0 -1
  162. package/dist/mcp-server/tools/imageTest/logic.js +0 -44
  163. package/dist/mcp-server/tools/imageTest/logic.js.map +0 -1
  164. package/dist/mcp-server/tools/imageTest/registration.d.ts +0 -9
  165. package/dist/mcp-server/tools/imageTest/registration.d.ts.map +0 -1
  166. package/dist/mcp-server/tools/imageTest/registration.js +0 -49
  167. package/dist/mcp-server/tools/imageTest/registration.js.map +0 -1
  168. package/dist/mcp-server/tools/utils/tool-utils.d.ts +0 -43
  169. package/dist/mcp-server/tools/utils/tool-utils.d.ts.map +0 -1
  170. package/dist/mcp-server/tools/utils/tool-utils.js +0 -44
  171. package/dist/mcp-server/tools/utils/tool-utils.js.map +0 -1
  172. package/dist/mcp-server/transports/core/headerUtils.d.ts +0 -27
  173. package/dist/mcp-server/transports/core/headerUtils.d.ts.map +0 -1
  174. package/dist/mcp-server/transports/core/headerUtils.js +0 -53
  175. package/dist/mcp-server/transports/core/headerUtils.js.map +0 -1
  176. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts +0 -77
  177. package/dist/mcp-server/transports/core/honoNodeBridge.d.ts.map +0 -1
  178. package/dist/mcp-server/transports/core/honoNodeBridge.js +0 -150
  179. package/dist/mcp-server/transports/core/honoNodeBridge.js.map +0 -1
  180. package/dist/services/duck-db/duckDBConnectionManager.d.ts +0 -55
  181. package/dist/services/duck-db/duckDBConnectionManager.d.ts.map +0 -1
  182. package/dist/services/duck-db/duckDBConnectionManager.js +0 -184
  183. package/dist/services/duck-db/duckDBConnectionManager.js.map +0 -1
  184. package/dist/services/duck-db/duckDBQueryExecutor.d.ts +0 -18
  185. package/dist/services/duck-db/duckDBQueryExecutor.d.ts.map +0 -1
  186. package/dist/services/duck-db/duckDBQueryExecutor.js +0 -115
  187. package/dist/services/duck-db/duckDBQueryExecutor.js.map +0 -1
  188. package/dist/services/duck-db/duckDBService.d.ts +0 -27
  189. package/dist/services/duck-db/duckDBService.d.ts.map +0 -1
  190. package/dist/services/duck-db/duckDBService.js +0 -151
  191. package/dist/services/duck-db/duckDBService.js.map +0 -1
  192. package/dist/services/duck-db/types.d.ts +0 -135
  193. package/dist/services/duck-db/types.d.ts.map +0 -1
  194. package/dist/services/duck-db/types.js +0 -6
  195. package/dist/services/duck-db/types.js.map +0 -1
  196. package/dist/services/llm-providers/openRouterProvider.d.ts +0 -36
  197. package/dist/services/llm-providers/openRouterProvider.d.ts.map +0 -1
  198. package/dist/services/llm-providers/openRouterProvider.js +0 -235
  199. package/dist/services/llm-providers/openRouterProvider.js.map +0 -1
  200. package/dist/services/supabase/supabaseClient.d.ts +0 -25
  201. package/dist/services/supabase/supabaseClient.d.ts.map +0 -1
  202. package/dist/services/supabase/supabaseClient.js +0 -68
  203. package/dist/services/supabase/supabaseClient.js.map +0 -1
  204. package/dist/storage/duckdbExample.d.ts +0 -8
  205. package/dist/storage/duckdbExample.d.ts.map +0 -1
  206. package/dist/storage/duckdbExample.js +0 -197
  207. package/dist/storage/duckdbExample.js.map +0 -1
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Generate SQL DDL Tool
3
+ *
4
+ * Generates SQL DDL statements for IBM i database objects using the QSYS2.GENERATE_SQL procedure.
5
+ * Migrated from 3-file pattern to factory pattern.
6
+ *
7
+ * @module generateSql.tool
8
+ * @feature 001-tool-factory
9
+ */
10
+ import { z } from "zod";
11
+ import { JsonRpcErrorCode, McpError } from "../../types-global/errors.js";
12
+ import { logger } from "../../utils/internal/logger.js";
13
+ import { IBMiConnectionPool } from "../services/connectionPool.js";
14
+ import { defineTool } from "../../mcp-server/tools/utils/tool-factory.js";
15
+ // =============================================================================
16
+ // Constants & Types
17
+ // =============================================================================
18
+ /**
19
+ * Supported IBM i database object types for DDL generation.
20
+ */
21
+ const OBJECT_TYPES = [
22
+ "ALIAS",
23
+ "CONSTRAINT",
24
+ "FUNCTION",
25
+ "INDEX",
26
+ "MASK",
27
+ "PERMISSION",
28
+ "PROCEDURE",
29
+ "SCHEMA",
30
+ "SEQUENCE",
31
+ "TABLE",
32
+ "TRIGGER",
33
+ "TYPE",
34
+ "VARIABLE",
35
+ "VIEW",
36
+ "XSR",
37
+ ];
38
+ // =============================================================================
39
+ // Schemas
40
+ // =============================================================================
41
+ /**
42
+ * Input schema for generating SQL DDL.
43
+ */
44
+ const GenerateSqlInputSchema = z.object({
45
+ object_name: z
46
+ .string()
47
+ .min(1, "Object name cannot be empty.")
48
+ .max(128, "Object name cannot exceed 128 characters.")
49
+ .describe("The name of the IBM i database object to generate DDL for."),
50
+ object_library: z
51
+ .string()
52
+ .min(1, "Library name cannot be empty.")
53
+ .max(128, "Library name cannot exceed 128 characters.")
54
+ .default("QSYS2")
55
+ .describe("The library where the database object is located. Defaults to QSYS2."),
56
+ object_type: z
57
+ .enum(OBJECT_TYPES)
58
+ .default("TABLE")
59
+ .describe("The type of database object to generate DDL for. Valid types include TABLE, VIEW, INDEX, PROCEDURE, FUNCTION, etc."),
60
+ });
61
+ /**
62
+ * Output schema for generated SQL DDL.
63
+ */
64
+ const GenerateSqlOutputSchema = z.object({
65
+ success: z.boolean().describe("Whether the DDL generation was successful."),
66
+ sql: z
67
+ .string()
68
+ .optional()
69
+ .describe("The generated DDL SQL statements for the specified database object."),
70
+ object_name: z
71
+ .string()
72
+ .describe("The name of the object the DDL was generated for."),
73
+ object_library: z
74
+ .string()
75
+ .describe("The library of the object the DDL was generated for."),
76
+ object_type: z
77
+ .string()
78
+ .describe("The type of the object the DDL was generated for."),
79
+ executionTime: z
80
+ .number()
81
+ .optional()
82
+ .describe("DDL generation execution time in milliseconds."),
83
+ error: z
84
+ .object({
85
+ code: z.string().describe("Error code"),
86
+ message: z.string().describe("Error message"),
87
+ details: z.record(z.unknown()).optional().describe("Error details"),
88
+ })
89
+ .optional()
90
+ .describe("Error information if the DDL generation failed."),
91
+ });
92
+ // =============================================================================
93
+ // Business Logic
94
+ // =============================================================================
95
+ /**
96
+ * Core logic for generating SQL DDL.
97
+ * Calls the QSYS2.GENERATE_SQL procedure to generate DDL for IBM i database objects.
98
+ */
99
+ async function generateSqlLogic(params, appContext, _sdkContext) {
100
+ logger.debug({ ...appContext, toolInput: params }, "Processing generate SQL DDL logic.");
101
+ const sql = `CALL QSYS2.GENERATE_SQL(
102
+ DATABASE_OBJECT_NAME => ?,
103
+ DATABASE_OBJECT_LIBRARY_NAME => ?,
104
+ DATABASE_OBJECT_TYPE => ?,
105
+ CREATE_OR_REPLACE_OPTION => '1',
106
+ PRIVILEGES_OPTION => '0',
107
+ STATEMENT_FORMATTING_OPTION => '0',
108
+ SOURCE_STREAM_FILE_END_OF_LINE => 'LF',
109
+ SOURCE_STREAM_FILE_CCSID => 1208
110
+ )`;
111
+ const startTime = Date.now();
112
+ try {
113
+ // Execute the GENERATE_SQL procedure using pagination to get all results
114
+ const result = await IBMiConnectionPool.executeQueryWithPagination(sql, [params.object_name, params.object_library, params.object_type], appContext, 500);
115
+ const executionTime = Date.now() - startTime;
116
+ if (!result.success) {
117
+ // Return error response that matches schema
118
+ return {
119
+ success: false,
120
+ object_name: params.object_name,
121
+ object_library: params.object_library,
122
+ object_type: params.object_type,
123
+ executionTime,
124
+ error: {
125
+ code: String(JsonRpcErrorCode.DatabaseError),
126
+ message: "SQL DDL generation failed",
127
+ details: {
128
+ sqlReturnCode: result.sql_rc,
129
+ },
130
+ },
131
+ };
132
+ }
133
+ // Process the result data to extract the generated DDL
134
+ let generatedSql = "";
135
+ if (result.data && Array.isArray(result.data)) {
136
+ logger.debug({
137
+ ...appContext,
138
+ totalRows: result.data.length,
139
+ firstRowKeys: result.data[0] ? Object.keys(result.data[0]) : [],
140
+ }, "Processing GENERATE_SQL result data.");
141
+ // Build the result string from the SRCDTA column
142
+ const resultStrings = [];
143
+ for (const res of result.data) {
144
+ if (res && typeof res === "object" && "SRCDTA" in res) {
145
+ const srcData = res.SRCDTA;
146
+ if (srcData && typeof srcData === "string") {
147
+ resultStrings.push(srcData);
148
+ }
149
+ }
150
+ }
151
+ generatedSql = resultStrings.join("\n");
152
+ logger.debug({
153
+ ...appContext,
154
+ processedRows: resultStrings.length,
155
+ totalDdlLength: generatedSql.length,
156
+ avgRowLength: resultStrings.length > 0
157
+ ? Math.round(generatedSql.length / resultStrings.length)
158
+ : 0,
159
+ }, "DDL extraction completed.");
160
+ }
161
+ if (!generatedSql || generatedSql.trim().length === 0) {
162
+ // Return error response that matches schema
163
+ return {
164
+ success: false,
165
+ object_name: params.object_name,
166
+ object_library: params.object_library,
167
+ object_type: params.object_type,
168
+ executionTime,
169
+ error: {
170
+ code: String(JsonRpcErrorCode.DatabaseError),
171
+ message: "No SQL DDL generated for the specified object",
172
+ details: {
173
+ resultRowCount: result.data?.length || 0,
174
+ },
175
+ },
176
+ };
177
+ }
178
+ const response = {
179
+ success: true,
180
+ sql: generatedSql.trim(),
181
+ object_name: params.object_name,
182
+ object_library: params.object_library,
183
+ object_type: params.object_type,
184
+ executionTime,
185
+ };
186
+ logger.debug({
187
+ ...appContext,
188
+ objectName: params.object_name,
189
+ objectLibrary: params.object_library,
190
+ objectType: params.object_type,
191
+ sqlLength: response.sql?.length || 0,
192
+ executionTime,
193
+ rowCount: result.data?.length || 0,
194
+ }, "SQL DDL generated successfully.");
195
+ return response;
196
+ }
197
+ catch (error) {
198
+ const executionTime = Date.now() - startTime;
199
+ logger.error({
200
+ ...appContext,
201
+ error: error instanceof Error ? error.message : String(error),
202
+ objectName: params.object_name,
203
+ objectLibrary: params.object_library,
204
+ objectType: params.object_type,
205
+ executionTime,
206
+ }, "SQL DDL generation failed.");
207
+ // Return error response that matches schema instead of throwing
208
+ if (error instanceof McpError) {
209
+ return {
210
+ success: false,
211
+ object_name: params.object_name,
212
+ object_library: params.object_library,
213
+ object_type: params.object_type,
214
+ executionTime,
215
+ error: {
216
+ code: String(error.code),
217
+ message: error.message,
218
+ details: error.details,
219
+ },
220
+ };
221
+ }
222
+ // Handle unexpected errors
223
+ return {
224
+ success: false,
225
+ object_name: params.object_name,
226
+ object_library: params.object_library,
227
+ object_type: params.object_type,
228
+ executionTime,
229
+ error: {
230
+ code: String(JsonRpcErrorCode.DatabaseError),
231
+ message: `SQL DDL generation failed: ${error instanceof Error ? error.message : String(error)}`,
232
+ details: {
233
+ originalError: error instanceof Error ? error.name : "Unknown",
234
+ },
235
+ },
236
+ };
237
+ }
238
+ }
239
+ // =============================================================================
240
+ // Custom Response Formatter
241
+ // =============================================================================
242
+ const generateSqlResponseFormatter = (result) => {
243
+ if (!result.success) {
244
+ // Format error response
245
+ const errorMessage = result.error?.message || "SQL DDL generation failed";
246
+ const errorDetails = result.error?.details
247
+ ? `\n\nDetails:\n${JSON.stringify(result.error.details, null, 2)}`
248
+ : "";
249
+ return [
250
+ {
251
+ type: "text",
252
+ text: `Error: ${errorMessage}${errorDetails}`,
253
+ },
254
+ ];
255
+ }
256
+ // Format success response
257
+ return [
258
+ {
259
+ type: "text",
260
+ text: `Successfully generated SQL DDL for ${result.object_type} '${result.object_name}' in library '${result.object_library}':\n\n${result.sql}`,
261
+ },
262
+ ];
263
+ };
264
+ // =============================================================================
265
+ // Tool Definition
266
+ // =============================================================================
267
+ export const generateSqlTool = defineTool({
268
+ name: "describe_sql_object",
269
+ title: "Generate SQL DDL",
270
+ description: "Describes IBM i database objects by generating their SQL DDL statements. Useful for understanding object structure and recreating objects.",
271
+ inputSchema: GenerateSqlInputSchema,
272
+ outputSchema: GenerateSqlOutputSchema,
273
+ logic: generateSqlLogic,
274
+ responseFormatter: generateSqlResponseFormatter,
275
+ annotations: {
276
+ readOnlyHint: true, // Generates DDL which is descriptive, not modifying
277
+ destructiveHint: false,
278
+ openWorldHint: false,
279
+ },
280
+ });
281
+ //# sourceMappingURL=generateSql.tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSql.tool.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/tools/generateSql.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Tool Definitions Barrel Export
3
+ *
4
+ * Centralized export of all factory pattern tool definitions.
5
+ *
6
+ * @module tools/definitions
7
+ */
8
+ /**
9
+ * Array of all tool definitions for automated registration.
10
+ *
11
+ * To add a new tool:
12
+ * 1. Create the tool definition file (e.g., myTool.tool.ts)
13
+ * 2. Import it above
14
+ * 3. Add it to this array
15
+ *
16
+ * The ToolRegistry will automatically register all tools in this array.
17
+ */
18
+ export declare const allToolDefinitions: (import("../../mcp-server/tools/utils/types.js").ToolDefinition<{
19
+ object_name: import("zod").ZodString;
20
+ object_library: import("zod").ZodDefault<import("zod").ZodString>;
21
+ object_type: import("zod").ZodDefault<import("zod").ZodEnum<["ALIAS", "CONSTRAINT", "FUNCTION", "INDEX", "MASK", "PERMISSION", "PROCEDURE", "SCHEMA", "SEQUENCE", "TABLE", "TRIGGER", "TYPE", "VARIABLE", "VIEW", "XSR"]>>;
22
+ }, {
23
+ success: import("zod").ZodBoolean;
24
+ sql: import("zod").ZodOptional<import("zod").ZodString>;
25
+ object_name: import("zod").ZodString;
26
+ object_library: import("zod").ZodString;
27
+ object_type: import("zod").ZodString;
28
+ executionTime: import("zod").ZodOptional<import("zod").ZodNumber>;
29
+ error: import("zod").ZodOptional<import("zod").ZodObject<{
30
+ code: import("zod").ZodString;
31
+ message: import("zod").ZodString;
32
+ details: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
33
+ }, "strip", import("zod").ZodTypeAny, {
34
+ code: string;
35
+ message: string;
36
+ details?: Record<string, unknown> | undefined;
37
+ }, {
38
+ code: string;
39
+ message: string;
40
+ details?: Record<string, unknown> | undefined;
41
+ }>>;
42
+ }> | import("../../mcp-server/tools/utils/types.js").ToolDefinition<{
43
+ sql: import("zod").ZodString;
44
+ }, {
45
+ success: import("zod").ZodBoolean;
46
+ data: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
47
+ rowCount: import("zod").ZodOptional<import("zod").ZodNumber>;
48
+ executionTime: import("zod").ZodOptional<import("zod").ZodNumber>;
49
+ metadata: import("zod").ZodOptional<import("zod").ZodObject<{
50
+ columns: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
51
+ name: import("zod").ZodString;
52
+ type: import("zod").ZodString;
53
+ }, "strip", import("zod").ZodTypeAny, {
54
+ type: string;
55
+ name: string;
56
+ }, {
57
+ type: string;
58
+ name: string;
59
+ }>, "many">>;
60
+ }, "strip", import("zod").ZodTypeAny, {
61
+ columns?: {
62
+ type: string;
63
+ name: string;
64
+ }[] | undefined;
65
+ }, {
66
+ columns?: {
67
+ type: string;
68
+ name: string;
69
+ }[] | undefined;
70
+ }>>;
71
+ error: import("zod").ZodOptional<import("zod").ZodObject<{
72
+ code: import("zod").ZodString;
73
+ message: import("zod").ZodString;
74
+ details: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
75
+ }, "strip", import("zod").ZodTypeAny, {
76
+ code: string;
77
+ message: string;
78
+ details?: Record<string, unknown> | undefined;
79
+ }, {
80
+ code: string;
81
+ message: string;
82
+ details?: Record<string, unknown> | undefined;
83
+ }>>;
84
+ }>)[];
85
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAoC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Tool Definitions Barrel Export
3
+ *
4
+ * Centralized export of all factory pattern tool definitions.
5
+ *
6
+ * @module tools/definitions
7
+ */
8
+ import { executeSqlTool } from "./executeSql.tool.js";
9
+ import { generateSqlTool } from "./generateSql.tool.js";
10
+ /**
11
+ * Array of all tool definitions for automated registration.
12
+ *
13
+ * To add a new tool:
14
+ * 1. Create the tool definition file (e.g., myTool.tool.ts)
15
+ * 2. Import it above
16
+ * 3. Add it to this array
17
+ *
18
+ * The ToolRegistry will automatically register all tools in this array.
19
+ */
20
+ export const allToolDefinitions = [executeSqlTool, generateSqlTool];
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ibmi-mcp-server/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC"}
@@ -52,6 +52,15 @@ export declare class ConfigParser {
52
52
  * @private
53
53
  */
54
54
  private static validateToolRequirements;
55
+ /**
56
+ * Validate SQL statements for security at load time
57
+ * Fails server startup if security violations found
58
+ * @param config - Parsed YAML configuration
59
+ * @param context - Request context for logging
60
+ * @returns Array of validation errors
61
+ * @private
62
+ */
63
+ private static validateSqlSecurity;
55
64
  /**
56
65
  * Process tools from YAML configuration into runtime format
57
66
  * @param config - Validated YAML configuration
@@ -1 +1 @@
1
- {"version":3,"file":"configParser.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/configParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAEL,cAAc,EACf,MAAM,oCAAoC,CAAC;AAS5C;;GAEG;AACH,qBAAa,YAAY;IACvB;;;;;OAKG;WACU,aAAa,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAiKzB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IA4B9C;;;;;;;;;OASG;IACH,MAAM,CAAC,qCAAqC,CAC1C,OAAO,EAAE,MAAM,EACf,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM;IA0CT;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAuB3C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAkBvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAwD3B;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG;QACrD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IAWD;;;OAGG;IACH,MAAM,CAAC,0BAA0B,IAAI,MAAM,EAAE;CAG9C"}
1
+ {"version":3,"file":"configParser.d.ts","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/configParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,aAAa,EAAkB,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAEL,cAAc,EACf,MAAM,oCAAoC,CAAC;AAW5C;;GAEG;AACH,qBAAa,YAAY;IACvB;;;;;OAKG;WACU,aAAa,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC;IAqLzB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,+BAA+B;IA4B9C;;;;;;;;;OASG;IACH,MAAM,CAAC,qCAAqC,CAC1C,OAAO,EAAE,MAAM,EACf,iBAAiB,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAC9C,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM;IA0CT;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAuB3C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAkBvC;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAyDlC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAwD3B;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,gBAAgB,GAAG;QACrD,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IAWD;;;OAGG;IACH,MAAM,CAAC,0BAA0B,IAAI,MAAM,EAAE;CAG9C"}
@@ -12,6 +12,7 @@ import { requestContextService, } from "../../../utils/internal/requestContext.j
12
12
  // Import schemas from centralized location
13
13
  import { SqlToolsConfigSchema, SqlToolParameterSchema, } from "../../schemas/index.js";
14
14
  import { JsonRpcErrorCode, McpError } from "../../../types-global/errors.js";
15
+ import { SqlSecurityValidator } from "../security/sqlSecurityValidator.js";
15
16
  /**
16
17
  * YAML configuration parser with validation and environment variable interpolation
17
18
  */
@@ -90,6 +91,18 @@ export class ConfigParser {
90
91
  errors: toolValidationErrors,
91
92
  };
92
93
  }
94
+ // Validate SQL security at load time (fail-fast)
95
+ const securityValidationErrors = this.validateSqlSecurity(config, operationContext);
96
+ if (securityValidationErrors.length > 0) {
97
+ logger.error({
98
+ ...operationContext,
99
+ errors: securityValidationErrors,
100
+ }, "SQL security validation failed at load time");
101
+ return {
102
+ success: false,
103
+ errors: securityValidationErrors,
104
+ };
105
+ }
93
106
  // Process tools
94
107
  const processedTools = this.processTools(config);
95
108
  // Count disabled tools
@@ -233,6 +246,51 @@ export class ConfigParser {
233
246
  });
234
247
  return errors;
235
248
  }
249
+ /**
250
+ * Validate SQL statements for security at load time
251
+ * Fails server startup if security violations found
252
+ * @param config - Parsed YAML configuration
253
+ * @param context - Request context for logging
254
+ * @returns Array of validation errors
255
+ * @private
256
+ */
257
+ static validateSqlSecurity(config, context) {
258
+ const errors = [];
259
+ // Skip if no tools defined
260
+ if (!config.tools) {
261
+ return errors;
262
+ }
263
+ Object.entries(config.tools).forEach(([toolName, tool]) => {
264
+ // Skip disabled tools
265
+ if (tool.enabled === false) {
266
+ return;
267
+ }
268
+ // Skip tools without statements
269
+ if (!tool.statement?.trim()) {
270
+ return;
271
+ }
272
+ try {
273
+ // Build security config from tool
274
+ const securityConfig = {
275
+ readOnly: tool.security?.readOnly ?? true,
276
+ maxQueryLength: tool.security?.maxQueryLength ?? 10000,
277
+ forbiddenKeywords: tool.security?.forbiddenKeywords,
278
+ };
279
+ // Validate SQL statement at load time
280
+ SqlSecurityValidator.validateQuery(tool.statement, securityConfig, context);
281
+ logger.debug({ ...context, toolName }, `SQL security validation passed at load time for tool: ${toolName}`);
282
+ }
283
+ catch (error) {
284
+ if (error instanceof McpError) {
285
+ errors.push(`Tool '${toolName}' has security violation: ${error.message}`);
286
+ }
287
+ else {
288
+ errors.push(`Tool '${toolName}' validation failed: ${error instanceof Error ? error.message : String(error)}`);
289
+ }
290
+ }
291
+ });
292
+ return errors;
293
+ }
236
294
  /**
237
295
  * Process tools from YAML configuration into runtime format
238
296
  * @param config - Validated YAML configuration
@@ -1 +1 @@
1
- {"version":3,"file":"configParser.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/configParser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EACL,qBAAqB,GAEtB,MAAM,oCAAoC,CAAC;AAE5C,2CAA2C;AAC3C,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,QAAgB,EAChB,OAAwB;QAExB,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,eAAe;gBAC1B,QAAQ;aACT,CAAC,CAAC;QAEL,OAAO,YAAY,CAAC,QAAQ,CAC1B,KAAK,IAAI,EAAE;YACT,MAAM,CAAC,IAAI,CACT;gBACE,GAAG,gBAAgB;gBACnB,QAAQ;aACT,EACD,iCAAiC,CAClC,CAAC;YAEF,uBAAuB;YACvB,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,eAAe,EAChC,sCAAsC,YAAY,EAAE,CACrD,CAAC;YACJ,CAAC;YAED,oBAAoB;YACpB,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CACV;gBACE,GAAG,gBAAgB;gBACnB,aAAa,EAAE,WAAW,CAAC,MAAM;aAClC,EACD,0BAA0B,CAC3B,CAAC;YAEF,+CAA+C;YAC/C,6EAA6E;YAC7E,+CAA+C;YAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,+BAA+B,CAC9D,WAAW,EACX,gBAAgB,CACjB,CAAC;YAEF,aAAa;YACb,MAAM,UAAU,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAEjD,0BAA0B;YAC1B,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAEpE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAC9C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CACjD,CAAC;gBAEF,MAAM,CAAC,KAAK,CACV;oBACE,GAAG,gBAAgB;oBACnB,MAAM;iBACP,EACD,wBAAwB,CACzB,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM;iBACP,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAsB,CAAC;YAEvD,uDAAuD;YACvD,MAAM,sBAAsB,GAC1B,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,CAAC,KAAK,CACV;oBACE,GAAG,gBAAgB;oBACnB,MAAM,EAAE,sBAAsB;iBAC/B,EACD,oCAAoC,CACrC,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,sBAAsB;iBAC/B,CAAC;YACJ,CAAC;YAED,8EAA8E;YAC9E,oFAAoF;YAEpF,2DAA2D;YAC3D,MAAM,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACnE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CACV;oBACE,GAAG,gBAAgB;oBACnB,MAAM,EAAE,oBAAoB;iBAC7B,EACD,qCAAqC,CACtC,CAAC;gBAEF,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,oBAAoB;iBAC7B,CAAC;YACJ,CAAC;YAED,gBAAgB;YAChB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAEjD,uBAAuB;YACvB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK;gBAChC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;qBACjE,MAAM;gBACX,CAAC,CAAC,CAAC,CAAC;YACN,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,CAAC;YAEhD,sBAAsB;YACtB,MAAM,KAAK,GAAG;gBACZ,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpE,SAAS,EAAE,UAAU;gBACrB,gBAAgB,EAAE,YAAY;gBAC9B,iBAAiB,EAAE,aAAa;gBAChC,YAAY,EAAE,MAAM,CAAC,QAAQ;oBAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM;oBACrC,CAAC,CAAC,CAAC;gBACL,mBAAmB,EAAE,MAAM,CAAC,KAAK;oBAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,EACnD,CAAC,CACF;oBACH,CAAC,CAAC,CAAC;aACN,CAAC;YAEF,MAAM,CAAC,IAAI,CACT;gBACE,GAAG,gBAAgB;gBACnB,KAAK;aACN,EACD,wCAAwC,CACzC,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,cAAc;gBACd,KAAK;aACN,CAAC;QACJ,CAAC,EACD;YACE,SAAS,EAAE,eAAe;YAC1B,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,gBAAgB,CAAC,kBAAkB;SAC/C,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,+BAA+B,CAC5C,OAAe,EACf,OAAuB;QAEvB,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,CACV;oBACE,GAAG,OAAO;oBACV,OAAO;iBACR,EACD,wBAAwB,OAAO,iCAAiC,CACjE,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,KAAK,CACV;gBACE,GAAG,OAAO;gBACV,OAAO;gBACP,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,wCAAwC;aACtF,EACD,wBAAwB,OAAO,wBAAwB,CACxD,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,qCAAqC,CAC1C,OAAe,EACf,oBAA4C,EAAE,EAC9C,OAAwB;QAExB,MAAM,gBAAgB,GACpB,OAAO;YACP,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,uCAAuC;aACnD,CAAC,CAAC;QAEL,MAAM,CAAC,KAAK,CACV;YACE,GAAG,gBAAgB;YACnB,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACpD,EACD,oDAAoD,CACrD,CAAC;QAEF,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,CACV;oBACE,GAAG,gBAAgB;oBACnB,KAAK;oBACL,OAAO;oBACP,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBACpD,EACD,+BAA+B,OAAO,iCAAiC,CACxE,CAAC;gBACF,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,CAAC,KAAK,CACV;gBACE,GAAG,gBAAgB;gBACnB,OAAO;gBACP,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,wCAAwC;aACtF,EACD,+BAA+B,OAAO,wBAAwB,CAC/D,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,4BAA4B,CACzC,MAAsB;QAEtB,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;YACxD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CACT,SAAS,QAAQ,gCAAgC,IAAI,CAAC,MAAM,yBAAyB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9G,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,wBAAwB,CAAC,MAAsB;QAC5D,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,8CAA8C;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;YACxD,kCAAkC;YAClC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,yCAAyC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,YAAY,CAAC,MAAsB;QAChD,MAAM,cAAc,GAAuB,EAAE,CAAC;QAE9C,iDAAiD;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,+BAA+B;QAC/B,MAAM,cAAc,GAA6B,EAAE,CAAC;QACpD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE;gBACjE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACjC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9B,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;oBAChC,CAAC;oBACD,cAAc,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;YACxD,sBAAsB;YACtB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,CACV;oBACE,QAAQ;oBACR,OAAO,EAAE,KAAK;iBACf,EACD,2BAA2B,QAAQ,EAAE,CACtC,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEhD,cAAc,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,MAAO;gBACf,QAAQ;gBACR,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ;iBACT;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAA2B;QAIlD,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,0BAA0B;QAC/B,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"configParser.js","sourceRoot":"","sources":["../../../../src/ibmi-mcp-server/utils/config/configParser.ts"],"names":[],"mappings":"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"}
@@ -560,7 +560,7 @@ export class ToolConfigBuilder {
560
560
  for (const [sourceName, sourceConfig] of Object.entries(source.sources)) {
561
561
  if (target.sources[sourceName]) {
562
562
  if (!options.allowDuplicateSources) {
563
- throw new McpError(JsonRpcErrorCode.ConfigurationError, `Duplicate source name: ${sourceName}`);
563
+ throw new McpError(JsonRpcErrorCode.ConfigurationError, `Duplicate source name: ${sourceName}. To allow duplicate source names, set YAML_ALLOW_DUPLICATE_SOURCES=true in server .env`);
564
564
  }
565
565
  logger.warning(context || {}, `Overriding existing source: ${sourceName}`);
566
566
  }