@ibm/ibmi-mcp-server 0.4.5 → 0.5.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 (153) hide show
  1. package/README.md +2 -0
  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 +58 -0
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/ibmi-mcp-server/schemas/config.d.ts +58 -0
  7. package/dist/ibmi-mcp-server/schemas/config.d.ts.map +1 -1
  8. package/dist/ibmi-mcp-server/schemas/config.js +35 -0
  9. package/dist/ibmi-mcp-server/schemas/config.js.map +1 -1
  10. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts +18 -1
  11. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.d.ts.map +1 -1
  12. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js +30 -2
  13. package/dist/ibmi-mcp-server/services/authenticatedPoolManager.js.map +1 -1
  14. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts +5 -2
  15. package/dist/ibmi-mcp-server/services/baseConnectionPool.d.ts.map +1 -1
  16. package/dist/ibmi-mcp-server/services/baseConnectionPool.js +45 -3
  17. package/dist/ibmi-mcp-server/services/baseConnectionPool.js.map +1 -1
  18. package/dist/ibmi-mcp-server/services/connectionPool.d.ts +3 -2
  19. package/dist/ibmi-mcp-server/services/connectionPool.d.ts.map +1 -1
  20. package/dist/ibmi-mcp-server/services/connectionPool.js +5 -2
  21. package/dist/ibmi-mcp-server/services/connectionPool.js.map +1 -1
  22. package/dist/ibmi-mcp-server/services/sourceManager.d.ts +18 -1
  23. package/dist/ibmi-mcp-server/services/sourceManager.d.ts.map +1 -1
  24. package/dist/ibmi-mcp-server/services/sourceManager.js +31 -2
  25. package/dist/ibmi-mcp-server/services/sourceManager.js.map +1 -1
  26. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.d.ts.map +1 -1
  27. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js +1 -1
  28. package/dist/ibmi-mcp-server/utils/config/toolConfigBuilder.js.map +1 -1
  29. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts +1 -1
  30. package/dist/ibmi-mcp-server/utils/config/toolFactory.d.ts.map +1 -1
  31. package/dist/ibmi-mcp-server/utils/config/toolFactory.js +47 -4
  32. package/dist/ibmi-mcp-server/utils/config/toolFactory.js.map +1 -1
  33. package/dist/public/context.d.ts +5 -0
  34. package/dist/public/context.d.ts.map +1 -0
  35. package/dist/public/context.js +5 -0
  36. package/dist/public/context.js.map +1 -0
  37. package/dist/public/formatting.d.ts +5 -0
  38. package/dist/public/formatting.d.ts.map +1 -0
  39. package/dist/public/formatting.js +5 -0
  40. package/dist/public/formatting.js.map +1 -0
  41. package/dist/public/services.d.ts +8 -0
  42. package/dist/public/services.d.ts.map +1 -0
  43. package/dist/public/services.js +8 -0
  44. package/dist/public/services.js.map +1 -0
  45. package/dist/public/tools.d.ts +16 -0
  46. package/dist/public/tools.d.ts.map +1 -0
  47. package/dist/public/tools.js +15 -0
  48. package/dist/public/tools.js.map +1 -0
  49. package/package.json +20 -17
  50. package/dist/cli/commands/columns.d.ts +0 -7
  51. package/dist/cli/commands/columns.d.ts.map +0 -1
  52. package/dist/cli/commands/columns.js +0 -29
  53. package/dist/cli/commands/columns.js.map +0 -1
  54. package/dist/cli/commands/completion.d.ts +0 -10
  55. package/dist/cli/commands/completion.d.ts.map +0 -1
  56. package/dist/cli/commands/completion.js +0 -247
  57. package/dist/cli/commands/completion.js.map +0 -1
  58. package/dist/cli/commands/config.d.ts +0 -11
  59. package/dist/cli/commands/config.d.ts.map +0 -1
  60. package/dist/cli/commands/config.js +0 -124
  61. package/dist/cli/commands/config.js.map +0 -1
  62. package/dist/cli/commands/describe.d.ts +0 -9
  63. package/dist/cli/commands/describe.d.ts.map +0 -1
  64. package/dist/cli/commands/describe.js +0 -82
  65. package/dist/cli/commands/describe.js.map +0 -1
  66. package/dist/cli/commands/related.d.ts +0 -7
  67. package/dist/cli/commands/related.d.ts.map +0 -1
  68. package/dist/cli/commands/related.js +0 -32
  69. package/dist/cli/commands/related.js.map +0 -1
  70. package/dist/cli/commands/schemas.d.ts +0 -7
  71. package/dist/cli/commands/schemas.d.ts.map +0 -1
  72. package/dist/cli/commands/schemas.js +0 -49
  73. package/dist/cli/commands/schemas.js.map +0 -1
  74. package/dist/cli/commands/sql.d.ts +0 -8
  75. package/dist/cli/commands/sql.d.ts.map +0 -1
  76. package/dist/cli/commands/sql.js +0 -187
  77. package/dist/cli/commands/sql.js.map +0 -1
  78. package/dist/cli/commands/system.d.ts +0 -11
  79. package/dist/cli/commands/system.d.ts.map +0 -1
  80. package/dist/cli/commands/system.js +0 -263
  81. package/dist/cli/commands/system.js.map +0 -1
  82. package/dist/cli/commands/tables.d.ts +0 -7
  83. package/dist/cli/commands/tables.d.ts.map +0 -1
  84. package/dist/cli/commands/tables.js +0 -48
  85. package/dist/cli/commands/tables.js.map +0 -1
  86. package/dist/cli/commands/tool.d.ts +0 -18
  87. package/dist/cli/commands/tool.d.ts.map +0 -1
  88. package/dist/cli/commands/tool.js +0 -194
  89. package/dist/cli/commands/tool.js.map +0 -1
  90. package/dist/cli/commands/tools-list.d.ts +0 -20
  91. package/dist/cli/commands/tools-list.d.ts.map +0 -1
  92. package/dist/cli/commands/tools-list.js +0 -209
  93. package/dist/cli/commands/tools-list.js.map +0 -1
  94. package/dist/cli/commands/validate.d.ts +0 -7
  95. package/dist/cli/commands/validate.d.ts.map +0 -1
  96. package/dist/cli/commands/validate.js +0 -77
  97. package/dist/cli/commands/validate.js.map +0 -1
  98. package/dist/cli/config/credentials.d.ts +0 -21
  99. package/dist/cli/config/credentials.d.ts.map +0 -1
  100. package/dist/cli/config/credentials.js +0 -96
  101. package/dist/cli/config/credentials.js.map +0 -1
  102. package/dist/cli/config/index.d.ts +0 -11
  103. package/dist/cli/config/index.d.ts.map +0 -1
  104. package/dist/cli/config/index.js +0 -9
  105. package/dist/cli/config/index.js.map +0 -1
  106. package/dist/cli/config/loader.d.ts +0 -52
  107. package/dist/cli/config/loader.d.ts.map +0 -1
  108. package/dist/cli/config/loader.js +0 -237
  109. package/dist/cli/config/loader.js.map +0 -1
  110. package/dist/cli/config/resolver.d.ts +0 -31
  111. package/dist/cli/config/resolver.d.ts.map +0 -1
  112. package/dist/cli/config/resolver.js +0 -115
  113. package/dist/cli/config/resolver.js.map +0 -1
  114. package/dist/cli/config/schema.d.ts +0 -128
  115. package/dist/cli/config/schema.d.ts.map +0 -1
  116. package/dist/cli/config/schema.js +0 -37
  117. package/dist/cli/config/schema.js.map +0 -1
  118. package/dist/cli/config/types.d.ts +0 -59
  119. package/dist/cli/config/types.d.ts.map +0 -1
  120. package/dist/cli/config/types.js +0 -6
  121. package/dist/cli/config/types.js.map +0 -1
  122. package/dist/cli/formatters/output.d.ts +0 -70
  123. package/dist/cli/formatters/output.d.ts.map +0 -1
  124. package/dist/cli/formatters/output.js +0 -279
  125. package/dist/cli/formatters/output.js.map +0 -1
  126. package/dist/cli/index.d.ts +0 -13
  127. package/dist/cli/index.d.ts.map +0 -1
  128. package/dist/cli/index.js +0 -102
  129. package/dist/cli/index.js.map +0 -1
  130. package/dist/cli/utils/command-helpers.d.ts +0 -47
  131. package/dist/cli/utils/command-helpers.d.ts.map +0 -1
  132. package/dist/cli/utils/command-helpers.js +0 -211
  133. package/dist/cli/utils/command-helpers.js.map +0 -1
  134. package/dist/cli/utils/connection.d.ts +0 -20
  135. package/dist/cli/utils/connection.d.ts.map +0 -1
  136. package/dist/cli/utils/connection.js +0 -37
  137. package/dist/cli/utils/connection.js.map +0 -1
  138. package/dist/cli/utils/exit-codes.d.ts +0 -48
  139. package/dist/cli/utils/exit-codes.d.ts.map +0 -1
  140. package/dist/cli/utils/exit-codes.js +0 -111
  141. package/dist/cli/utils/exit-codes.js.map +0 -1
  142. package/dist/cli/utils/multi-connection.d.ts +0 -26
  143. package/dist/cli/utils/multi-connection.d.ts.map +0 -1
  144. package/dist/cli/utils/multi-connection.js +0 -72
  145. package/dist/cli/utils/multi-connection.js.map +0 -1
  146. package/dist/cli/utils/yaml-loader.d.ts +0 -69
  147. package/dist/cli/utils/yaml-loader.d.ts.map +0 -1
  148. package/dist/cli/utils/yaml-loader.js +0 -135
  149. package/dist/cli/utils/yaml-loader.js.map +0 -1
  150. package/dist/cli/utils/yaml-to-commander.d.ts +0 -26
  151. package/dist/cli/utils/yaml-to-commander.d.ts.map +0 -1
  152. package/dist/cli/utils/yaml-to-commander.js +0 -156
  153. package/dist/cli/utils/yaml-to-commander.js.map +0 -1
