Skip to content

Advanced Features

Available since v2.1.0

The MCP server automatically checks resource quota availability before executing create operations, preventing failures due to quota limits.

  • Pre-Flight Validation - Checks quota before API calls
  • Automatic Blocking - Prevents creation when quota is at 100%
  • Warning System - Warns when quota usage is 80-99%
  • Caching - 5-minute cache reduces API calls
  • Per-Namespace Tracking - Quota limits checked per namespace
  • Configurable Thresholds - Customize warning and blocking levels

f5xc-api-get-quota-status - Get quota for a specific resource type:

// Input
{ "namespace": "production", "resourceType": "healthcheck" }
// Output
// Quota Status for healthcheck
// Namespace: production
// Current Usage: 95/100 (95%)
// Remaining: 5
// Status: Warning - Approaching limit

f5xc-api-list-namespace-quotas - List all quota limits for a namespace:

{ "namespace": "production", "showOnlyLimited": false }

f5xc-api-clear-quota-cache - Clear cached quota data to force fresh queries:

{ "namespace": "production" } // optional - clears all if omitted
ZoneUsageBehavior
Green0-79%Creation allowed, no warnings
Yellow80-99%Creation allowed, warning logged
Red100%+Creation blocked with error

When a quota limit is reached:

ERROR: Resource quota limit reached
Resource Type: healthcheck
Namespace: production
Current Usage: 100/100 (100%)
Status: At limit - cannot create additional resources
Action Required:
1. Delete unused healthcheck resources in the 'production' namespace
2. Request quota increase from F5 XC support
3. Use a different namespace with available quota

Control quota checking behavior with environment variables:

VariableDefaultDescription
F5XC_QUOTA_CHECK_ENABLEDtrueEnable/disable quota checking
F5XC_QUOTA_CACHE_TTL300Cache TTL in seconds (5 minutes)
F5XC_QUOTA_GREEN_THRESHOLD79Green zone upper bound (%)
F5XC_QUOTA_YELLOW_THRESHOLD99Yellow zone upper bound (%)
F5XC_QUOTA_RED_THRESHOLD100Red zone threshold (%)

Available since v2.0.28

F5 XC API specifications distinguish between field requirements with enhanced metadata, reducing the number of fields you must provide.

  1. User-Required Fields (x-f5xc-required-for.create: true)

    • Must be provided by user at creation time
    • Validation returns error if missing
    • Example: metadata.name, http_health_check.path
  2. Server-Defaulted Fields (x-f5xc-server-default: true)

    • Optional at creation time
    • Server applies default value if omitted
    • Validation returns warning with default value info
    • Example: healthcheck.jitter_percent defaults to 0
  3. Recommended Values (x-f5xc-recommended-value) - v2.0.32+

    • Suggested values matching F5 XC web UI defaults
    • Provides guidance without enforcing specific values
    • Example: spec.timeout recommended value is 3
  4. Schema-Required Fields (x-ves-required: true)

    • Must have non-zero value when API processes the request
    • Can be user-provided OR server-defaulted
FieldDefault Value
spec.jitter_percent0
spec.http_health_check.use_http2false
spec.http_health_check.headers{}
spec.http_health_check.expected_status_codes[] (accepts 200-299)
spec.http_health_check.request_headers_to_remove[]
FieldRecommended
spec.timeout3 seconds
spec.interval15 seconds
spec.unhealthy_threshold1 failure
spec.healthy_threshold3 successes
spec.jitter_percent30% (production)
{
"metadata": {
"name": "example-hc",
"namespace": "default"
},
"spec": {
"timeout": 3,
"interval": 15,
"unhealthy_threshold": 1,
"healthy_threshold": 3,
"http_health_check": {
"use_origin_server_name": {},
"path": "/health"
}
}
}

Server automatically applies: jitter_percent -> 0, use_http2 -> false, headers -> {}, expected_status_codes -> [].

FieldServer DefaultUI DefaultNote
spec.loadbalancer_algorithmROUND_ROBINLB_OVERRIDESee warning below
spec.endpoint_selectionDISTRIBUTED-Distributed selection
TLS to origin (spec.no_tls)Disabled-No TLS by default
Connection timeout2000 ms-2 second timeout
HTTP idle timeout300000 ms-5 minute timeout
Circuit breakerDefault enabled-Auto-enabled
Outlier detectionDisabled-Must enable explicitly
HTTP protocolAuto-negotiation-auto_http_config
Proxy protocolDisabled-Must enable explicitly
{
"metadata": {
"name": "example-origin-pool",
"namespace": "default"
},
"spec": {
"origin_servers": [
{
"public_ip": {
"ip": "192.0.2.1"
}
}
],
"port": 443,
"use_tls": {
"use_host_header_as_sni": {}
}
}
}

When validating parameters:

  • Missing user-required field -> Error: “Missing required field: metadata.name”
  • Missing server-default field -> Warning: “Field ‘jitter_percent’ will default to 0”
  • Recommended values -> Info: Returned in recommendedValues for guidance

F5 XC staging environments use URLs like tenant.staging.console.ves.volterra.io, but the SSL certificate only covers *.console.ves.volterra.io. Wildcards only match a single subdomain level, so tenant.staging fails validation.

Hostname/IP does not match certificate's altnames:
Host: tenant.staging.console.ves.volterra.io
Cert covers: DNS:*.console.ves.volterra.io, DNS:console.ves.volterra.io

If your organization uses a custom CA:

Terminal window
export F5XC_CA_BUNDLE=/path/to/your/ca-bundle.crt

Option 2: Disable Verification (Development Only)

Section titled “Option 2: Disable Verification (Development Only)”
Terminal window
export F5XC_TLS_INSECURE=true
ErrorCauseSolution
Hostname/IP does not match certificate's altnamesStaging URL mismatchUse F5XC_TLS_INSECURE=true or custom CA
self signed certificateCustom CA not trustedSet F5XC_CA_BUNDLE
certificate has expiredExpired certificateContact F5 XC admin
unable to verify the first certificateMissing intermediate CAAdd intermediates to CA bundle
  1. Prefer F5XC_CA_BUNDLE over F5XC_TLS_INSECURE - maintains validation while trusting your organization’s certificates
  2. Contact F5 Support for staging environments to request the official staging CA certificate
  3. Never use F5XC_TLS_INSECURE=true in production
  4. Rotate credentials regularly according to your organization’s security policies

Access F5XC resources via URI scheme:

f5xc://{tenant}/{namespace}/{resource-type}/{name}

Examples:

  • f5xc://mytenant/production/http_loadbalancer/my-app
  • f5xc://mytenant/system/namespace/default

The server includes guided workflow prompts sourced from upstream enriched specs:

PromptDescription
deploy_http_loadbalancerCreate a fully configured HTTP load balancer with backend origin pool
deploy_https_loadbalancerCreate HTTPS load balancer with SSL/TLS termination
enable_waf_protectionAdd web application firewall to existing load balancer
configure_origin_poolSet up backend server pool with health checks
configure_dns_zoneSet up authoritative DNS zone with records
enable_cdn_distributionConfigure CDN for content delivery
register_siteRegister and configure a CE site