@mcp-z/cli 1.0.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 (126) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/bin/cli.js +5 -0
  4. package/dist/cjs/cli.d.cts +1 -0
  5. package/dist/cjs/cli.d.ts +1 -0
  6. package/dist/cjs/cli.js +576 -0
  7. package/dist/cjs/cli.js.map +1 -0
  8. package/dist/cjs/commands/call-tool.d.cts +26 -0
  9. package/dist/cjs/commands/call-tool.d.ts +26 -0
  10. package/dist/cjs/commands/call-tool.js +362 -0
  11. package/dist/cjs/commands/call-tool.js.map +1 -0
  12. package/dist/cjs/commands/get-prompt.d.cts +26 -0
  13. package/dist/cjs/commands/get-prompt.d.ts +26 -0
  14. package/dist/cjs/commands/get-prompt.js +335 -0
  15. package/dist/cjs/commands/get-prompt.js.map +1 -0
  16. package/dist/cjs/commands/inspect.d.cts +35 -0
  17. package/dist/cjs/commands/inspect.d.ts +35 -0
  18. package/dist/cjs/commands/inspect.js +896 -0
  19. package/dist/cjs/commands/inspect.js.map +1 -0
  20. package/dist/cjs/commands/manifest/env-prompting.d.cts +21 -0
  21. package/dist/cjs/commands/manifest/env-prompting.d.ts +21 -0
  22. package/dist/cjs/commands/manifest/env-prompting.js +657 -0
  23. package/dist/cjs/commands/manifest/env-prompting.js.map +1 -0
  24. package/dist/cjs/commands/manifest/generate.d.cts +124 -0
  25. package/dist/cjs/commands/manifest/generate.d.ts +124 -0
  26. package/dist/cjs/commands/manifest/generate.js +2541 -0
  27. package/dist/cjs/commands/manifest/generate.js.map +1 -0
  28. package/dist/cjs/commands/manifest/index.d.cts +2 -0
  29. package/dist/cjs/commands/manifest/index.d.ts +2 -0
  30. package/dist/cjs/commands/manifest/index.js +229 -0
  31. package/dist/cjs/commands/manifest/index.js.map +1 -0
  32. package/dist/cjs/commands/manifest/metadata-reader.d.cts +71 -0
  33. package/dist/cjs/commands/manifest/metadata-reader.d.ts +71 -0
  34. package/dist/cjs/commands/manifest/metadata-reader.js +441 -0
  35. package/dist/cjs/commands/manifest/metadata-reader.js.map +1 -0
  36. package/dist/cjs/commands/manifest/validate.d.cts +1 -0
  37. package/dist/cjs/commands/manifest/validate.d.ts +1 -0
  38. package/dist/cjs/commands/manifest/validate.js +525 -0
  39. package/dist/cjs/commands/manifest/validate.js.map +1 -0
  40. package/dist/cjs/commands/read-resource.d.cts +24 -0
  41. package/dist/cjs/commands/read-resource.d.ts +24 -0
  42. package/dist/cjs/commands/read-resource.js +311 -0
  43. package/dist/cjs/commands/read-resource.js.map +1 -0
  44. package/dist/cjs/commands/search.d.cts +31 -0
  45. package/dist/cjs/commands/search.d.ts +31 -0
  46. package/dist/cjs/commands/search.js +464 -0
  47. package/dist/cjs/commands/search.js.map +1 -0
  48. package/dist/cjs/commands/up.d.cts +49 -0
  49. package/dist/cjs/commands/up.d.ts +49 -0
  50. package/dist/cjs/commands/up.js +235 -0
  51. package/dist/cjs/commands/up.js.map +1 -0
  52. package/dist/cjs/index.d.cts +7 -0
  53. package/dist/cjs/index.d.ts +7 -0
  54. package/dist/cjs/index.js +85 -0
  55. package/dist/cjs/index.js.map +1 -0
  56. package/dist/cjs/lib/find-config.d.cts +14 -0
  57. package/dist/cjs/lib/find-config.d.ts +14 -0
  58. package/dist/cjs/lib/find-config.js +93 -0
  59. package/dist/cjs/lib/find-config.js.map +1 -0
  60. package/dist/cjs/lib/json-schema.d.cts +18 -0
  61. package/dist/cjs/lib/json-schema.d.ts +18 -0
  62. package/dist/cjs/lib/json-schema.js +306 -0
  63. package/dist/cjs/lib/json-schema.js.map +1 -0
  64. package/dist/cjs/lib/resolve-server-config.d.cts +50 -0
  65. package/dist/cjs/lib/resolve-server-config.d.ts +50 -0
  66. package/dist/cjs/lib/resolve-server-config.js +214 -0
  67. package/dist/cjs/lib/resolve-server-config.js.map +1 -0
  68. package/dist/cjs/package.json +1 -0
  69. package/dist/cjs/types.d.cts +21 -0
  70. package/dist/cjs/types.d.ts +21 -0
  71. package/dist/cjs/types.js +32 -0
  72. package/dist/cjs/types.js.map +1 -0
  73. package/dist/esm/cli.d.ts +1 -0
  74. package/dist/esm/cli.js +129 -0
  75. package/dist/esm/cli.js.map +1 -0
  76. package/dist/esm/commands/call-tool.d.ts +26 -0
  77. package/dist/esm/commands/call-tool.js +151 -0
  78. package/dist/esm/commands/call-tool.js.map +1 -0
  79. package/dist/esm/commands/get-prompt.d.ts +26 -0
  80. package/dist/esm/commands/get-prompt.js +118 -0
  81. package/dist/esm/commands/get-prompt.js.map +1 -0
  82. package/dist/esm/commands/inspect.d.ts +35 -0
  83. package/dist/esm/commands/inspect.js +438 -0
  84. package/dist/esm/commands/inspect.js.map +1 -0
  85. package/dist/esm/commands/manifest/env-prompting.d.ts +21 -0
  86. package/dist/esm/commands/manifest/env-prompting.js +213 -0
  87. package/dist/esm/commands/manifest/env-prompting.js.map +1 -0
  88. package/dist/esm/commands/manifest/generate.d.ts +124 -0
  89. package/dist/esm/commands/manifest/generate.js +1087 -0
  90. package/dist/esm/commands/manifest/generate.js.map +1 -0
  91. package/dist/esm/commands/manifest/index.d.ts +2 -0
  92. package/dist/esm/commands/manifest/index.js +23 -0
  93. package/dist/esm/commands/manifest/index.js.map +1 -0
  94. package/dist/esm/commands/manifest/metadata-reader.d.ts +71 -0
  95. package/dist/esm/commands/manifest/metadata-reader.js +143 -0
  96. package/dist/esm/commands/manifest/metadata-reader.js.map +1 -0
  97. package/dist/esm/commands/manifest/validate.d.ts +1 -0
  98. package/dist/esm/commands/manifest/validate.js +167 -0
  99. package/dist/esm/commands/manifest/validate.js.map +1 -0
  100. package/dist/esm/commands/read-resource.d.ts +24 -0
  101. package/dist/esm/commands/read-resource.js +95 -0
  102. package/dist/esm/commands/read-resource.js.map +1 -0
  103. package/dist/esm/commands/search.d.ts +31 -0
  104. package/dist/esm/commands/search.js +145 -0
  105. package/dist/esm/commands/search.js.map +1 -0
  106. package/dist/esm/commands/up.d.ts +49 -0
  107. package/dist/esm/commands/up.js +74 -0
  108. package/dist/esm/commands/up.js.map +1 -0
  109. package/dist/esm/index.d.ts +7 -0
  110. package/dist/esm/index.js +11 -0
  111. package/dist/esm/index.js.map +1 -0
  112. package/dist/esm/lib/find-config.d.ts +14 -0
  113. package/dist/esm/lib/find-config.js +42 -0
  114. package/dist/esm/lib/find-config.js.map +1 -0
  115. package/dist/esm/lib/json-schema.d.ts +18 -0
  116. package/dist/esm/lib/json-schema.js +66 -0
  117. package/dist/esm/lib/json-schema.js.map +1 -0
  118. package/dist/esm/lib/resolve-server-config.d.ts +50 -0
  119. package/dist/esm/lib/resolve-server-config.js +154 -0
  120. package/dist/esm/lib/resolve-server-config.js.map +1 -0
  121. package/dist/esm/package.json +1 -0
  122. package/dist/esm/types.d.ts +21 -0
  123. package/dist/esm/types.js +11 -0
  124. package/dist/esm/types.js.map +1 -0
  125. package/package.json +99 -0
  126. package/schemas/server.schema.json +489 -0