@@ -1,135 +0,0 @@
1
- /**
2
- * @fileoverview Lightweight YAML tool configuration loader for CLI.
3
- * Reads and parses YAML tool files without pulling in the full MCP server stack.
4
- * Used by discovery commands (ibmi tools, ibmi toolsets) and tool execution.
5
- * @module cli/utils/yaml-loader
6
- */
7
- import { readFileSync, existsSync, statSync, readdirSync } from "fs";
8
- import { resolve, join } from "path";
9
- import { load as yamlLoad } from "js-yaml";
10
- /**
11
- * Interpolate ${ENV_VAR} references in a string.
12
- */
13
- function interpolateEnvVars(content) {
14
- return content.replace(/\$\{([^}]+)\}/g, (_, varName) => {
15
- return process.env[varName.trim()] ?? "";
16
- });
17
- }
18
- /**
19
- * Load and parse a single YAML tool file.
20
- * Performs env var interpolation but no Zod validation (lightweight).
21
- */
22
- export function loadYamlFile(filePath) {
23
- const resolved = resolve(filePath);
24
- if (!existsSync(resolved)) {
25
- throw new Error(`YAML tool file not found: ${resolved}`);
26
- }
27
- const content = readFileSync(resolved, "utf-8");
28
- const interpolated = interpolateEnvVars(content);
29
- const parsed = yamlLoad(interpolated);
30
- return {
31
- tools: normalizeTools(parsed["tools"]),
32
- toolsets: (parsed["toolsets"] ?? {}),
33
- sources: (parsed["sources"] ?? {}),
34
- metadata: parsed["metadata"],
35
- };
36
- }
37
- /**
38
- * Normalize raw tool entries to ensure parameters is always an array.
39
- */
40
- function normalizeTools(raw) {
41
- if (!raw)
42
- return {};
43
- const result = {};
44
- for (const [name, value] of Object.entries(raw)) {
45
- const tool = value;
46
- result[name] = {
47
- source: tool["source"] ?? "",
48
- description: tool["description"] ?? "",
49
- statement: tool["statement"],
50
- parameters: Array.isArray(tool["parameters"]) ? tool["parameters"] : [],
51
- security: tool["security"],
52
- responseFormat: tool["responseFormat"],
53
- tableFormat: tool["tableFormat"],
54
- maxDisplayRows: tool["maxDisplayRows"],
55
- enabled: tool["enabled"],
56
- annotations: tool["annotations"],
57
- };
58
- }
59
- return result;
60
- }
61
- /**
62
- * Load YAML tools from one or more paths.
63
- * Accepts file paths, directories (scans for *.yaml/*.yml), or comma-separated lists.
64
- * Merges all configs together, with later files overriding earlier ones.
65
- */
66
- export function loadYamlTools(paths) {
67
- const merged = {
68
- tools: {},
69
- toolsets: {},
70
- sources: {},
71
- };
72
- for (const p of paths) {
73
- const resolved = resolve(p.trim());
74
- const filePaths = resolveToFiles(resolved);
75
- for (const filePath of filePaths) {
76
- const config = loadYamlFile(filePath);
77
- Object.assign(merged.tools, config.tools);
78
- Object.assign(merged.toolsets, config.toolsets);
79
- Object.assign(merged.sources, config.sources);
80
- if (config.metadata) {
81
- merged.metadata = { ...(merged.metadata ?? {}), ...config.metadata };
82
- }
83
- }
84
- }
85
- return merged;
86
- }
87
- /**
88
- * Resolve a path to a list of YAML files.
89
- * If it's a file, returns [file]. If directory, scans for *.yaml/*.yml recursively.
90
- */
91
- function resolveToFiles(p) {
92
- if (!existsSync(p)) {
93
- throw new Error(`Path not found: ${p}`);
94
- }
95
- const stat = statSync(p);
96
- if (stat.isFile()) {
97
- return [p];
98
- }
99
- if (stat.isDirectory()) {
100
- return scanDirectory(p);
101
- }
102
- return [];
103
- }
104
- /**
105
- * Recursively scan a directory for YAML files.
106
- */
107
- function scanDirectory(dir) {
108
- const results = [];
109
- const entries = readdirSync(dir, { withFileTypes: true });
110
- for (const entry of entries) {
111
- const fullPath = join(dir, entry.name);
112
- if (entry.isDirectory()) {
113
- results.push(...scanDirectory(fullPath));
114
- }
115
- else if (entry.isFile() && /\.ya?ml$/i.test(entry.name)) {
116
- results.push(fullPath);
117
- }
118
- }
119
- return results;
120
- }
121
- /**
122
- * Build a reverse map from tool name → toolset names.
123
- */
124
- export function buildToolsetMap(toolsets) {
125
- const map = new Map();
126
- for (const [tsName, tsConfig] of Object.entries(toolsets)) {
127
- for (const toolName of tsConfig.tools) {
128
- const existing = map.get(toolName) ?? [];
129
- existing.push(tsName);
130
- map.set(toolName, existing);
131
- }
132
- }
133
- return map;
134
- }
135
- //# sourceMappingURL=yaml-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-loader.js","sourceRoot":"","sources":["../../../src/cli/utils/yaml-loader.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * @fileoverview Maps YAML tool parameter definitions to Commander CLI options.
3
- * Handles snake_case → kebab-case conversion, type coercion, and reverse mapping.
4
- * @module cli/utils/yaml-to-commander
5
- */
6
- import { Command } from "commander";
7
- import type { YamlToolParameter } from "./yaml-loader.js";
8
- /**
9
- * Register YAML tool parameters as Commander options on a Command.
10
- * Each parameter becomes a typed CLI option with coercion and defaults.
11
- */
12
- export declare function registerToolOptions(cmd: Command, params: YamlToolParameter[]): void;
13
- /**
14
- * Convert Commander options (camelCase from --kebab-case) back to
15
- * snake_case parameter names for YAML tool execution.
16
- *
17
- * Commander converts --schema-name to opts.schemaName.
18
- * This maps it back to { schema_name: value }.
19
- */
20
- export declare function optsToParams(opts: Record<string, unknown>, params: YamlToolParameter[]): Record<string, unknown>;
21
- /**
22
- * Validate required parameters are present.
23
- * Returns an array of missing required parameter names.
24
- */
25
- export declare function validateRequiredParams(values: Record<string, unknown>, params: YamlToolParameter[]): string[];
26
- //# sourceMappingURL=yaml-to-commander.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-to-commander.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/yaml-to-commander.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA8C1D;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,iBAAiB,EAAE,GAC1B,IAAI,CA4CN;AA+BD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,iBAAiB,EAAE,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AASD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,iBAAiB,EAAE,GAC1B,MAAM,EAAE,CAQV"}
@@ -1,156 +0,0 @@
1
- /**
2
- * @fileoverview Maps YAML tool parameter definitions to Commander CLI options.
3
- * Handles snake_case → kebab-case conversion, type coercion, and reverse mapping.
4
- * @module cli/utils/yaml-to-commander
5
- */
6
- /**
7
- * Convert a snake_case parameter name to a --kebab-case CLI flag.
8
- *
9
- * Examples:
10
- * schema_name → --schema-name <value>
11
- * include_system → --include-system
12
- * limit → --limit <n>
13
- */
14
- function toOptionFlag(param) {
15
- const kebab = param.name.replace(/_/g, "-");
16
- if (param.type === "boolean") {
17
- return `--${kebab}`;
18
- }
19
- return `--${kebab} <value>`;
20
- }
21
- /**
22
- * Build a description string for a parameter, including enum/range hints.
23
- */
24
- function buildDescription(param) {
25
- const parts = [];
26
- if (param.description) {
27
- parts.push(param.description);
28
- }
29
- if (param.enum && param.enum.length > 0) {
30
- const values = param.enum.map((v) => String(v)).join(", ");
31
- parts.push(`choices: ${values}`);
32
- }
33
- if (param.min !== undefined || param.max !== undefined) {
34
- const range = [
35
- param.min !== undefined ? `min: ${param.min}` : null,
36
- param.max !== undefined ? `max: ${param.max}` : null,
37
- ]
38
- .filter(Boolean)
39
- .join(", ");
40
- parts.push(range);
41
- }
42
- return parts.join(". ") || param.name;
43
- }
44
- /**
45
- * Register YAML tool parameters as Commander options on a Command.
46
- * Each parameter becomes a typed CLI option with coercion and defaults.
47
- */
48
- export function registerToolOptions(cmd, params) {
49
- for (const param of params) {
50
- const flag = toOptionFlag(param);
51
- const desc = buildDescription(param);
52
- switch (param.type) {
53
- case "boolean":
54
- cmd.option(flag, desc);
55
- break;
56
- case "integer":
57
- if (param.default !== undefined) {
58
- cmd.option(flag, desc, parseIntOption, param.default);
59
- }
60
- else {
61
- cmd.option(flag, desc, parseIntOption);
62
- }
63
- break;
64
- case "float":
65
- if (param.default !== undefined) {
66
- cmd.option(flag, desc, parseFloatOption, param.default);
67
- }
68
- else {
69
- cmd.option(flag, desc, parseFloatOption);
70
- }
71
- break;
72
- case "array":
73
- if (param.default !== undefined) {
74
- cmd.option(flag, desc, parseArrayOption, param.default);
75
- }
76
- else {
77
- cmd.option(flag, desc, parseArrayOption);
78
- }
79
- break;
80
- default:
81
- // string
82
- if (param.default !== undefined) {
83
- cmd.option(flag, desc, String(param.default));
84
- }
85
- else {
86
- cmd.option(flag, desc);
87
- }
88
- break;
89
- }
90
- }
91
- }
92
- /**
93
- * Commander parse function for integer options.
94
- */
95
- function parseIntOption(value) {
96
- const parsed = parseInt(value, 10);
97
- if (isNaN(parsed)) {
98
- throw new Error(`Expected an integer but got: ${value}`);
99
- }
100
- return parsed;
101
- }
102
- /**
103
- * Commander parse function for float options.
104
- */
105
- function parseFloatOption(value) {
106
- const parsed = parseFloat(value);
107
- if (isNaN(parsed)) {
108
- throw new Error(`Expected a number but got: ${value}`);
109
- }
110
- return parsed;
111
- }
112
- /**
113
- * Commander parse function for array options (comma-separated).
114
- */
115
- function parseArrayOption(value) {
116
- return value.split(",").map((s) => s.trim());
117
- }
118
- /**
119
- * Convert Commander options (camelCase from --kebab-case) back to
120
- * snake_case parameter names for YAML tool execution.
121
- *
122
- * Commander converts --schema-name to opts.schemaName.
123
- * This maps it back to { schema_name: value }.
124
- */
125
- export function optsToParams(opts, params) {
126
- const result = {};
127
- for (const param of params) {
128
- // Commander converts --kebab-case → camelCase
129
- const kebab = param.name.replace(/_/g, "-");
130
- const camel = kebabToCamel(kebab);
131
- if (opts[camel] !== undefined) {
132
- result[param.name] = opts[camel];
133
- }
134
- }
135
- return result;
136
- }
137
- /**
138
- * Convert kebab-case to camelCase (matching Commander's behavior).
139
- */
140
- function kebabToCamel(s) {
141
- return s.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
142
- }
143
- /**
144
- * Validate required parameters are present.
145
- * Returns an array of missing required parameter names.
146
- */
147
- export function validateRequiredParams(values, params) {
148
- const missing = [];
149
- for (const param of params) {
150
- if (param.required && param.default === undefined && values[param.name] === undefined) {
151
- missing.push(param.name);
152
- }
153
- }
154
- return missing;
155
- }
156
- //# sourceMappingURL=yaml-to-commander.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml-to-commander.js","sourceRoot":"","sources":["../../../src/cli/utils/yaml-to-commander.ts"],"names":[],"mappings":"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"}