@robinmordasiewicz/f5xc-api-mcp 1.0.82-2512312028
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/CHANGELOG.md +74 -0
- package/README.md +415 -0
- package/dist/auth/credential-manager.d.ts +151 -0
- package/dist/auth/credential-manager.d.ts.map +1 -0
- package/dist/auth/credential-manager.js +330 -0
- package/dist/auth/credential-manager.js.map +1 -0
- package/dist/auth/http-client.d.ts +81 -0
- package/dist/auth/http-client.d.ts.map +1 -0
- package/dist/auth/http-client.js +197 -0
- package/dist/auth/http-client.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/config/config-manager.d.ts +72 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +247 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +7 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schema.d.ts +74 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +75 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/types.d.ts +77 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +31 -0
- package/dist/config/types.js.map +1 -0
- package/dist/generator/dependency-extractor.d.ts +103 -0
- package/dist/generator/dependency-extractor.d.ts.map +1 -0
- package/dist/generator/dependency-extractor.js +473 -0
- package/dist/generator/dependency-extractor.js.map +1 -0
- package/dist/generator/dependency-graph.d.ts +67 -0
- package/dist/generator/dependency-graph.d.ts.map +1 -0
- package/dist/generator/dependency-graph.js +330 -0
- package/dist/generator/dependency-graph.js.map +1 -0
- package/dist/generator/dependency-types.d.ts +206 -0
- package/dist/generator/dependency-types.d.ts.map +1 -0
- package/dist/generator/dependency-types.js +37 -0
- package/dist/generator/dependency-types.js.map +1 -0
- package/dist/generator/index.d.ts +7 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +7 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/generator/naming/acronyms.d.ts +81 -0
- package/dist/generator/naming/acronyms.d.ts.map +1 -0
- package/dist/generator/naming/acronyms.js +253 -0
- package/dist/generator/naming/acronyms.js.map +1 -0
- package/dist/generator/naming/index.d.ts +6 -0
- package/dist/generator/naming/index.d.ts.map +1 -0
- package/dist/generator/naming/index.js +6 -0
- package/dist/generator/naming/index.js.map +1 -0
- package/dist/generator/naming/volterra-mapping.d.ts +102 -0
- package/dist/generator/naming/volterra-mapping.d.ts.map +1 -0
- package/dist/generator/naming/volterra-mapping.js +259 -0
- package/dist/generator/naming/volterra-mapping.js.map +1 -0
- package/dist/generator/openapi-parser.d.ts +701 -0
- package/dist/generator/openapi-parser.d.ts.map +1 -0
- package/dist/generator/openapi-parser.js +704 -0
- package/dist/generator/openapi-parser.js.map +1 -0
- package/dist/generator/tool-generator.d.ts +118 -0
- package/dist/generator/tool-generator.d.ts.map +1 -0
- package/dist/generator/tool-generator.js +529 -0
- package/dist/generator/tool-generator.js.map +1 -0
- package/dist/generator/transformers/index.d.ts +7 -0
- package/dist/generator/transformers/index.d.ts.map +1 -0
- package/dist/generator/transformers/index.js +7 -0
- package/dist/generator/transformers/index.js.map +1 -0
- package/dist/generator/transformers/normalize-examples.d.ts +48 -0
- package/dist/generator/transformers/normalize-examples.d.ts.map +1 -0
- package/dist/generator/transformers/normalize-examples.js +66 -0
- package/dist/generator/transformers/normalize-examples.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/error-resolution.d.ts +70 -0
- package/dist/prompts/error-resolution.d.ts.map +1 -0
- package/dist/prompts/error-resolution.js +350 -0
- package/dist/prompts/error-resolution.js.map +1 -0
- package/dist/prompts/index.d.ts +8 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +7 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/workflows.d.ts +59 -0
- package/dist/prompts/workflows.d.ts.map +1 -0
- package/dist/prompts/workflows.js +441 -0
- package/dist/prompts/workflows.js.map +1 -0
- package/dist/resources/handlers.d.ts +70 -0
- package/dist/resources/handlers.d.ts.map +1 -0
- package/dist/resources/handlers.js +270 -0
- package/dist/resources/handlers.js.map +1 -0
- package/dist/resources/index.d.ts +8 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +6 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/templates.d.ts +86 -0
- package/dist/resources/templates.d.ts.map +1 -0
- package/dist/resources/templates.js +248 -0
- package/dist/resources/templates.js.map +1 -0
- package/dist/server.d.ts +78 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +721 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/discovery/best-practices.d.ts +140 -0
- package/dist/tools/discovery/best-practices.d.ts.map +1 -0
- package/dist/tools/discovery/best-practices.js +499 -0
- package/dist/tools/discovery/best-practices.js.map +1 -0
- package/dist/tools/discovery/consolidate.d.ts +97 -0
- package/dist/tools/discovery/consolidate.d.ts.map +1 -0
- package/dist/tools/discovery/consolidate.js +200 -0
- package/dist/tools/discovery/consolidate.js.map +1 -0
- package/dist/tools/discovery/cost-estimator.d.ts +114 -0
- package/dist/tools/discovery/cost-estimator.d.ts.map +1 -0
- package/dist/tools/discovery/cost-estimator.js +273 -0
- package/dist/tools/discovery/cost-estimator.js.map +1 -0
- package/dist/tools/discovery/dependencies.d.ts +113 -0
- package/dist/tools/discovery/dependencies.d.ts.map +1 -0
- package/dist/tools/discovery/dependencies.js +258 -0
- package/dist/tools/discovery/dependencies.js.map +1 -0
- package/dist/tools/discovery/describe.d.ts +133 -0
- package/dist/tools/discovery/describe.d.ts.map +1 -0
- package/dist/tools/discovery/describe.js +208 -0
- package/dist/tools/discovery/describe.js.map +1 -0
- package/dist/tools/discovery/execute.d.ts +96 -0
- package/dist/tools/discovery/execute.d.ts.map +1 -0
- package/dist/tools/discovery/execute.js +220 -0
- package/dist/tools/discovery/execute.js.map +1 -0
- package/dist/tools/discovery/index-loader.d.ts +28 -0
- package/dist/tools/discovery/index-loader.d.ts.map +1 -0
- package/dist/tools/discovery/index-loader.js +72 -0
- package/dist/tools/discovery/index-loader.js.map +1 -0
- package/dist/tools/discovery/index.d.ts +363 -0
- package/dist/tools/discovery/index.d.ts.map +1 -0
- package/dist/tools/discovery/index.js +361 -0
- package/dist/tools/discovery/index.js.map +1 -0
- package/dist/tools/discovery/resolver.d.ts +119 -0
- package/dist/tools/discovery/resolver.d.ts.map +1 -0
- package/dist/tools/discovery/resolver.js +369 -0
- package/dist/tools/discovery/resolver.js.map +1 -0
- package/dist/tools/discovery/search.d.ts +41 -0
- package/dist/tools/discovery/search.d.ts.map +1 -0
- package/dist/tools/discovery/search.js +176 -0
- package/dist/tools/discovery/search.js.map +1 -0
- package/dist/tools/discovery/types.d.ts +91 -0
- package/dist/tools/discovery/types.d.ts.map +1 -0
- package/dist/tools/discovery/types.js +9 -0
- package/dist/tools/discovery/types.js.map +1 -0
- package/dist/tools/discovery/validate.d.ts +63 -0
- package/dist/tools/discovery/validate.d.ts.map +1 -0
- package/dist/tools/discovery/validate.js +239 -0
- package/dist/tools/discovery/validate.js.map +1 -0
- package/dist/tools/generated/admin_console_and_ui/index.d.ts +8 -0
- package/dist/tools/generated/admin_console_and_ui/index.d.ts.map +1 -0
- package/dist/tools/generated/admin_console_and_ui/index.js +265 -0
- package/dist/tools/generated/admin_console_and_ui/index.js.map +1 -0
- package/dist/tools/generated/api/index.d.ts +8 -0
- package/dist/tools/generated/api/index.d.ts.map +1 -0
- package/dist/tools/generated/api/index.js +7016 -0
- package/dist/tools/generated/api/index.js.map +1 -0
- package/dist/tools/generated/authentication/index.d.ts +8 -0
- package/dist/tools/generated/authentication/index.d.ts.map +1 -0
- package/dist/tools/generated/authentication/index.js +907 -0
- package/dist/tools/generated/authentication/index.js.map +1 -0
- package/dist/tools/generated/bigip/index.d.ts +8 -0
- package/dist/tools/generated/bigip/index.d.ts.map +1 -0
- package/dist/tools/generated/bigip/index.js +3152 -0
- package/dist/tools/generated/bigip/index.js.map +1 -0
- package/dist/tools/generated/billing_and_usage/index.d.ts +8 -0
- package/dist/tools/generated/billing_and_usage/index.d.ts.map +1 -0
- package/dist/tools/generated/billing_and_usage/index.js +2452 -0
- package/dist/tools/generated/billing_and_usage/index.js.map +1 -0
- package/dist/tools/generated/blindfold/index.d.ts +8 -0
- package/dist/tools/generated/blindfold/index.d.ts.map +1 -0
- package/dist/tools/generated/blindfold/index.js +3790 -0
- package/dist/tools/generated/blindfold/index.js.map +1 -0
- package/dist/tools/generated/bot_and_threat_defense/index.d.ts +8 -0
- package/dist/tools/generated/bot_and_threat_defense/index.d.ts.map +1 -0
- package/dist/tools/generated/bot_and_threat_defense/index.js +2746 -0
- package/dist/tools/generated/bot_and_threat_defense/index.js.map +1 -0
- package/dist/tools/generated/cdn/index.d.ts +8 -0
- package/dist/tools/generated/cdn/index.d.ts.map +1 -0
- package/dist/tools/generated/cdn/index.js +2686 -0
- package/dist/tools/generated/cdn/index.js.map +1 -0
- package/dist/tools/generated/ce_management/index.d.ts +8 -0
- package/dist/tools/generated/ce_management/index.d.ts.map +1 -0
- package/dist/tools/generated/ce_management/index.js +3812 -0
- package/dist/tools/generated/ce_management/index.js.map +1 -0
- package/dist/tools/generated/certificates/index.d.ts +8 -0
- package/dist/tools/generated/certificates/index.d.ts.map +1 -0
- package/dist/tools/generated/certificates/index.js +2547 -0
- package/dist/tools/generated/certificates/index.js.map +1 -0
- package/dist/tools/generated/cloud_infrastructure/index.d.ts +8 -0
- package/dist/tools/generated/cloud_infrastructure/index.d.ts.map +1 -0
- package/dist/tools/generated/cloud_infrastructure/index.js +3959 -0
- package/dist/tools/generated/cloud_infrastructure/index.js.map +1 -0
- package/dist/tools/generated/container_services/index.d.ts +8 -0
- package/dist/tools/generated/container_services/index.d.ts.map +1 -0
- package/dist/tools/generated/container_services/index.js +2018 -0
- package/dist/tools/generated/container_services/index.js.map +1 -0
- package/dist/tools/generated/data_and_privacy_security/index.d.ts +8 -0
- package/dist/tools/generated/data_and_privacy_security/index.d.ts.map +1 -0
- package/dist/tools/generated/data_and_privacy_security/index.js +1662 -0
- package/dist/tools/generated/data_and_privacy_security/index.js.map +1 -0
- package/dist/tools/generated/data_intelligence/index.d.ts +8 -0
- package/dist/tools/generated/data_intelligence/index.d.ts.map +1 -0
- package/dist/tools/generated/data_intelligence/index.js +1600 -0
- package/dist/tools/generated/data_intelligence/index.js.map +1 -0
- package/dist/tools/generated/ddos/index.d.ts +8 -0
- package/dist/tools/generated/ddos/index.d.ts.map +1 -0
- package/dist/tools/generated/ddos/index.js +8091 -0
- package/dist/tools/generated/ddos/index.js.map +1 -0
- package/dist/tools/generated/dependency-graph.json +26358 -0
- package/dist/tools/generated/dns/index.d.ts +8 -0
- package/dist/tools/generated/dns/index.d.ts.map +1 -0
- package/dist/tools/generated/dns/index.js +6096 -0
- package/dist/tools/generated/dns/index.js.map +1 -0
- package/dist/tools/generated/generative_ai/index.d.ts +8 -0
- package/dist/tools/generated/generative_ai/index.d.ts.map +1 -0
- package/dist/tools/generated/generative_ai/index.js +1019 -0
- package/dist/tools/generated/generative_ai/index.js.map +1 -0
- package/dist/tools/generated/managed_kubernetes/index.d.ts +8 -0
- package/dist/tools/generated/managed_kubernetes/index.d.ts.map +1 -0
- package/dist/tools/generated/managed_kubernetes/index.js +3368 -0
- package/dist/tools/generated/managed_kubernetes/index.js.map +1 -0
- package/dist/tools/generated/marketplace/index.d.ts +8 -0
- package/dist/tools/generated/marketplace/index.d.ts.map +1 -0
- package/dist/tools/generated/marketplace/index.js +4329 -0
- package/dist/tools/generated/marketplace/index.js.map +1 -0
- package/dist/tools/generated/network/index.d.ts +8 -0
- package/dist/tools/generated/network/index.d.ts.map +1 -0
- package/dist/tools/generated/network/index.js +12424 -0
- package/dist/tools/generated/network/index.js.map +1 -0
- package/dist/tools/generated/network_security/index.d.ts +8 -0
- package/dist/tools/generated/network_security/index.d.ts.map +1 -0
- package/dist/tools/generated/network_security/index.js +9637 -0
- package/dist/tools/generated/network_security/index.js.map +1 -0
- package/dist/tools/generated/nginx_one/index.d.ts +8 -0
- package/dist/tools/generated/nginx_one/index.d.ts.map +1 -0
- package/dist/tools/generated/nginx_one/index.js +1692 -0
- package/dist/tools/generated/nginx_one/index.js.map +1 -0
- package/dist/tools/generated/object_storage/index.d.ts +8 -0
- package/dist/tools/generated/object_storage/index.d.ts.map +1 -0
- package/dist/tools/generated/object_storage/index.js +996 -0
- package/dist/tools/generated/object_storage/index.js.map +1 -0
- package/dist/tools/generated/observability/index.d.ts +8 -0
- package/dist/tools/generated/observability/index.d.ts.map +1 -0
- package/dist/tools/generated/observability/index.js +5285 -0
- package/dist/tools/generated/observability/index.js.map +1 -0
- package/dist/tools/generated/rate_limiting/index.d.ts +8 -0
- package/dist/tools/generated/rate_limiting/index.d.ts.map +1 -0
- package/dist/tools/generated/rate_limiting/index.js +2108 -0
- package/dist/tools/generated/rate_limiting/index.js.map +1 -0
- package/dist/tools/generated/secops_and_incident_response/index.d.ts +8 -0
- package/dist/tools/generated/secops_and_incident_response/index.d.ts.map +1 -0
- package/dist/tools/generated/secops_and_incident_response/index.js +710 -0
- package/dist/tools/generated/secops_and_incident_response/index.js.map +1 -0
- package/dist/tools/generated/service_mesh/index.d.ts +8 -0
- package/dist/tools/generated/service_mesh/index.d.ts.map +1 -0
- package/dist/tools/generated/service_mesh/index.js +6062 -0
- package/dist/tools/generated/service_mesh/index.js.map +1 -0
- package/dist/tools/generated/shape/index.d.ts +8 -0
- package/dist/tools/generated/shape/index.d.ts.map +1 -0
- package/dist/tools/generated/shape/index.js +19381 -0
- package/dist/tools/generated/shape/index.js.map +1 -0
- package/dist/tools/generated/sites/index.d.ts +8 -0
- package/dist/tools/generated/sites/index.d.ts.map +1 -0
- package/dist/tools/generated/sites/index.js +13160 -0
- package/dist/tools/generated/sites/index.js.map +1 -0
- package/dist/tools/generated/statistics/index.d.ts +8 -0
- package/dist/tools/generated/statistics/index.d.ts.map +1 -0
- package/dist/tools/generated/statistics/index.js +8131 -0
- package/dist/tools/generated/statistics/index.js.map +1 -0
- package/dist/tools/generated/support/index.d.ts +8 -0
- package/dist/tools/generated/support/index.d.ts.map +1 -0
- package/dist/tools/generated/support/index.js +5608 -0
- package/dist/tools/generated/support/index.js.map +1 -0
- package/dist/tools/generated/telemetry_and_insights/index.d.ts +8 -0
- package/dist/tools/generated/telemetry_and_insights/index.d.ts.map +1 -0
- package/dist/tools/generated/telemetry_and_insights/index.js +2404 -0
- package/dist/tools/generated/telemetry_and_insights/index.js.map +1 -0
- package/dist/tools/generated/tenant_and_identity/index.d.ts +8 -0
- package/dist/tools/generated/tenant_and_identity/index.d.ts.map +1 -0
- package/dist/tools/generated/tenant_and_identity/index.js +18938 -0
- package/dist/tools/generated/tenant_and_identity/index.js.map +1 -0
- package/dist/tools/generated/threat_campaign/index.d.ts +8 -0
- package/dist/tools/generated/threat_campaign/index.d.ts.map +1 -0
- package/dist/tools/generated/threat_campaign/index.js +102 -0
- package/dist/tools/generated/threat_campaign/index.js.map +1 -0
- package/dist/tools/generated/users/index.d.ts +8 -0
- package/dist/tools/generated/users/index.d.ts.map +1 -0
- package/dist/tools/generated/users/index.js +1515 -0
- package/dist/tools/generated/users/index.js.map +1 -0
- package/dist/tools/generated/virtual/index.d.ts +8 -0
- package/dist/tools/generated/virtual/index.d.ts.map +1 -0
- package/dist/tools/generated/virtual/index.js +11263 -0
- package/dist/tools/generated/virtual/index.js.map +1 -0
- package/dist/tools/generated/vpm_and_node_management/index.d.ts +8 -0
- package/dist/tools/generated/vpm_and_node_management/index.d.ts.map +1 -0
- package/dist/tools/generated/vpm_and_node_management/index.js +88 -0
- package/dist/tools/generated/vpm_and_node_management/index.js.map +1 -0
- package/dist/tools/generated/waf/index.d.ts +8 -0
- package/dist/tools/generated/waf/index.d.ts.map +1 -0
- package/dist/tools/generated/waf/index.js +4586 -0
- package/dist/tools/generated/waf/index.js.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +27 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +115 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/utils/error-handling.d.ts +109 -0
- package/dist/utils/error-handling.d.ts.map +1 -0
- package/dist/utils/error-handling.js +239 -0
- package/dist/utils/error-handling.js.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logging.d.ts +75 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +131 -0
- package/dist/utils/logging.js.map +1 -0
- package/manifest.json +143 -0
- package/package.json +110 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discovery Module - Dynamic Tool Discovery for Token Efficiency
|
|
3
|
+
*
|
|
4
|
+
* This module implements the Speakeasy-style dynamic toolset pattern
|
|
5
|
+
* that reduces token consumption by 95%+ through lazy loading.
|
|
6
|
+
*
|
|
7
|
+
* Instead of loading all 1,400+ tools upfront (~535K tokens), this module
|
|
8
|
+
* exposes three meta-tools that load tool schemas on-demand:
|
|
9
|
+
*
|
|
10
|
+
* 1. search_tools - Find tools matching a natural language query
|
|
11
|
+
* 2. describe_tool - Get full schema for a specific tool
|
|
12
|
+
* 3. execute_tool - Execute a discovered tool
|
|
13
|
+
*
|
|
14
|
+
* Token Impact:
|
|
15
|
+
* - Before: 535,000 tokens loaded at server start
|
|
16
|
+
* - After: ~500 tokens (meta-tools) + ~375 tokens per tool used
|
|
17
|
+
*/
|
|
18
|
+
// Index loader exports
|
|
19
|
+
export { getToolIndex, clearIndexCache, getIndexMetadata, toolExists, getToolEntry, } from "./index-loader.js";
|
|
20
|
+
// Search exports
|
|
21
|
+
export { searchTools, getToolsByDomain, getToolsByResource, getAvailableDomains, getToolCountByDomain, } from "./search.js";
|
|
22
|
+
// Describe exports
|
|
23
|
+
export { describeTool, describeTools, describeToolSafe, describeToolCompact, getFullToolSchema, getOptimizationStats, } from "./describe.js";
|
|
24
|
+
// Execute exports
|
|
25
|
+
export { executeTool, validateExecuteParams } from "./execute.js";
|
|
26
|
+
export { getConsolidatedIndex, clearConsolidatedCache, getConsolidatedResource, getConsolidatedByDomain, searchConsolidatedResources, resolveConsolidatedTool, getConsolidationStats, } from "./consolidate.js";
|
|
27
|
+
// Dependency discovery exports
|
|
28
|
+
export { loadDependencyGraph, clearDependencyCache, getResourceDependencies, getCreationOrder, getPrerequisiteResources, getDependentResources, getOneOfGroups, getSubscriptionRequirements, getResourcesRequiringSubscription, getAvailableAddonServices, generateDependencyReport, getDependencyStats, getResourcesInDomain, getAllDependencyDomains, } from "./dependencies.js";
|
|
29
|
+
export { validateToolParams, formatValidationResult } from "./validate.js";
|
|
30
|
+
export { resolveDependencies, formatCreationPlan, generateCompactPlan } from "./resolver.js";
|
|
31
|
+
export { estimateToolTokens, estimateToolLatency, estimateToolCost, estimateMultipleToolsCost, estimateWorkflowCost, formatCostEstimate, formatWorkflowCostEstimate, } from "./cost-estimator.js";
|
|
32
|
+
export { getDomainBestPractices, queryBestPractices, getAllDomainsSummary, formatBestPractices, } from "./best-practices.js";
|
|
33
|
+
/**
|
|
34
|
+
* MCP Tool Definitions for the discovery meta-tools
|
|
35
|
+
*
|
|
36
|
+
* These are the three tools that get registered with the MCP server
|
|
37
|
+
* instead of the 1,400+ individual API tools.
|
|
38
|
+
*/
|
|
39
|
+
export const DISCOVERY_TOOLS = {
|
|
40
|
+
search: {
|
|
41
|
+
name: "f5xc-api-search-tools",
|
|
42
|
+
description: "Search for F5XC API tools using natural language. Returns matching tools with relevance scores. " +
|
|
43
|
+
"Use this to find tools for specific operations like 'create load balancer' or 'list DNS zones'.",
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: "object",
|
|
46
|
+
properties: {
|
|
47
|
+
query: {
|
|
48
|
+
type: "string",
|
|
49
|
+
description: "Natural language search query (e.g., 'http load balancer', 'create origin pool', 'delete dns zone')",
|
|
50
|
+
},
|
|
51
|
+
limit: {
|
|
52
|
+
type: "number",
|
|
53
|
+
description: "Maximum number of results to return (default: 10, max: 50)",
|
|
54
|
+
default: 10,
|
|
55
|
+
},
|
|
56
|
+
domains: {
|
|
57
|
+
type: "array",
|
|
58
|
+
items: { type: "string" },
|
|
59
|
+
description: "Filter by domain(s): waap, dns, core, network, site, security, appstack",
|
|
60
|
+
},
|
|
61
|
+
operations: {
|
|
62
|
+
type: "array",
|
|
63
|
+
items: { type: "string" },
|
|
64
|
+
description: "Filter by operation type(s): create, get, list, update, delete",
|
|
65
|
+
},
|
|
66
|
+
excludeDangerous: {
|
|
67
|
+
type: "boolean",
|
|
68
|
+
description: "Exclude high-danger operations from results",
|
|
69
|
+
},
|
|
70
|
+
excludeDeprecated: {
|
|
71
|
+
type: "boolean",
|
|
72
|
+
description: "Exclude deprecated operations from results",
|
|
73
|
+
},
|
|
74
|
+
includeDependencies: {
|
|
75
|
+
type: "boolean",
|
|
76
|
+
description: "Include prerequisite hints for create operations",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
required: ["query"],
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
describe: {
|
|
83
|
+
name: "f5xc-api-describe-tool",
|
|
84
|
+
description: "Get detailed information about a specific F5XC API tool including parameters, request body schema, " +
|
|
85
|
+
"and usage examples. Use search_tools first to find the tool name.",
|
|
86
|
+
inputSchema: {
|
|
87
|
+
type: "object",
|
|
88
|
+
properties: {
|
|
89
|
+
toolName: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "The exact tool name (e.g., 'f5xc-api-waap-http-loadbalancer-create')",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
required: ["toolName"],
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
execute: {
|
|
98
|
+
name: "f5xc-api-execute-tool",
|
|
99
|
+
description: "Execute an F5XC API tool. In authenticated mode, makes the actual API call. " +
|
|
100
|
+
"In documentation mode, returns CLI equivalents and curl examples.",
|
|
101
|
+
inputSchema: {
|
|
102
|
+
type: "object",
|
|
103
|
+
properties: {
|
|
104
|
+
toolName: {
|
|
105
|
+
type: "string",
|
|
106
|
+
description: "The exact tool name to execute",
|
|
107
|
+
},
|
|
108
|
+
pathParams: {
|
|
109
|
+
type: "object",
|
|
110
|
+
description: "Path parameters (e.g., { namespace: 'default', name: 'example-resource' })",
|
|
111
|
+
additionalProperties: { type: "string" },
|
|
112
|
+
},
|
|
113
|
+
queryParams: {
|
|
114
|
+
type: "object",
|
|
115
|
+
description: "Query parameters for the request",
|
|
116
|
+
additionalProperties: { type: "string" },
|
|
117
|
+
},
|
|
118
|
+
body: {
|
|
119
|
+
type: "object",
|
|
120
|
+
description: "Request body for POST/PUT/PATCH operations",
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
required: ["toolName"],
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
serverInfo: {
|
|
127
|
+
name: "f5xc-api-server-info",
|
|
128
|
+
description: "Get F5XC API MCP server information including authentication status, available domains, " +
|
|
129
|
+
"and total tool count. Use this to understand server capabilities.",
|
|
130
|
+
inputSchema: {
|
|
131
|
+
type: "object",
|
|
132
|
+
properties: {},
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
searchResources: {
|
|
136
|
+
name: "f5xc-api-search-resources",
|
|
137
|
+
description: "Search for F5XC resources (consolidated view). Returns resources with their available CRUD operations. " +
|
|
138
|
+
"More efficient than searching individual tools - one result per resource instead of 5 CRUD tools.",
|
|
139
|
+
inputSchema: {
|
|
140
|
+
type: "object",
|
|
141
|
+
properties: {
|
|
142
|
+
query: {
|
|
143
|
+
type: "string",
|
|
144
|
+
description: "Natural language search query (e.g., 'http load balancer', 'origin pool', 'dns zone')",
|
|
145
|
+
},
|
|
146
|
+
limit: {
|
|
147
|
+
type: "number",
|
|
148
|
+
description: "Maximum number of results to return (default: 10)",
|
|
149
|
+
default: 10,
|
|
150
|
+
},
|
|
151
|
+
domains: {
|
|
152
|
+
type: "array",
|
|
153
|
+
items: { type: "string" },
|
|
154
|
+
description: "Filter by domain(s): waap, dns, core, network, site, security, appstack",
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
required: ["query"],
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
executeResource: {
|
|
161
|
+
name: "f5xc-api-execute-resource",
|
|
162
|
+
description: "Execute a CRUD operation on a consolidated F5XC resource. Specify the resource name and operation. " +
|
|
163
|
+
"Routes to the correct underlying API tool automatically.",
|
|
164
|
+
inputSchema: {
|
|
165
|
+
type: "object",
|
|
166
|
+
properties: {
|
|
167
|
+
resourceName: {
|
|
168
|
+
type: "string",
|
|
169
|
+
description: "The consolidated resource name (e.g., 'f5xc-api-waap-http-loadbalancer')",
|
|
170
|
+
},
|
|
171
|
+
operation: {
|
|
172
|
+
type: "string",
|
|
173
|
+
enum: ["create", "get", "list", "update", "delete"],
|
|
174
|
+
description: "The CRUD operation to perform",
|
|
175
|
+
},
|
|
176
|
+
pathParams: {
|
|
177
|
+
type: "object",
|
|
178
|
+
description: "Path parameters (e.g., { namespace: 'default', name: 'example-resource' })",
|
|
179
|
+
additionalProperties: { type: "string" },
|
|
180
|
+
},
|
|
181
|
+
queryParams: {
|
|
182
|
+
type: "object",
|
|
183
|
+
description: "Query parameters for the request",
|
|
184
|
+
additionalProperties: { type: "string" },
|
|
185
|
+
},
|
|
186
|
+
body: {
|
|
187
|
+
type: "object",
|
|
188
|
+
description: "Request body for create/update operations",
|
|
189
|
+
},
|
|
190
|
+
},
|
|
191
|
+
required: ["resourceName", "operation"],
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
dependencies: {
|
|
195
|
+
name: "f5xc-api-dependencies",
|
|
196
|
+
description: "Get dependency information for F5XC resources. Returns prerequisites (resources that must exist before creation), " +
|
|
197
|
+
"dependents (resources that would break if deleted), mutually exclusive field options (oneOf groups), " +
|
|
198
|
+
"subscription requirements, and recommended creation order. Essential for understanding resource relationships.",
|
|
199
|
+
inputSchema: {
|
|
200
|
+
type: "object",
|
|
201
|
+
properties: {
|
|
202
|
+
resource: {
|
|
203
|
+
type: "string",
|
|
204
|
+
description: "The resource name (e.g., 'http-loadbalancer', 'origin-pool')",
|
|
205
|
+
},
|
|
206
|
+
domain: {
|
|
207
|
+
type: "string",
|
|
208
|
+
description: "The domain containing the resource (e.g., 'virtual', 'network', 'api')",
|
|
209
|
+
},
|
|
210
|
+
action: {
|
|
211
|
+
type: "string",
|
|
212
|
+
enum: ["prerequisites", "dependents", "oneOf", "subscriptions", "creationOrder", "full"],
|
|
213
|
+
description: "Type of information to retrieve: " +
|
|
214
|
+
"'prerequisites' - resources that must exist before creation, " +
|
|
215
|
+
"'dependents' - resources that depend on this one, " +
|
|
216
|
+
"'oneOf' - mutually exclusive field options, " +
|
|
217
|
+
"'subscriptions' - required addon services, " +
|
|
218
|
+
"'creationOrder' - topologically sorted creation sequence, " +
|
|
219
|
+
"'full' - all dependency information (default)",
|
|
220
|
+
default: "full",
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
required: ["resource", "domain"],
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
dependencyStats: {
|
|
227
|
+
name: "f5xc-api-dependency-stats",
|
|
228
|
+
description: "Get statistics about the F5XC resource dependency graph including total resources, " +
|
|
229
|
+
"dependency counts, available addon services, and graph metadata.",
|
|
230
|
+
inputSchema: {
|
|
231
|
+
type: "object",
|
|
232
|
+
properties: {},
|
|
233
|
+
},
|
|
234
|
+
},
|
|
235
|
+
validateParams: {
|
|
236
|
+
name: "f5xc-api-validate-params",
|
|
237
|
+
description: "Validate parameters for an F5XC API tool before execution. Checks required fields, " +
|
|
238
|
+
"parameter types, and oneOf constraints. Returns detailed error messages for invalid inputs.",
|
|
239
|
+
inputSchema: {
|
|
240
|
+
type: "object",
|
|
241
|
+
properties: {
|
|
242
|
+
toolName: {
|
|
243
|
+
type: "string",
|
|
244
|
+
description: "The exact tool name to validate parameters for",
|
|
245
|
+
},
|
|
246
|
+
pathParams: {
|
|
247
|
+
type: "object",
|
|
248
|
+
description: "Path parameters to validate (e.g., { namespace: 'default', name: 'my-resource' })",
|
|
249
|
+
additionalProperties: { type: "string" },
|
|
250
|
+
},
|
|
251
|
+
queryParams: {
|
|
252
|
+
type: "object",
|
|
253
|
+
description: "Query parameters to validate",
|
|
254
|
+
additionalProperties: { type: "string" },
|
|
255
|
+
},
|
|
256
|
+
body: {
|
|
257
|
+
type: "object",
|
|
258
|
+
description: "Request body to validate",
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
required: ["toolName"],
|
|
262
|
+
},
|
|
263
|
+
},
|
|
264
|
+
resolveDependencies: {
|
|
265
|
+
name: "f5xc-api-resolve-dependencies",
|
|
266
|
+
description: "Generate a complete creation plan for an F5XC resource with all transitive dependencies. " +
|
|
267
|
+
"Returns step-by-step workflow with tool names, required inputs, and oneOf choices. " +
|
|
268
|
+
"Essential for understanding what resources must be created before the target resource.",
|
|
269
|
+
inputSchema: {
|
|
270
|
+
type: "object",
|
|
271
|
+
properties: {
|
|
272
|
+
resource: {
|
|
273
|
+
type: "string",
|
|
274
|
+
description: "The target resource to create (e.g., 'http-loadbalancer', 'origin-pool')",
|
|
275
|
+
},
|
|
276
|
+
domain: {
|
|
277
|
+
type: "string",
|
|
278
|
+
description: "The domain containing the resource (e.g., 'virtual', 'network')",
|
|
279
|
+
},
|
|
280
|
+
existingResources: {
|
|
281
|
+
type: "array",
|
|
282
|
+
items: { type: "string" },
|
|
283
|
+
description: "Resources that already exist (will be skipped). Format: 'domain/resource' " +
|
|
284
|
+
"(e.g., ['network/origin-pool', 'certificates/certificate'])",
|
|
285
|
+
},
|
|
286
|
+
includeOptional: {
|
|
287
|
+
type: "boolean",
|
|
288
|
+
description: "Include optional dependencies in the plan (default: false)",
|
|
289
|
+
default: false,
|
|
290
|
+
},
|
|
291
|
+
maxDepth: {
|
|
292
|
+
type: "number",
|
|
293
|
+
description: "Maximum depth for dependency traversal (default: 10)",
|
|
294
|
+
default: 10,
|
|
295
|
+
},
|
|
296
|
+
expandAlternatives: {
|
|
297
|
+
type: "boolean",
|
|
298
|
+
description: "Include alternative paths for oneOf choices (default: false)",
|
|
299
|
+
default: false,
|
|
300
|
+
},
|
|
301
|
+
},
|
|
302
|
+
required: ["resource", "domain"],
|
|
303
|
+
},
|
|
304
|
+
},
|
|
305
|
+
estimateCost: {
|
|
306
|
+
name: "f5xc-api-estimate-cost",
|
|
307
|
+
description: "Estimate token usage and latency for F5XC API tool calls. Provides cost estimates for individual tools, " +
|
|
308
|
+
"multiple tools, or complete creation plan workflows. Useful for planning and optimizing API interactions.",
|
|
309
|
+
inputSchema: {
|
|
310
|
+
type: "object",
|
|
311
|
+
properties: {
|
|
312
|
+
toolName: {
|
|
313
|
+
type: "string",
|
|
314
|
+
description: "A single tool name to estimate (e.g., 'f5xc-api-waap-http-loadbalancer-create')",
|
|
315
|
+
},
|
|
316
|
+
toolNames: {
|
|
317
|
+
type: "array",
|
|
318
|
+
items: { type: "string" },
|
|
319
|
+
description: "Multiple tool names to estimate costs for",
|
|
320
|
+
},
|
|
321
|
+
plan: {
|
|
322
|
+
type: "object",
|
|
323
|
+
description: "A CreationPlan object from f5xc-api-resolve-dependencies to estimate workflow costs",
|
|
324
|
+
},
|
|
325
|
+
detailed: {
|
|
326
|
+
type: "boolean",
|
|
327
|
+
description: "Include detailed breakdown of token usage and latency (default: true)",
|
|
328
|
+
default: true,
|
|
329
|
+
},
|
|
330
|
+
},
|
|
331
|
+
},
|
|
332
|
+
},
|
|
333
|
+
bestPractices: {
|
|
334
|
+
name: "f5xc-api-best-practices",
|
|
335
|
+
description: "Get domain-specific best practices for F5XC API operations. Includes common errors with resolutions, " +
|
|
336
|
+
"recommended workflows, danger level analysis, security notes, and performance tips.",
|
|
337
|
+
inputSchema: {
|
|
338
|
+
type: "object",
|
|
339
|
+
properties: {
|
|
340
|
+
domain: {
|
|
341
|
+
type: "string",
|
|
342
|
+
description: "Domain to get best practices for (e.g., 'virtual', 'dns', 'certificates'). " +
|
|
343
|
+
"Omit to list available domains.",
|
|
344
|
+
},
|
|
345
|
+
aspect: {
|
|
346
|
+
type: "string",
|
|
347
|
+
enum: ["errors", "workflows", "danger", "security", "performance", "all"],
|
|
348
|
+
description: "Specific aspect to retrieve: 'errors' (common errors), 'workflows' (recommended workflows), " +
|
|
349
|
+
"'danger' (danger level analysis), 'security' (security notes), 'performance' (tips), 'all' (default)",
|
|
350
|
+
default: "all",
|
|
351
|
+
},
|
|
352
|
+
detailed: {
|
|
353
|
+
type: "boolean",
|
|
354
|
+
description: "Include detailed breakdowns (default: true)",
|
|
355
|
+
default: true,
|
|
356
|
+
},
|
|
357
|
+
},
|
|
358
|
+
},
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/discovery/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive Dependency Resolver
|
|
3
|
+
*
|
|
4
|
+
* Generates complete creation plans with all transitive dependencies,
|
|
5
|
+
* step-by-step workflows with tool names and required inputs,
|
|
6
|
+
* and handles oneOf groups with alternative paths.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A single step in a creation workflow
|
|
10
|
+
*/
|
|
11
|
+
export interface WorkflowStep {
|
|
12
|
+
/** Step number in the sequence */
|
|
13
|
+
stepNumber: number;
|
|
14
|
+
/** Action description */
|
|
15
|
+
action: "create" | "configure" | "verify";
|
|
16
|
+
/** Resource domain */
|
|
17
|
+
domain: string;
|
|
18
|
+
/** Resource type */
|
|
19
|
+
resource: string;
|
|
20
|
+
/** Full tool name for this step */
|
|
21
|
+
toolName: string;
|
|
22
|
+
/** Resources that must be created before this step */
|
|
23
|
+
dependsOn: string[];
|
|
24
|
+
/** Whether this step is optional */
|
|
25
|
+
optional: boolean;
|
|
26
|
+
/** Required input parameters */
|
|
27
|
+
requiredInputs: string[];
|
|
28
|
+
/** OneOf choices that must be made for this resource */
|
|
29
|
+
oneOfChoices?: Array<{
|
|
30
|
+
field: string;
|
|
31
|
+
options: string[];
|
|
32
|
+
description?: string;
|
|
33
|
+
}>;
|
|
34
|
+
/** Notes or hints for this step */
|
|
35
|
+
notes?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Alternative path in a creation plan (for oneOf choices)
|
|
39
|
+
*/
|
|
40
|
+
export interface AlternativePath {
|
|
41
|
+
/** Name of the choice field */
|
|
42
|
+
choiceField: string;
|
|
43
|
+
/** Selected option */
|
|
44
|
+
selectedOption: string;
|
|
45
|
+
/** Steps specific to this alternative */
|
|
46
|
+
steps: WorkflowStep[];
|
|
47
|
+
/** Description of what this alternative provides */
|
|
48
|
+
description?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Complete creation plan for a resource
|
|
52
|
+
*/
|
|
53
|
+
export interface CreationPlan {
|
|
54
|
+
/** Target resource to create */
|
|
55
|
+
targetResource: string;
|
|
56
|
+
/** Target domain */
|
|
57
|
+
targetDomain: string;
|
|
58
|
+
/** Total number of steps */
|
|
59
|
+
totalSteps: number;
|
|
60
|
+
/** Ordered workflow steps */
|
|
61
|
+
steps: WorkflowStep[];
|
|
62
|
+
/** Warnings about the plan */
|
|
63
|
+
warnings: string[];
|
|
64
|
+
/** Alternative paths for oneOf choices */
|
|
65
|
+
alternatives: AlternativePath[];
|
|
66
|
+
/** Required subscriptions */
|
|
67
|
+
subscriptions: string[];
|
|
68
|
+
/** Resources that already exist (skip these steps) */
|
|
69
|
+
existingResources?: string[];
|
|
70
|
+
/** Estimated complexity (low, medium, high) */
|
|
71
|
+
complexity: "low" | "medium" | "high";
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Parameters for resolving dependencies
|
|
75
|
+
*/
|
|
76
|
+
export interface ResolveParams {
|
|
77
|
+
/** Target resource to create */
|
|
78
|
+
resource: string;
|
|
79
|
+
/** Domain containing the resource */
|
|
80
|
+
domain: string;
|
|
81
|
+
/** Resources that already exist (will be skipped) */
|
|
82
|
+
existingResources?: string[];
|
|
83
|
+
/** Whether to include optional dependencies */
|
|
84
|
+
includeOptional?: boolean;
|
|
85
|
+
/** Maximum depth for dependency traversal */
|
|
86
|
+
maxDepth?: number;
|
|
87
|
+
/** Whether to expand oneOf alternatives */
|
|
88
|
+
expandAlternatives?: boolean;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Result of dependency resolution
|
|
92
|
+
*/
|
|
93
|
+
export interface ResolveResult {
|
|
94
|
+
success: boolean;
|
|
95
|
+
plan?: CreationPlan;
|
|
96
|
+
error?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Resolve dependencies and generate a complete creation plan
|
|
100
|
+
*/
|
|
101
|
+
export declare function resolveDependencies(params: ResolveParams): ResolveResult;
|
|
102
|
+
/**
|
|
103
|
+
* Format a creation plan for human-readable output
|
|
104
|
+
*/
|
|
105
|
+
export declare function formatCreationPlan(plan: CreationPlan): string;
|
|
106
|
+
/**
|
|
107
|
+
* Generate a compact JSON creation plan for programmatic use
|
|
108
|
+
*/
|
|
109
|
+
export declare function generateCompactPlan(params: ResolveParams): {
|
|
110
|
+
success: boolean;
|
|
111
|
+
steps?: Array<{
|
|
112
|
+
tool: string;
|
|
113
|
+
resource: string;
|
|
114
|
+
inputs: string[];
|
|
115
|
+
choices?: Record<string, string[]>;
|
|
116
|
+
}>;
|
|
117
|
+
error?: string;
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/tools/discovery/resolver.ts"],"names":[],"mappings":"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"}
|