@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.
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/bin/cli.js +5 -0
- package/dist/cjs/cli.d.cts +1 -0
- package/dist/cjs/cli.d.ts +1 -0
- package/dist/cjs/cli.js +576 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/commands/call-tool.d.cts +26 -0
- package/dist/cjs/commands/call-tool.d.ts +26 -0
- package/dist/cjs/commands/call-tool.js +362 -0
- package/dist/cjs/commands/call-tool.js.map +1 -0
- package/dist/cjs/commands/get-prompt.d.cts +26 -0
- package/dist/cjs/commands/get-prompt.d.ts +26 -0
- package/dist/cjs/commands/get-prompt.js +335 -0
- package/dist/cjs/commands/get-prompt.js.map +1 -0
- package/dist/cjs/commands/inspect.d.cts +35 -0
- package/dist/cjs/commands/inspect.d.ts +35 -0
- package/dist/cjs/commands/inspect.js +896 -0
- package/dist/cjs/commands/inspect.js.map +1 -0
- package/dist/cjs/commands/manifest/env-prompting.d.cts +21 -0
- package/dist/cjs/commands/manifest/env-prompting.d.ts +21 -0
- package/dist/cjs/commands/manifest/env-prompting.js +657 -0
- package/dist/cjs/commands/manifest/env-prompting.js.map +1 -0
- package/dist/cjs/commands/manifest/generate.d.cts +124 -0
- package/dist/cjs/commands/manifest/generate.d.ts +124 -0
- package/dist/cjs/commands/manifest/generate.js +2541 -0
- package/dist/cjs/commands/manifest/generate.js.map +1 -0
- package/dist/cjs/commands/manifest/index.d.cts +2 -0
- package/dist/cjs/commands/manifest/index.d.ts +2 -0
- package/dist/cjs/commands/manifest/index.js +229 -0
- package/dist/cjs/commands/manifest/index.js.map +1 -0
- package/dist/cjs/commands/manifest/metadata-reader.d.cts +71 -0
- package/dist/cjs/commands/manifest/metadata-reader.d.ts +71 -0
- package/dist/cjs/commands/manifest/metadata-reader.js +441 -0
- package/dist/cjs/commands/manifest/metadata-reader.js.map +1 -0
- package/dist/cjs/commands/manifest/validate.d.cts +1 -0
- package/dist/cjs/commands/manifest/validate.d.ts +1 -0
- package/dist/cjs/commands/manifest/validate.js +525 -0
- package/dist/cjs/commands/manifest/validate.js.map +1 -0
- package/dist/cjs/commands/read-resource.d.cts +24 -0
- package/dist/cjs/commands/read-resource.d.ts +24 -0
- package/dist/cjs/commands/read-resource.js +311 -0
- package/dist/cjs/commands/read-resource.js.map +1 -0
- package/dist/cjs/commands/search.d.cts +31 -0
- package/dist/cjs/commands/search.d.ts +31 -0
- package/dist/cjs/commands/search.js +464 -0
- package/dist/cjs/commands/search.js.map +1 -0
- package/dist/cjs/commands/up.d.cts +49 -0
- package/dist/cjs/commands/up.d.ts +49 -0
- package/dist/cjs/commands/up.js +235 -0
- package/dist/cjs/commands/up.js.map +1 -0
- package/dist/cjs/index.d.cts +7 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.js +85 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/find-config.d.cts +14 -0
- package/dist/cjs/lib/find-config.d.ts +14 -0
- package/dist/cjs/lib/find-config.js +93 -0
- package/dist/cjs/lib/find-config.js.map +1 -0
- package/dist/cjs/lib/json-schema.d.cts +18 -0
- package/dist/cjs/lib/json-schema.d.ts +18 -0
- package/dist/cjs/lib/json-schema.js +306 -0
- package/dist/cjs/lib/json-schema.js.map +1 -0
- package/dist/cjs/lib/resolve-server-config.d.cts +50 -0
- package/dist/cjs/lib/resolve-server-config.d.ts +50 -0
- package/dist/cjs/lib/resolve-server-config.js +214 -0
- package/dist/cjs/lib/resolve-server-config.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.d.cts +21 -0
- package/dist/cjs/types.d.ts +21 -0
- package/dist/cjs/types.js +32 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/cli.d.ts +1 -0
- package/dist/esm/cli.js +129 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/commands/call-tool.d.ts +26 -0
- package/dist/esm/commands/call-tool.js +151 -0
- package/dist/esm/commands/call-tool.js.map +1 -0
- package/dist/esm/commands/get-prompt.d.ts +26 -0
- package/dist/esm/commands/get-prompt.js +118 -0
- package/dist/esm/commands/get-prompt.js.map +1 -0
- package/dist/esm/commands/inspect.d.ts +35 -0
- package/dist/esm/commands/inspect.js +438 -0
- package/dist/esm/commands/inspect.js.map +1 -0
- package/dist/esm/commands/manifest/env-prompting.d.ts +21 -0
- package/dist/esm/commands/manifest/env-prompting.js +213 -0
- package/dist/esm/commands/manifest/env-prompting.js.map +1 -0
- package/dist/esm/commands/manifest/generate.d.ts +124 -0
- package/dist/esm/commands/manifest/generate.js +1087 -0
- package/dist/esm/commands/manifest/generate.js.map +1 -0
- package/dist/esm/commands/manifest/index.d.ts +2 -0
- package/dist/esm/commands/manifest/index.js +23 -0
- package/dist/esm/commands/manifest/index.js.map +1 -0
- package/dist/esm/commands/manifest/metadata-reader.d.ts +71 -0
- package/dist/esm/commands/manifest/metadata-reader.js +143 -0
- package/dist/esm/commands/manifest/metadata-reader.js.map +1 -0
- package/dist/esm/commands/manifest/validate.d.ts +1 -0
- package/dist/esm/commands/manifest/validate.js +167 -0
- package/dist/esm/commands/manifest/validate.js.map +1 -0
- package/dist/esm/commands/read-resource.d.ts +24 -0
- package/dist/esm/commands/read-resource.js +95 -0
- package/dist/esm/commands/read-resource.js.map +1 -0
- package/dist/esm/commands/search.d.ts +31 -0
- package/dist/esm/commands/search.js +145 -0
- package/dist/esm/commands/search.js.map +1 -0
- package/dist/esm/commands/up.d.ts +49 -0
- package/dist/esm/commands/up.js +74 -0
- package/dist/esm/commands/up.js.map +1 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +11 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/find-config.d.ts +14 -0
- package/dist/esm/lib/find-config.js +42 -0
- package/dist/esm/lib/find-config.js.map +1 -0
- package/dist/esm/lib/json-schema.d.ts +18 -0
- package/dist/esm/lib/json-schema.js +66 -0
- package/dist/esm/lib/json-schema.js.map +1 -0
- package/dist/esm/lib/resolve-server-config.d.ts +50 -0
- package/dist/esm/lib/resolve-server-config.js +154 -0
- package/dist/esm/lib/resolve-server-config.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/types.d.ts +21 -0
- package/dist/esm/types.js +11 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +99 -0
- package/schemas/server.schema.json +489 -0
package/dist/cjs/cli.js
ADDED
|
@@ -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":";;;;+BAeA;;;eAAwBA;;;yBAfA;0DACJ;qEACG;4DACD;2DACD;0BACiC;2BACE;yBACzB;uBACO;8BACwB;wBAChC;oBACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE1B,IAAMC,MAAMC,KAAKC,KAAK,CAACC,IAAGC,YAAY,CAACC,MAAKC,IAAI,CAACC,IAAAA,uBAAU,EAACC,KAAIC,aAAa,CAAC,uDAAmB,iBAAiB;AAEnG,SAASV,IAAIW,IAAc,EAAEC,WAAmB;IAC7D,IAAMC,UAAU,IAAIC,kBAAO;IAC3BD,QAAQE,IAAI,CAACH,aAAaI,WAAW,CAAC,oBAAoBC,OAAO,CAAChB,IAAIgB,OAAO;IAE7EJ,QACGK,OAAO,CAAC,MACRF,WAAW,CAAC,4DACZG,MAAM,CAAC,mBAAmB,oDAC1BA,MAAM,CAAC,gBAAgB,qDACvBA,MAAM,CAAC,eAAe,mEACtBC,MAAM,CAAC,SAAOC;;gBAELC,eAKAC,UAsBCC;;;;;;;;;;wBA3Be;;4BAAMC,IAAAA,eAAS,EAAC;gCAAEC,QAAQL,QAAQK,MAAM;gCAAEC,WAAWN,QAAQM,SAAS;gCAAEC,UAAUP,QAAQO,QAAQ;4BAAC;;;wBAAnHN,gBAAgB;wBAEtB,iEAAiE;wBACjE,IAAID,QAAQO,QAAQ,IAAIN,cAAcO,OAAO,CAACC,IAAI,KAAK,GAAGC,QAAQC,IAAI,CAAC;wBAEjET,WAAW,SAAOU;;oCAKXC;;;;4CAJXC,QAAQC,GAAG,CAAC,0BAA0BH,KAAK;iDACvCX,CAAAA,iBAAiB,OAAOA,cAAce,KAAK,KAAK,UAAS,GAAzDf;;;;;;;;;;;;4CAEA;;gDAAMA,cAAce,KAAK,CAACJ,QAAQ,YAAY,YAAY,UAAU;oDAAEK,WAAW;gDAAK;;;4CAAtF;;;;;;4CACOJ;;;;;;4CAIXH,QAAQC,IAAI,CAAC;;;;;;4BACf;;wBAEA,mDAAmD;wBACnDD,QAAQQ,EAAE,CAAC,UAAU;4BACnBhB,SAAS,UAAUiB,KAAK,CAAC;uCAAMT,QAAQC,IAAI,CAAC;;wBAC9C;wBACAD,QAAQQ,EAAE,CAAC,WAAW;4BACpBhB,SAAS,WAAWiB,KAAK,CAAC;uCAAMT,QAAQC,IAAI,CAAC;;wBAC/C;wBAEA,uCAAuC;wBACvC;;4BAAM,IAAIS,QAAQ,YAAO;;;wBAAzB;;;;;;wBACOjB;wBACPW,QAAQX,KAAK,CAAC,AAAC,OAA6D,OAAvDA,AAAK,YAALA,OAAiBkB,SAAQlB,MAAMmB,OAAO,GAAGC,OAAOpB;wBACrEO,QAAQC,IAAI,CAAC;;;;;;;;;;;QAEjB;;IAEFnB,QACGK,OAAO,CAAC,WACRF,WAAW,CAAC,6EACZG,MAAM,CAAC,mBAAmB,oDAC1BA,MAAM,CAAC,oBAAoB,2CAC3BA,MAAM,CAAC,WAAW,mBAClBA,MAAM,CAAC,eAAe,uBACtBA,MAAM,CAAC,aAAa,qBACpBA,MAAM,CAAC,YAAY,gCACnBA,MAAM,CAAC,UAAU,kBACjBA,MAAM,CAAC,aAAa,4BACpBA,MAAM,CAAC,YAAY,uDACnBC,MAAM,CAAC,SAAOC;;gBAGJG;;;;;;;;;;wBADP;;4BAAMqB,IAAAA,yBAAc,EAAC;gCAAEnB,QAAQL,QAAQK,MAAM;gCAAEG,SAASR,QAAQQ,OAAO;gCAAEiB,OAAOzB,QAAQyB,KAAK;gCAAEC,WAAW1B,QAAQ0B,SAAS;gCAAEC,SAAS3B,QAAQ2B,OAAO;gCAAEC,QAAQ5B,QAAQ4B,MAAM;gCAAEC,MAAM7B,QAAQ6B,IAAI;gCAAEC,SAAS9B,QAAQ8B,OAAO;gCAAEC,QAAQ/B,QAAQ+B,MAAM;4BAAC;;;wBAApP;;;;;;wBACO5B;wBACPW,QAAQX,KAAK,CAAC,AAAC,OAA6D,OAAvDA,AAAK,YAALA,OAAiBkB,SAAQlB,MAAMmB,OAAO,GAAGC,OAAOpB;wBACrEO,QAAQC,IAAI,CAAC;;;;;;;;;;;QAEjB;;IAEFnB,QACGK,OAAO,CAAC,oCACRF,WAAW,CAAC,2CACZG,MAAM,CAAC,mBAAmB,gDAC1BA,MAAM,CAAC,eAAe,mDACtBA,MAAM,CAAC,eAAe,mBACtBA,MAAM,CAAC,mBAAmB,8BAC1BA,MAAM,CAAC,UAAU,kBACjBC,MAAM,CAAC,SAAOiC,QAA4BC,MAAcC,MAAclC;;gBAK/DmC;;;;wBAJN,yEAAyE;wBACzE,qDAAqD;wBACrD,iEAAiE;wBACjE,qEAAqE;wBAC/DA,OAAwB;4BAC5BH,QAAAA;4BACAC,MAAAA;4BACAC,MAAAA;2BACGlC;4BACHoC,KAAKpC,QAAQoC,GAAG;4BAChBC,cAAcrC,QAAQgC,MAAM;;wBAE9B;;4BAAMM,IAAAA,2BAAe,EAACH;;;wBAAtB;;;;;;QACF;;IAEF3C,QACGK,OAAO,CAAC,gCACRF,WAAW,CAAC,+BACZG,MAAM,CAAC,mBAAmB,gDAC1BA,MAAM,CAAC,eAAe,mDACtBA,MAAM,CAAC,eAAe,mBACtBA,MAAM,CAAC,mBAAmB,8BAC1BA,MAAM,CAAC,UAAU,kBACjBC,MAAM,CAAC,SAAOiC,QAA4BO,KAAavC;;gBAChDmC;;;;wBAAAA,OAA4B;4BAChCH,QAAAA;4BACAO,KAAAA;2BACGvC;4BACHoC,KAAKpC,QAAQoC,GAAG;4BAChBC,cAAcrC,QAAQgC,MAAM;;wBAE9B;;4BAAMQ,IAAAA,mCAAmB,EAACL;;;wBAA1B;;;;;;QACF;;IAEF3C,QACGK,OAAO,CAAC,qCACRF,WAAW,CAAC,kDACZG,MAAM,CAAC,mBAAmB,gDAC1BA,MAAM,CAAC,eAAe,mDACtBA,MAAM,CAAC,eAAe,mBACtBA,MAAM,CAAC,mBAAmB,8BAC1BA,MAAM,CAAC,UAAU,kBACjBC,MAAM,CAAC,SAAOiC,QAA4BtC,MAAcwC,MAA0BlC;;gBAC3EmC;;;;wBAAAA,OAAyB;4BAC7BH,QAAAA;4BACAtC,MAAAA;4BACAwC,MAAMA,QAAQ;2BACXlC;4BACHoC,KAAKpC,QAAQoC,GAAG;4BAChBC,cAAcrC,QAAQgC,MAAM;;wBAE9B;;4BAAMS,IAAAA,6BAAgB,EAACN;;;wBAAvB;;;;;;QACF;;IAEF3C,QACGK,OAAO,CAAC,kBACRF,WAAW,CAAC,+DACZG,MAAM,CAAC,mBAAmB,gDAC1BA,MAAM,CAAC,oBAAoB,0CAC3BA,MAAM,CAAC,kBAAkB,8DACzBA,MAAM,CAAC,mBAAmB,6FAC1BA,MAAM,CAAC,oBAAoB,2CAA2C4C,OAAOC,QAAQ,EACrF7C,MAAM,CAAC,wBAAwB,4CAA4C4C,OAAOE,UAAU,EAC5F9C,MAAM,CAAC,UAAU,kBACjBA,MAAM,CAAC,YAAY,uDACnBC,MAAM,CAAC,SAAO8C,OAAe7C;;gBAGnBG;;;;;;;;;;wBADP;;4BAAM2C,IAAAA,uBAAa,EAACD,OAAO7C;;;wBAA3B;;;;;;wBACOG;wBACPW,QAAQX,KAAK,CAAC,AAAC,OAA6D,OAAvDA,AAAK,YAALA,OAAiBkB,SAAQlB,MAAMmB,OAAO,GAAGC,OAAOpB;wBACrEO,QAAQC,IAAI,CAAC;;;;;;;;;;;QAEjB;;IAEF,qBAAqB;IACrBnB,QAAQuD,UAAU,CAACC,IAAAA,8BAAqB;IAExCxD,QAAQV,KAAK,CAAC;QAAC;QAAQ;KAAe,CAAxB,OAAgB,qBAAGQ;AACnC;AAKA,IAAI,oDAAgB2D,UAAU,CAAC,UAAU;IACvC,IAAMC,aAAa7D,IAAAA,kBAAa,EAAC;IACjC,IAAIqB,QAAQpB,IAAI,CAAC,EAAE,KAAK4D,cAAcxC,QAAQpB,IAAI,CAAC,EAAE,KAAK4D,WAAWC,OAAO,CAAC,SAAS,QAAQ;QAC5FxE,IAAI+B,QAAQpB,IAAI,CAAC8D,KAAK,CAAC,IAAI;IAC7B;AACF"}
|
|
@@ -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>;
|