@@ -0,0 +1,576 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return cli;
9
+ }
10
+ });
11
+ var _commander = require("commander");
12
+ var _fs = /*#__PURE__*/ _interop_require_wildcard(require("fs"));
13
+ var _modulerootsync = /*#__PURE__*/ _interop_require_default(require("module-root-sync"));
14
+ var _path = /*#__PURE__*/ _interop_require_wildcard(require("path"));
15
+ var _url = /*#__PURE__*/ _interop_require_wildcard(require("url"));
16
+ var _calltoolts = require("./commands/call-tool.js");
17
+ var _getpromptts = require("./commands/get-prompt.js");
18
+ var _inspectts = require("./commands/inspect.js");
19
+ var _indexts = require("./commands/manifest/index.js");
20
+ var _readresourcets = require("./commands/read-resource.js");
21
+ var _searchts = require("./commands/search.js");
22
+ var _upts = require("./commands/up.js");
23
+ function _array_like_to_array(arr, len) {
24
+ if (len == null || len > arr.length) len = arr.length;
25
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
26
+ return arr2;
27
+ }
28
+ function _array_without_holes(arr) {
29
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
30
+ }
31
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
32
+ try {
33
+ var info = gen[key](arg);
34
+ var value = info.value;
35
+ } catch (error) {
36
+ reject(error);
37
+ return;
38
+ }
39
+ if (info.done) {
40
+ resolve(value);
41
+ } else {
42
+ Promise.resolve(value).then(_next, _throw);
43
+ }
44
+ }
45
+ function _async_to_generator(fn) {
46
+ return function() {
47
+ var self = this, args = arguments;
48
+ return new Promise(function(resolve, reject) {
49
+ var gen = fn.apply(self, args);
50
+ function _next(value) {
51
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
52
+ }
53
+ function _throw(err) {
54
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
55
+ }
56
+ _next(undefined);
57
+ });
58
+ };
59
+ }
60
+ function _define_property(obj, key, value) {
61
+ if (key in obj) {
62
+ Object.defineProperty(obj, key, {
63
+ value: value,
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true
67
+ });
68
+ } else {
69
+ obj[key] = value;
70
+ }
71
+ return obj;
72
+ }
73
+ function _instanceof(left, right) {
74
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
75
+ return !!right[Symbol.hasInstance](left);
76
+ } else {
77
+ return left instanceof right;
78
+ }
79
+ }
80
+ function _interop_require_default(obj) {
81
+ return obj && obj.__esModule ? obj : {
82
+ default: obj
83
+ };
84
+ }
85
+ function _getRequireWildcardCache(nodeInterop) {
86
+ if (typeof WeakMap !== "function") return null;
87
+ var cacheBabelInterop = new WeakMap();
88
+ var cacheNodeInterop = new WeakMap();
89
+ return (_getRequireWildcardCache = function(nodeInterop) {
90
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
91
+ })(nodeInterop);
92
+ }
93
+ function _interop_require_wildcard(obj, nodeInterop) {
94
+ if (!nodeInterop && obj && obj.__esModule) {
95
+ return obj;
96
+ }
97
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
98
+ return {
99
+ default: obj
100
+ };
101
+ }
102
+ var cache = _getRequireWildcardCache(nodeInterop);
103
+ if (cache && cache.has(obj)) {
104
+ return cache.get(obj);
105
+ }
106
+ var newObj = {
107
+ __proto__: null
108
+ };
109
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
110
+ for(var key in obj){
111
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
112
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
113
+ if (desc && (desc.get || desc.set)) {
114
+ Object.defineProperty(newObj, key, desc);
115
+ } else {
116
+ newObj[key] = obj[key];
117
+ }
118
+ }
119
+ }
120
+ newObj.default = obj;
121
+ if (cache) {
122
+ cache.set(obj, newObj);
123
+ }
124
+ return newObj;
125
+ }
126
+ function _iterable_to_array(iter) {
127
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
128
+ }
129
+ function _non_iterable_spread() {
130
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
131
+ }
132
+ function _object_spread(target) {
133
+ for(var i = 1; i < arguments.length; i++){
134
+ var source = arguments[i] != null ? arguments[i] : {};
135
+ var ownKeys = Object.keys(source);
136
+ if (typeof Object.getOwnPropertySymbols === "function") {
137
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
138
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
139
+ }));
140
+ }
141
+ ownKeys.forEach(function(key) {
142
+ _define_property(target, key, source[key]);
143
+ });
144
+ }
145
+ return target;
146
+ }
147
+ function ownKeys(object, enumerableOnly) {
148
+ var keys = Object.keys(object);
149
+ if (Object.getOwnPropertySymbols) {
150
+ var symbols = Object.getOwnPropertySymbols(object);
151
+ if (enumerableOnly) {
152
+ symbols = symbols.filter(function(sym) {
153
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
154
+ });
155
+ }
156
+ keys.push.apply(keys, symbols);
157
+ }
158
+ return keys;
159
+ }
160
+ function _object_spread_props(target, source) {
161
+ source = source != null ? source : {};
162
+ if (Object.getOwnPropertyDescriptors) {
163
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
164
+ } else {
165
+ ownKeys(Object(source)).forEach(function(key) {
166
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
167
+ });
168
+ }
169
+ return target;
170
+ }
171
+ function _to_consumable_array(arr) {
172
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
173
+ }
174
+ function _unsupported_iterable_to_array(o, minLen) {
175
+ if (!o) return;
176
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
177
+ var n = Object.prototype.toString.call(o).slice(8, -1);
178
+ if (n === "Object" && o.constructor) n = o.constructor.name;
179
+ if (n === "Map" || n === "Set") return Array.from(n);
180
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
181
+ }
182
+ function _ts_generator(thisArg, body) {
183
+ var f, y, t, _ = {
184
+ label: 0,
185
+ sent: function() {
186
+ if (t[0] & 1) throw t[1];
187
+ return t[1];
188
+ },
189
+ trys: [],
190
+ ops: []
191
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
192
+ return d(g, "next", {
193
+ value: verb(0)
194
+ }), d(g, "throw", {
195
+ value: verb(1)
196
+ }), d(g, "return", {
197
+ value: verb(2)
198
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
199
+ value: function() {
200
+ return this;
201
+ }
202
+ }), g;
203
+ function verb(n) {
204
+ return function(v) {
205
+ return step([
206
+ n,
207
+ v
208
+ ]);
209
+ };
210
+ }
211
+ function step(op) {
212
+ if (f) throw new TypeError("Generator is already executing.");
213
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
214
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
215
+ if (y = 0, t) op = [
216
+ op[0] & 2,
217
+ t.value
218
+ ];
219
+ switch(op[0]){
220
+ case 0:
221
+ case 1:
222
+ t = op;
223
+ break;
224
+ case 4:
225
+ _.label++;
226
+ return {
227
+ value: op[1],
228
+ done: false
229
+ };
230
+ case 5:
231
+ _.label++;
232
+ y = op[1];
233
+ op = [
234
+ 0
235
+ ];
236
+ continue;
237
+ case 7:
238
+ op = _.ops.pop();
239
+ _.trys.pop();
240
+ continue;
241
+ default:
242
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
243
+ _ = 0;
244
+ continue;
245
+ }
246
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
247
+ _.label = op[1];
248
+ break;
249
+ }
250
+ if (op[0] === 6 && _.label < t[1]) {
251
+ _.label = t[1];
252
+ t = op;
253
+ break;
254
+ }
255
+ if (t && _.label < t[2]) {
256
+ _.label = t[2];
257
+ _.ops.push(op);
258
+ break;
259
+ }
260
+ if (t[2]) _.ops.pop();
261
+ _.trys.pop();
262
+ continue;
263
+ }
264
+ op = body.call(thisArg, _);
265
+ } catch (e) {
266
+ op = [
267
+ 6,
268
+ e
269
+ ];
270
+ y = 0;
271
+ } finally{
272
+ f = t = 0;
273
+ }
274
+ if (op[0] & 5) throw op[1];
275
+ return {
276
+ value: op[0] ? op[1] : void 0,
277
+ done: true
278
+ };
279
+ }
280
+ }
281
+ var pkg = JSON.parse(_fs.readFileSync(_path.join((0, _modulerootsync.default)(_url.fileURLToPath(require("url").pathToFileURL(__filename).toString())), 'package.json'), 'utf-8'));
282
+ function cli(argv, programName) {
283
+ var program = new _commander.Command();
284
+ program.name(programName).description('mcp-z helper CLI').version(pkg.version);
285
+ program.command('up').description('Start MCP server cluster (starts all servers by default)').option('--config <path>', 'Config file path (searches up to home directory)').option('--stdio-only', 'Start only stdio servers (Claude Code compatible)').option('--http-only', 'Start only HTTP servers with start blocks (Claude Code Desktop)').action(function(options) {
286
+ return _async_to_generator(function() {
287
+ var clusterResult, shutdown, error;
288
+ return _ts_generator(this, function(_state) {
289
+ switch(_state.label){
290
+ case 0:
291
+ _state.trys.push([
292
+ 0,
293
+ 3,
294
+ ,
295
+ 4
296
+ ]);
297
+ return [
298
+ 4,
299
+ (0, _upts.upCommand)({
300
+ config: options.config,
301
+ stdioOnly: options.stdioOnly,
302
+ httpOnly: options.httpOnly
303
+ })
304
+ ];
305
+ case 1:
306
+ clusterResult = _state.sent();
307
+ // If httpOnly mode and no servers were spawned, exit immediately
308
+ if (options.httpOnly && clusterResult.servers.size === 0) process.exit(0);
309
+ shutdown = function(sig) {
310
+ return _async_to_generator(function() {
311
+ var _;
312
+ return _ts_generator(this, function(_state) {
313
+ switch(_state.label){
314
+ case 0:
315
+ console.log('Shutting down (signal=', sig, ')');
316
+ if (!(clusterResult && typeof clusterResult.close === 'function')) return [
317
+ 3,
318
+ 4
319
+ ];
320
+ _state.label = 1;
321
+ case 1:
322
+ _state.trys.push([
323
+ 1,
324
+ 3,
325
+ ,
326
+ 4
327
+ ]);
328
+ return [
329
+ 4,
330
+ clusterResult.close(sig === 'SIGTERM' ? 'SIGTERM' : 'SIGINT', {
331
+ timeoutMs: 1000
332
+ })
333
+ ];
334
+ case 2:
335
+ _state.sent();
336
+ return [
337
+ 3,
338
+ 4
339
+ ];
340
+ case 3:
341
+ _ = _state.sent();
342
+ return [
343
+ 3,
344
+ 4
345
+ ];
346
+ case 4:
347
+ process.exit(0);
348
+ return [
349
+ 2
350
+ ];
351
+ }
352
+ });
353
+ })();
354
+ };
355
+ // Signal handlers trigger async shutdown then exit
356
+ process.on('SIGINT', function() {
357
+ shutdown('SIGINT').catch(function() {
358
+ return process.exit(1);
359
+ });
360
+ });
361
+ process.on('SIGTERM', function() {
362
+ shutdown('SIGTERM').catch(function() {
363
+ return process.exit(1);
364
+ });
365
+ });
366
+ // Keep process alive - wait for signal
367
+ return [
368
+ 4,
369
+ new Promise(function() {})
370
+ ];
371
+ case 2:
372
+ _state.sent();
373
+ return [
374
+ 3,
375
+ 4
376
+ ];
377
+ case 3:
378
+ error = _state.sent();
379
+ console.error("\n❌ ".concat(_instanceof(error, Error) ? error.message : String(error)));
380
+ process.exit(1);
381
+ return [
382
+ 3,
383
+ 4
384
+ ];
385
+ case 4:
386
+ return [
387
+ 2
388
+ ];
389
+ }
390
+ });
391
+ })();
392
+ });
393
+ program.command('inspect').description('Inspect MCP servers: explore tools, resources, prompts, and health status').option('--config <path>', 'Config file path (searches up to home directory)').option('--servers <list>', 'Comma-separated server names to inspect').option('--tools', 'Show tools only').option('--resources', 'Show resources only').option('--prompts', 'Show prompts only').option('--health', 'Show health diagnostics only').option('--json', 'Output as JSON').option('--verbose', 'Include detailed schemas').option('--attach', 'Connect to running servers (default: spawn servers)').action(function(options) {
394
+ return _async_to_generator(function() {
395
+ var error;
396
+ return _ts_generator(this, function(_state) {
397
+ switch(_state.label){
398
+ case 0:
399
+ _state.trys.push([
400
+ 0,
401
+ 2,
402
+ ,
403
+ 3
404
+ ]);
405
+ return [
406
+ 4,
407
+ (0, _inspectts.inspectCommand)({
408
+ config: options.config,
409
+ servers: options.servers,
410
+ tools: options.tools,
411
+ resources: options.resources,
412
+ prompts: options.prompts,
413
+ health: options.health,
414
+ json: options.json,
415
+ verbose: options.verbose,
416
+ attach: options.attach
417
+ })
418
+ ];
419
+ case 1:
420
+ _state.sent();
421
+ return [
422
+ 3,
423
+ 3
424
+ ];
425
+ case 2:
426
+ error = _state.sent();
427
+ console.error("\n❌ ".concat(_instanceof(error, Error) ? error.message : String(error)));
428
+ process.exit(1);
429
+ return [
430
+ 3,
431
+ 3
432
+ ];
433
+ case 3:
434
+ return [
435
+ 2
436
+ ];
437
+ }
438
+ });
439
+ })();
440
+ });
441
+ program.command('call-tool [server] <tool> <args>').description('Execute an MCP tool with JSON arguments').option('--config <path>', 'Custom config file path (default: .mcp.json)').option('--run <cmd>', 'Stdio run command (e.g., "npx -y @echo/server")').option('--url <url>', 'HTTP server URL').option('--server <json>', 'Full server config as JSON').option('--json', 'Output as JSON').action(function(server, tool, args, options) {
442
+ return _async_to_generator(function() {
443
+ var opts;
444
+ return _ts_generator(this, function(_state) {
445
+ switch(_state.label){
446
+ case 0:
447
+ // Handle case where server is actually the tool when using inline config
448
+ // Commander parses: call-tool [server] <tool> <args>
449
+ // With --run: server=undefined, tool=actualTool, args=actualArgs
450
+ // Without --run: server=serverName, tool=actualTool, args=actualArgs
451
+ opts = _object_spread_props(_object_spread({
452
+ server: server,
453
+ tool: tool,
454
+ args: args
455
+ }, options), {
456
+ run: options.run,
457
+ serverConfig: options.server
458
+ });
459
+ return [
460
+ 4,
461
+ (0, _calltoolts.callToolCommand)(opts)
462
+ ];
463
+ case 1:
464
+ _state.sent();
465
+ return [
466
+ 2
467
+ ];
468
+ }
469
+ });
470
+ })();
471
+ });
472
+ program.command('read-resource [server] <uri>').description('Read an MCP resource by URI').option('--config <path>', 'Custom config file path (default: .mcp.json)').option('--run <cmd>', 'Stdio run command (e.g., "npx -y @echo/server")').option('--url <url>', 'HTTP server URL').option('--server <json>', 'Full server config as JSON').option('--json', 'Output as JSON').action(function(server, uri, options) {
473
+ return _async_to_generator(function() {
474
+ var opts;
475
+ return _ts_generator(this, function(_state) {
476
+ switch(_state.label){
477
+ case 0:
478
+ opts = _object_spread_props(_object_spread({
479
+ server: server,
480
+ uri: uri
481
+ }, options), {
482
+ run: options.run,
483
+ serverConfig: options.server
484
+ });
485
+ return [
486
+ 4,
487
+ (0, _readresourcets.readResourceCommand)(opts)
488
+ ];
489
+ case 1:
490
+ _state.sent();
491
+ return [
492
+ 2
493
+ ];
494
+ }
495
+ });
496
+ })();
497
+ });
498
+ program.command('get-prompt [server] <name> [args]').description('Get an MCP prompt with optional JSON arguments').option('--config <path>', 'Custom config file path (default: .mcp.json)').option('--run <cmd>', 'Stdio run command (e.g., "npx -y @echo/server")').option('--url <url>', 'HTTP server URL').option('--server <json>', 'Full server config as JSON').option('--json', 'Output as JSON').action(function(server, name, args, options) {
499
+ return _async_to_generator(function() {
500
+ var opts;
501
+ return _ts_generator(this, function(_state) {
502
+ switch(_state.label){
503
+ case 0:
504
+ opts = _object_spread_props(_object_spread({
505
+ server: server,
506
+ name: name,
507
+ args: args || '{}'
508
+ }, options), {
509
+ run: options.run,
510
+ serverConfig: options.server
511
+ });
512
+ return [
513
+ 4,
514
+ (0, _getpromptts.getPromptCommand)(opts)
515
+ ];
516
+ case 1:
517
+ _state.sent();
518
+ return [
519
+ 2
520
+ ];
521
+ }
522
+ });
523
+ })();
524
+ });
525
+ program.command('search <query>').description('Search for tools, prompts, and resources across MCP servers').option('--config <path>', 'Custom config file path (default: .mcp.json)').option('--servers <list>', 'Comma-separated server names to search').option('--types <list>', 'Comma-separated types: tool,prompt,resource (default: all)').option('--fields <list>', 'Comma-separated fields: name,description,schema,server (default: name,description,schema)').option('--limit <number>', 'Maximum results to return (default: 20)', Number.parseInt).option('--threshold <number>', 'Minimum relevance score 0-1 (default: 0)', Number.parseFloat).option('--json', 'Output as JSON').option('--attach', 'Connect to running servers (default: spawn servers)').action(function(query, options) {
526
+ return _async_to_generator(function() {
527
+ var error;
528
+ return _ts_generator(this, function(_state) {
529
+ switch(_state.label){
530
+ case 0:
531
+ _state.trys.push([
532
+ 0,
533
+ 2,
534
+ ,
535
+ 3
536
+ ]);
537
+ return [
538
+ 4,
539
+ (0, _searchts.searchCommand)(query, options)
540
+ ];
541
+ case 1:
542
+ _state.sent();
543
+ return [
544
+ 3,
545
+ 3
546
+ ];
547
+ case 2:
548
+ error = _state.sent();
549
+ console.error("\n❌ ".concat(_instanceof(error, Error) ? error.message : String(error)));
550
+ process.exit(1);
551
+ return [
552
+ 3,
553
+ 3
554
+ ];
555
+ case 3:
556
+ return [
557
+ 2
558
+ ];
559
+ }
560
+ });
561
+ })();
562
+ });
563
+ // Add config command
564
+ program.addCommand((0, _indexts.createManifestCommand)());
565
+ program.parse([
566
+ 'node',
567
+ 'cli'
568
+ ].concat(_to_consumable_array(argv)));
569
+ }
570
+ if (require("url").pathToFileURL(__filename).toString().startsWith('file:')) {
571
+ var modulePath = (0, _url.fileURLToPath)(require("url").pathToFileURL(__filename).toString());
572
+ if (process.argv[1] === modulePath || process.argv[1] === modulePath.replace(/\.ts$/, '.js')) {
573
+ cli(process.argv.slice(2), 'mcp-z');
574
+ }
575
+ }
576
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/cli/src/cli.ts"],"sourcesContent":["import { Command } from 'commander';\nimport * as fs from 'fs';\nimport moduleRoot from 'module-root-sync';\nimport * as path from 'path';\nimport * as url from 'url';\nimport { type CallToolOptions, callToolCommand } from './commands/call-tool.ts';\nimport { type GetPromptOptions, getPromptCommand } from './commands/get-prompt.ts';\nimport { inspectCommand } from './commands/inspect.ts';\nimport { createManifestCommand } from './commands/manifest/index.ts';\nimport { type ReadResourceOptions, readResourceCommand } from './commands/read-resource.ts';\nimport { searchCommand } from './commands/search.ts';\nimport { upCommand } from './commands/up.ts';\n\nconst pkg = JSON.parse(fs.readFileSync(path.join(moduleRoot(url.fileURLToPath(import.meta.url)), 'package.json'), 'utf-8'));\n\nexport default function cli(argv: string[], programName: string) {\n const program = new Command();\n program.name(programName).description('mcp-z helper CLI').version(pkg.version);\n\n program\n .command('up')\n .description('Start MCP server cluster (starts all servers by default)')\n .option('--config <path>', 'Config file path (searches up to home directory)')\n .option('--stdio-only', 'Start only stdio servers (Claude Code compatible)')\n .option('--http-only', 'Start only HTTP servers with start blocks (Claude Code Desktop)')\n .action(async (options) => {\n try {\n const clusterResult = await upCommand({ config: options.config, stdioOnly: options.stdioOnly, httpOnly: options.httpOnly });\n\n // If httpOnly mode and no servers were spawned, exit immediately\n if (options.httpOnly && clusterResult.servers.size === 0) process.exit(0);\n\n const shutdown = async (sig: string) => {\n console.log('Shutting down (signal=', sig, ')');\n if (clusterResult && typeof clusterResult.close === 'function') {\n try {\n await clusterResult.close(sig === 'SIGTERM' ? 'SIGTERM' : 'SIGINT', { timeoutMs: 1000 });\n } catch (_) {\n /* ignore */\n }\n }\n process.exit(0);\n };\n\n // Signal handlers trigger async shutdown then exit\n process.on('SIGINT', () => {\n shutdown('SIGINT').catch(() => process.exit(1));\n });\n process.on('SIGTERM', () => {\n shutdown('SIGTERM').catch(() => process.exit(1));\n });\n\n // Keep process alive - wait for signal\n await new Promise(() => {});\n } catch (error) {\n console.error(`\\n❌ ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n }\n });\n\n program\n .command('inspect')\n .description('Inspect MCP servers: explore tools, resources, prompts, and health status')\n .option('--config <path>', 'Config file path (searches up to home directory)')\n .option('--servers <list>', 'Comma-separated server names to inspect')\n .option('--tools', 'Show tools only')\n .option('--resources', 'Show resources only')\n .option('--prompts', 'Show prompts only')\n .option('--health', 'Show health diagnostics only')\n .option('--json', 'Output as JSON')\n .option('--verbose', 'Include detailed schemas')\n .option('--attach', 'Connect to running servers (default: spawn servers)')\n .action(async (options) => {\n try {\n await inspectCommand({ config: options.config, servers: options.servers, tools: options.tools, resources: options.resources, prompts: options.prompts, health: options.health, json: options.json, verbose: options.verbose, attach: options.attach });\n } catch (error) {\n console.error(`\\n❌ ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n }\n });\n\n program\n .command('call-tool [server] <tool> <args>')\n .description('Execute an MCP tool with JSON arguments')\n .option('--config <path>', 'Custom config file path (default: .mcp.json)')\n .option('--run <cmd>', 'Stdio run command (e.g., \"npx -y @echo/server\")')\n .option('--url <url>', 'HTTP server URL')\n .option('--server <json>', 'Full server config as JSON')\n .option('--json', 'Output as JSON')\n .action(async (server: string | undefined, tool: string, args: string, options: Omit<CallToolOptions, 'server' | 'tool' | 'args'> & { server?: string; run?: string }) => {\n // Handle case where server is actually the tool when using inline config\n // Commander parses: call-tool [server] <tool> <args>\n // With --run: server=undefined, tool=actualTool, args=actualArgs\n // Without --run: server=serverName, tool=actualTool, args=actualArgs\n const opts: CallToolOptions = {\n server,\n tool,\n args,\n ...options,\n run: options.run,\n serverConfig: options.server, // Rename --server to serverConfig to avoid conflict\n };\n await callToolCommand(opts);\n });\n\n program\n .command('read-resource [server] <uri>')\n .description('Read an MCP resource by URI')\n .option('--config <path>', 'Custom config file path (default: .mcp.json)')\n .option('--run <cmd>', 'Stdio run command (e.g., \"npx -y @echo/server\")')\n .option('--url <url>', 'HTTP server URL')\n .option('--server <json>', 'Full server config as JSON')\n .option('--json', 'Output as JSON')\n .action(async (server: string | undefined, uri: string, options: Omit<ReadResourceOptions, 'server' | 'uri'> & { server?: string; run?: string }) => {\n const opts: ReadResourceOptions = {\n server,\n uri,\n ...options,\n run: options.run,\n serverConfig: options.server, // Rename --server to serverConfig to avoid conflict\n };\n await readResourceCommand(opts);\n });\n\n program\n .command('get-prompt [server] <name> [args]')\n .description('Get an MCP prompt with optional JSON arguments')\n .option('--config <path>', 'Custom config file path (default: .mcp.json)')\n .option('--run <cmd>', 'Stdio run command (e.g., \"npx -y @echo/server\")')\n .option('--url <url>', 'HTTP server URL')\n .option('--server <json>', 'Full server config as JSON')\n .option('--json', 'Output as JSON')\n .action(async (server: string | undefined, name: string, args: string | undefined, options: Omit<GetPromptOptions, 'server' | 'name' | 'args'> & { server?: string; run?: string }) => {\n const opts: GetPromptOptions = {\n server,\n name,\n args: args || '{}',\n ...options,\n run: options.run,\n serverConfig: options.server, // Rename --server to serverConfig to avoid conflict\n };\n await getPromptCommand(opts);\n });\n\n program\n .command('search <query>')\n .description('Search for tools, prompts, and resources across MCP servers')\n .option('--config <path>', 'Custom config file path (default: .mcp.json)')\n .option('--servers <list>', 'Comma-separated server names to search')\n .option('--types <list>', 'Comma-separated types: tool,prompt,resource (default: all)')\n .option('--fields <list>', 'Comma-separated fields: name,description,schema,server (default: name,description,schema)')\n .option('--limit <number>', 'Maximum results to return (default: 20)', Number.parseInt)\n .option('--threshold <number>', 'Minimum relevance score 0-1 (default: 0)', Number.parseFloat)\n .option('--json', 'Output as JSON')\n .option('--attach', 'Connect to running servers (default: spawn servers)')\n .action(async (query: string, options) => {\n try {\n await searchCommand(query, options);\n } catch (error) {\n console.error(`\\n❌ ${error instanceof Error ? error.message : String(error)}`);\n process.exit(1);\n }\n });\n\n // Add config command\n program.addCommand(createManifestCommand());\n\n program.parse(['node', 'cli', ...argv]);\n}\n\n// Entry point: run CLI when executed directly (not imported)\nimport { fileURLToPath } from 'url';\n\nif (import.meta.url.startsWith('file:')) {\n const modulePath = fileURLToPath(import.meta.url);\n if (process.argv[1] === modulePath || process.argv[1] === modulePath.replace(/\\.ts$/, '.js')) {\n cli(process.argv.slice(2), 'mcp-z');\n }\n}\n"],"names":["cli","pkg","JSON","parse","fs","readFileSync","path","join","moduleRoot","url","fileURLToPath","argv","programName","program","Command","name","description","version","command","option","action","options","clusterResult","shutdown","error","upCommand","config","stdioOnly","httpOnly","servers","size","process","exit","sig","_","console","log","close","timeoutMs","on","catch","Promise","Error","message","String","inspectCommand","tools","resources","prompts","health","json","verbose","attach","server","tool","args","opts","run","serverConfig","callToolCommand","uri","readResourceCommand","getPromptCommand","Number","parseInt","parseFloat","query","searchCommand","addCommand","createManifestCommand","startsWith","modulePath","replace","slice"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * call-tool.ts
3
+ *
4
+ * Execute MCP tools from the command line.
5
+ * Supports stdio (spawned) and http (remote) servers per MCP spec.
6
+ */
7
+ import { type InlineConfigOptions } from '../lib/resolve-server-config.js';
8
+ export interface CallToolOptions extends InlineConfigOptions {
9
+ tool: string;
10
+ args: string;
11
+ json?: boolean;
12
+ }
13
+ /**
14
+ * Main call-tool command implementation.
15
+ *
16
+ * @param opts - Call tool options from CLI flags
17
+ *
18
+ * @example
19
+ * // Call a tool with JSON args
20
+ * await callToolCommand({
21
+ * server: 'echo',
22
+ * tool: 'echo',
23
+ * args: '{"message": "hello"}',
24
+ * });
25
+ */
26
+ export declare function callToolCommand(opts: CallToolOptions): Promise<void>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * call-tool.ts
3
+ *
4
+ * Execute MCP tools from the command line.
5
+ * Supports stdio (spawned) and http (remote) servers per MCP spec.
6
+ */
7
+ import { type InlineConfigOptions } from '../lib/resolve-server-config.js';
8
+ export interface CallToolOptions extends InlineConfigOptions {
9
+ tool: string;
10
+ args: string;
11
+ json?: boolean;
12
+ }
13
+ /**
14
+ * Main call-tool command implementation.
15
+ *
16
+ * @param opts - Call tool options from CLI flags
17
+ *
18
+ * @example
19
+ * // Call a tool with JSON args
20
+ * await callToolCommand({
21
+ * server: 'echo',
22
+ * tool: 'echo',
23
+ * args: '{"message": "hello"}',
24
+ * });
25
+ */
26
+ export declare function callToolCommand(opts: CallToolOptions): Promise<void>;