@robinmordasiewicz/f5xc-api-mcp 2.0.21-2601081307 → 2.0.21-2601081732
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/dist/auth/http-client.d.ts.map +1 -1
- package/dist/auth/http-client.js +2 -0
- package/dist/auth/http-client.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +100 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/discovery/describe.d.ts +2 -0
- package/dist/tools/discovery/describe.d.ts.map +1 -1
- package/dist/tools/discovery/describe.js +2 -0
- package/dist/tools/discovery/describe.js.map +1 -1
- package/dist/tools/discovery/index.d.ts +31 -0
- package/dist/tools/discovery/index.d.ts.map +1 -1
- package/dist/tools/discovery/index.js +38 -0
- package/dist/tools/discovery/index.js.map +1 -1
- package/dist/tools/discovery/schema-loader.d.ts +142 -0
- package/dist/tools/discovery/schema-loader.d.ts.map +1 -0
- package/dist/tools/discovery/schema-loader.js +322 -0
- package/dist/tools/discovery/schema-loader.js.map +1 -0
- package/dist/tools/discovery/schema.d.ts +134 -0
- package/dist/tools/discovery/schema.d.ts.map +1 -0
- package/dist/tools/discovery/schema.js +380 -0
- package/dist/tools/discovery/schema.js.map +1 -0
- package/dist/tools/discovery/suggest-params.d.ts +87 -0
- package/dist/tools/discovery/suggest-params.d.ts.map +1 -0
- package/dist/tools/discovery/suggest-params.js +427 -0
- package/dist/tools/discovery/suggest-params.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameter Suggestion Module
|
|
3
|
+
*
|
|
4
|
+
* Provides pre-built example payloads for common F5XC API operations
|
|
5
|
+
* to help AI assistants construct correct request bodies without guessing.
|
|
6
|
+
*
|
|
7
|
+
* Enhanced with schema-based generation and smart defaults fallback.
|
|
8
|
+
*/
|
|
9
|
+
import { getToolByName } from "../registry.js";
|
|
10
|
+
import { getMinimumConfiguration, getRequiredFields, getMutuallyExclusiveFields, generateSmartExamplePayload, } from "./schema.js";
|
|
11
|
+
/**
|
|
12
|
+
* Pre-defined example payloads for common F5XC operations
|
|
13
|
+
* These are based on real-world usage patterns and cover the most common scenarios
|
|
14
|
+
*/
|
|
15
|
+
const COMMON_EXAMPLES = {
|
|
16
|
+
// HTTP Load Balancer examples
|
|
17
|
+
"f5xc-api-virtual-http-loadbalancer-create": {
|
|
18
|
+
metadata: {
|
|
19
|
+
name: "my-http-lb",
|
|
20
|
+
namespace: "default",
|
|
21
|
+
labels: {
|
|
22
|
+
"ves.io/site": "aws-us-west-2",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
spec: {
|
|
26
|
+
domains: ["example.com"],
|
|
27
|
+
http: {
|
|
28
|
+
port: 80,
|
|
29
|
+
},
|
|
30
|
+
routes: [
|
|
31
|
+
{
|
|
32
|
+
match: {
|
|
33
|
+
http_method: "ANY",
|
|
34
|
+
},
|
|
35
|
+
route: {
|
|
36
|
+
destinations: [
|
|
37
|
+
{
|
|
38
|
+
host: "backend.example.com",
|
|
39
|
+
port: 80,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
// Origin Pool examples
|
|
48
|
+
"f5xc-api-virtual-origin-pool-create": {
|
|
49
|
+
metadata: {
|
|
50
|
+
name: "my-origin-pool",
|
|
51
|
+
namespace: "default",
|
|
52
|
+
},
|
|
53
|
+
spec: {
|
|
54
|
+
origins: [
|
|
55
|
+
{
|
|
56
|
+
public_name: {
|
|
57
|
+
dns_name: "backend.example.com",
|
|
58
|
+
},
|
|
59
|
+
port: 80,
|
|
60
|
+
method: "GET",
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
healthcheck: [
|
|
64
|
+
{
|
|
65
|
+
name: "default-health-check",
|
|
66
|
+
http_health_check: {
|
|
67
|
+
use_http_path: "/health",
|
|
68
|
+
use_http_port: 80,
|
|
69
|
+
expected_status_codes: ["200"],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
// TCP Load Balancer examples
|
|
76
|
+
"f5xc-api-virtual-tcp-loadbalancer-create": {
|
|
77
|
+
metadata: {
|
|
78
|
+
name: "my-tcp-lb",
|
|
79
|
+
namespace: "default",
|
|
80
|
+
},
|
|
81
|
+
spec: {
|
|
82
|
+
listen_port: 3306,
|
|
83
|
+
tcp: {
|
|
84
|
+
port: 3306,
|
|
85
|
+
},
|
|
86
|
+
routes: [
|
|
87
|
+
{
|
|
88
|
+
match: {
|
|
89
|
+
any: true,
|
|
90
|
+
},
|
|
91
|
+
route: {
|
|
92
|
+
destinations: [
|
|
93
|
+
{
|
|
94
|
+
host: "mysql.example.com",
|
|
95
|
+
port: 3306,
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
// DNS Zone examples
|
|
104
|
+
"f5xc-api-dns-zone-create": {
|
|
105
|
+
metadata: {
|
|
106
|
+
name: "example-com-zone",
|
|
107
|
+
namespace: "system",
|
|
108
|
+
},
|
|
109
|
+
spec: {
|
|
110
|
+
primary: {
|
|
111
|
+
allowed_sig_ips: [],
|
|
112
|
+
default_soa_parameters: {
|
|
113
|
+
refresh: 86400,
|
|
114
|
+
retry: 7200,
|
|
115
|
+
expire: 3600000,
|
|
116
|
+
negative_ttl: 300,
|
|
117
|
+
ttl: 3600,
|
|
118
|
+
},
|
|
119
|
+
default_ttl: 3600,
|
|
120
|
+
},
|
|
121
|
+
zone_name: "example.com",
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
// DNS Load Balancer examples
|
|
125
|
+
"f5xc-api-dns-load-balancer-create": {
|
|
126
|
+
metadata: {
|
|
127
|
+
name: "my-dns-lb",
|
|
128
|
+
namespace: "system",
|
|
129
|
+
},
|
|
130
|
+
spec: {
|
|
131
|
+
dns_lb_type: "DNS_LB_TYPE_ROUND_ROBIN",
|
|
132
|
+
dns_policy: {
|
|
133
|
+
rules: [
|
|
134
|
+
{
|
|
135
|
+
rule_name: "default-rule",
|
|
136
|
+
rule_type: "DNS_LB_RULE_TYPE_STATIC",
|
|
137
|
+
static_route: {
|
|
138
|
+
destinations: [
|
|
139
|
+
{
|
|
140
|
+
ip: "192.168.1.100",
|
|
141
|
+
port: 80,
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
// Certificate examples
|
|
151
|
+
"f5xc-api-certificates-certificate-create": {
|
|
152
|
+
metadata: {
|
|
153
|
+
name: "my-certificate",
|
|
154
|
+
namespace: "system",
|
|
155
|
+
},
|
|
156
|
+
spec: {
|
|
157
|
+
certificate_url: {
|
|
158
|
+
url: "string:///<base64-encoded-certificate>",
|
|
159
|
+
},
|
|
160
|
+
private_key: {
|
|
161
|
+
blindfold_secret_info: {
|
|
162
|
+
location: "string:///<base64-encoded-private-key>",
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
// Namespace examples
|
|
168
|
+
"f5xc-api-system-namespace-create": {
|
|
169
|
+
metadata: {
|
|
170
|
+
name: "my-namespace",
|
|
171
|
+
namespace: "system",
|
|
172
|
+
},
|
|
173
|
+
spec: {},
|
|
174
|
+
},
|
|
175
|
+
// WAF Policy examples
|
|
176
|
+
"f5xc-api-app-firewall-policy-create": {
|
|
177
|
+
metadata: {
|
|
178
|
+
name: "my-waf-policy",
|
|
179
|
+
namespace: "default",
|
|
180
|
+
},
|
|
181
|
+
spec: {
|
|
182
|
+
blocking: true,
|
|
183
|
+
default_action: {
|
|
184
|
+
deny: {},
|
|
185
|
+
},
|
|
186
|
+
enforcement_mode: "ENFORCEMENT_MODE_ACTIVE",
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
// Service Policy examples
|
|
190
|
+
"f5xc-api-network-security-service-policy-create": {
|
|
191
|
+
metadata: {
|
|
192
|
+
name: "my-service-policy",
|
|
193
|
+
namespace: "default",
|
|
194
|
+
},
|
|
195
|
+
spec: {
|
|
196
|
+
algo: "FIRST_MATCH",
|
|
197
|
+
any_server: {},
|
|
198
|
+
rule_list: {
|
|
199
|
+
rules: [
|
|
200
|
+
{
|
|
201
|
+
metadata: {
|
|
202
|
+
name: "allow-internal",
|
|
203
|
+
},
|
|
204
|
+
spec: {
|
|
205
|
+
action: "ALLOW",
|
|
206
|
+
any_client: {},
|
|
207
|
+
label_matcher: {
|
|
208
|
+
keys: ["app"],
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
// Network Firewall examples
|
|
217
|
+
"f5xc-api-network-security-network-firewall-create": {
|
|
218
|
+
metadata: {
|
|
219
|
+
name: "my-network-firewall",
|
|
220
|
+
namespace: "system",
|
|
221
|
+
},
|
|
222
|
+
spec: {
|
|
223
|
+
active_service_policies: {
|
|
224
|
+
policies: [
|
|
225
|
+
{
|
|
226
|
+
name: "my-service-policy",
|
|
227
|
+
namespace: "default",
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
// Rate Limiter examples
|
|
234
|
+
"f5xc-api-rate-limiting-rate-limiter-create": {
|
|
235
|
+
metadata: {
|
|
236
|
+
name: "my-rate-limiter",
|
|
237
|
+
namespace: "default",
|
|
238
|
+
},
|
|
239
|
+
spec: {
|
|
240
|
+
limits: [
|
|
241
|
+
{
|
|
242
|
+
total_number: 100,
|
|
243
|
+
unit: "MINUTE",
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
/**
|
|
250
|
+
* Get suggested parameters for a tool with fallback chain
|
|
251
|
+
*
|
|
252
|
+
* Priority order:
|
|
253
|
+
* 1. x-f5xc-minimum-configuration.example_json (from spec)
|
|
254
|
+
* 2. COMMON_EXAMPLES (curated)
|
|
255
|
+
* 3. Schema-generated with smart defaults
|
|
256
|
+
*
|
|
257
|
+
* @param toolName - The exact tool name
|
|
258
|
+
* @returns Suggested parameters with metadata or null if unavailable
|
|
259
|
+
*/
|
|
260
|
+
export function suggestParameters(toolName) {
|
|
261
|
+
const tool = getToolByName(toolName);
|
|
262
|
+
if (!tool) {
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
// Collect metadata that applies to all sources
|
|
266
|
+
const requiredFields = getRequiredFields(toolName);
|
|
267
|
+
const mutuallyExclusiveGroups = getMutuallyExclusiveFields(toolName);
|
|
268
|
+
// Priority 1: Check for x-f5xc-minimum-configuration example
|
|
269
|
+
const minConfig = getMinimumConfiguration(toolName);
|
|
270
|
+
if (minConfig?.example_json) {
|
|
271
|
+
try {
|
|
272
|
+
const payload = JSON.parse(minConfig.example_json);
|
|
273
|
+
return {
|
|
274
|
+
examplePayload: payload,
|
|
275
|
+
description: minConfig.description || `Example payload for ${tool.resource} ${tool.operation}`,
|
|
276
|
+
source: "spec",
|
|
277
|
+
requiredFields: requiredFields.length > 0 ? requiredFields : undefined,
|
|
278
|
+
mutuallyExclusiveGroups: mutuallyExclusiveGroups.length > 0 ? mutuallyExclusiveGroups : undefined,
|
|
279
|
+
notes: buildNotesFromMinConfig(minConfig),
|
|
280
|
+
curlExample: minConfig.example_curl,
|
|
281
|
+
yamlExample: minConfig.example_yaml,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
// Invalid JSON, fall through to next source
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// Priority 2: Check for curated example
|
|
289
|
+
const curatedExample = COMMON_EXAMPLES[toolName];
|
|
290
|
+
if (curatedExample) {
|
|
291
|
+
return {
|
|
292
|
+
examplePayload: JSON.parse(JSON.stringify(curatedExample)), // Deep copy
|
|
293
|
+
description: `Curated example payload for ${tool.resource} ${tool.operation}`,
|
|
294
|
+
source: "curated",
|
|
295
|
+
requiredFields: requiredFields.length > 0 ? requiredFields : undefined,
|
|
296
|
+
mutuallyExclusiveGroups: mutuallyExclusiveGroups.length > 0 ? mutuallyExclusiveGroups : undefined,
|
|
297
|
+
notes: [
|
|
298
|
+
"This is a complete, working example based on common usage patterns",
|
|
299
|
+
"Modify the values to match your specific requirements",
|
|
300
|
+
"Required fields are already included",
|
|
301
|
+
],
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
// Priority 3: Generate from schema with smart defaults
|
|
305
|
+
const generatedPayload = generateSmartExamplePayload(toolName);
|
|
306
|
+
if (generatedPayload) {
|
|
307
|
+
return {
|
|
308
|
+
examplePayload: generatedPayload,
|
|
309
|
+
description: `Auto-generated example payload for ${tool.resource} ${tool.operation}`,
|
|
310
|
+
source: "generated",
|
|
311
|
+
requiredFields: requiredFields.length > 0 ? requiredFields : undefined,
|
|
312
|
+
mutuallyExclusiveGroups: mutuallyExclusiveGroups.length > 0 ? mutuallyExclusiveGroups : undefined,
|
|
313
|
+
notes: [
|
|
314
|
+
"This example was auto-generated from the schema",
|
|
315
|
+
"Review and modify values before using in production",
|
|
316
|
+
"Some nested objects may need additional configuration",
|
|
317
|
+
],
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
return null;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Build usage notes from minimum configuration
|
|
324
|
+
*/
|
|
325
|
+
function buildNotesFromMinConfig(minConfig) {
|
|
326
|
+
const notes = [];
|
|
327
|
+
if (minConfig.description) {
|
|
328
|
+
notes.push(minConfig.description);
|
|
329
|
+
}
|
|
330
|
+
if (minConfig.required_fields && minConfig.required_fields.length > 0) {
|
|
331
|
+
notes.push(`Required fields: ${minConfig.required_fields.join(", ")}`);
|
|
332
|
+
}
|
|
333
|
+
if (minConfig.mutually_exclusive_groups && minConfig.mutually_exclusive_groups.length > 0) {
|
|
334
|
+
for (const group of minConfig.mutually_exclusive_groups) {
|
|
335
|
+
notes.push(`Mutually exclusive: ${group.fields.join(" OR ")} - ${group.reason}`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
if (notes.length === 0) {
|
|
339
|
+
notes.push("Example from official F5XC API specification");
|
|
340
|
+
}
|
|
341
|
+
return notes;
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Get suggested parameters (legacy interface for backward compatibility)
|
|
345
|
+
*
|
|
346
|
+
* @deprecated Use suggestParameters() for richer metadata
|
|
347
|
+
*/
|
|
348
|
+
export function suggestParametersLegacy(toolName) {
|
|
349
|
+
const result = suggestParameters(toolName);
|
|
350
|
+
if (!result) {
|
|
351
|
+
return null;
|
|
352
|
+
}
|
|
353
|
+
return {
|
|
354
|
+
examplePayload: result.examplePayload,
|
|
355
|
+
description: result.description,
|
|
356
|
+
notes: result.notes,
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Get all available example tools (curated only)
|
|
361
|
+
*
|
|
362
|
+
* @returns List of tool names that have curated pre-built examples
|
|
363
|
+
*/
|
|
364
|
+
export function getAvailableExamples() {
|
|
365
|
+
return Object.keys(COMMON_EXAMPLES);
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Check if a tool has suggested parameters (from any source)
|
|
369
|
+
*
|
|
370
|
+
* @param toolName - The exact tool name
|
|
371
|
+
* @returns True if examples are available from any source
|
|
372
|
+
*/
|
|
373
|
+
export function hasSuggestedParameters(toolName) {
|
|
374
|
+
// Check curated examples first (fastest)
|
|
375
|
+
if (toolName in COMMON_EXAMPLES) {
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
378
|
+
// Check if tool has a request body schema (can generate)
|
|
379
|
+
const tool = getToolByName(toolName);
|
|
380
|
+
if (tool?.requestBodySchema) {
|
|
381
|
+
return true;
|
|
382
|
+
}
|
|
383
|
+
return false;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Check if a tool has curated examples (not generated)
|
|
387
|
+
*
|
|
388
|
+
* @param toolName - The exact tool name
|
|
389
|
+
* @returns True if curated examples exist
|
|
390
|
+
*/
|
|
391
|
+
export function hasCuratedExample(toolName) {
|
|
392
|
+
return toolName in COMMON_EXAMPLES;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Get suggestion source for a tool
|
|
396
|
+
*
|
|
397
|
+
* @param toolName - The exact tool name
|
|
398
|
+
* @returns Source type or null if no suggestions available
|
|
399
|
+
*/
|
|
400
|
+
export function getSuggestionSource(toolName) {
|
|
401
|
+
// Check minimum configuration first
|
|
402
|
+
const minConfig = getMinimumConfiguration(toolName);
|
|
403
|
+
if (minConfig?.example_json) {
|
|
404
|
+
return "spec";
|
|
405
|
+
}
|
|
406
|
+
// Check curated examples
|
|
407
|
+
if (toolName in COMMON_EXAMPLES) {
|
|
408
|
+
return "curated";
|
|
409
|
+
}
|
|
410
|
+
// Check if can generate
|
|
411
|
+
const tool = getToolByName(toolName);
|
|
412
|
+
if (tool?.requestBodySchema) {
|
|
413
|
+
return "generated";
|
|
414
|
+
}
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Get statistics about available suggestions
|
|
419
|
+
*/
|
|
420
|
+
export function getSuggestionStats() {
|
|
421
|
+
const curatedTools = Object.keys(COMMON_EXAMPLES);
|
|
422
|
+
return {
|
|
423
|
+
curatedCount: curatedTools.length,
|
|
424
|
+
curatedTools,
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
//# sourceMappingURL=suggest-params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suggest-params.js","sourceRoot":"","sources":["../../../src/tools/discovery/suggest-params.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* The version comes from package.json to ensure consistency.
|
|
9
9
|
*/
|
|
10
10
|
/** Package version from package.json */
|
|
11
|
-
export declare const VERSION = "2.0.21-
|
|
11
|
+
export declare const VERSION = "2.0.21-2601081732";
|
|
12
12
|
/** Package name */
|
|
13
13
|
export declare const PACKAGE_NAME = "@robinmordasiewicz/f5xc-api-mcp";
|
|
14
14
|
/** Upstream F5 XC API version from specs */
|
package/dist/version.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* The version comes from package.json to ensure consistency.
|
|
9
9
|
*/
|
|
10
10
|
/** Package version from package.json */
|
|
11
|
-
export const VERSION = "2.0.21-
|
|
11
|
+
export const VERSION = "2.0.21-2601081732";
|
|
12
12
|
/** Package name */
|
|
13
13
|
export const PACKAGE_NAME = "@robinmordasiewicz/f5xc-api-mcp";
|
|
14
14
|
/** Upstream F5 XC API version from specs */
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "f5xc-api-mcp",
|
|
4
4
|
"display_name": "F5 Distributed Cloud API",
|
|
5
|
-
"version": "2.0.21-
|
|
5
|
+
"version": "2.0.21-2601081732",
|
|
6
6
|
"description": "MCP server for F5 Distributed Cloud API - AI-powered infrastructure management with 1548 tools across 38 domains",
|
|
7
7
|
"long_description": "Enables AI assistants to manage F5 Distributed Cloud resources including HTTP load balancers, origin pools, WAF policies, DNS zones, and multi-cloud sites. Works in dual mode: documentation mode (no auth) or execution mode (with auth). Provides CURL examples for all API operations.",
|
|
8
8
|
"author": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robinmordasiewicz/f5xc-api-mcp",
|
|
3
|
-
"version": "2.0.21-
|
|
3
|
+
"version": "2.0.21-2601081732",
|
|
4
4
|
"description": "F5 Distributed Cloud API MCP Server - Exposes F5XC APIs to AI assistants via Model Context Protocol",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|