Solo.io · Capability

Solo.io Gateway Operations

Unified capability for operating Solo.io Gloo Gateway deployments. Combines the Gateway Management API for control plane administration (upstreams, virtual services, route tables, proxies, gateways) with the Portal Server API for developer portal management (API keys, usage plans). Used by platform engineers, API operators, and developer portal administrators.

Run with Naftiko API GatewayAPI ManagementCloud NativeDeveloper PortalEnvoy ProxySolo.ioTraffic Management

What You Can Do

GET
List upstreams — List all upstream backend services
/v1/upstreams
GET
Get upstream — Get upstream details
/v1/upstreams/{namespace}/{name}
GET
List virtual services — List all virtual services
/v1/virtual-services
GET
Get virtual service — Get virtual service details
/v1/virtual-services/{namespace}/{name}
GET
List route tables — List all route tables
/v1/route-tables
GET
List proxies — List all proxies
/v1/proxies
GET
List gateways — List all gateways
/v1/gateways
GET
Health check — Check control plane health
/v1/health
GET
List portal apis — List APIs in developer portal
/v1/portal/apis
GET
List usage plans — List usage plans
/v1/portal/usage-plans
GET
List api keys — List API keys
/v1/portal/api-keys
POST
Create api key — Create API key
/v1/portal/api-keys

MCP Tools

list-upstreams

List all upstream backend services registered with Gloo Gateway, optionally filtered by namespace

read-only
get-upstream

Get details of a specific upstream service including health checks and TLS config

read-only
list-virtual-services

List all virtual services with domains, routing rules, and security policies

read-only
get-virtual-service

Get full virtual service configuration including routes, rate limiting, and authentication

read-only
list-route-tables

List route tables used for delegated routing configuration across teams

read-only
get-route-table

Get route table with all routes, matchers, and upstream destinations

read-only
list-proxies

List compiled Envoy proxy configurations generated from gateway resources

read-only
get-proxy

Get compiled proxy configuration with all listeners, routes, and clusters

read-only
list-gateways

List all gateway resources defining listener addresses, ports, and TLS

read-only
get-gateway

Get gateway listener configuration including TLS settings and virtual service bindings

read-only
gateway-health-check

Check health status of Gloo Gateway control plane and its components

read-only
list-portal-apis

List all APIs published in the Gloo developer portal

read-only
get-portal-api

Get details of a specific portal API including schema and usage plans

read-only
get-portal-api-schema

Retrieve the OpenAPI or GraphQL schema for a portal API

read-only
list-usage-plans

List available usage plans with rate limits and API product access

read-only
list-api-keys

List API keys for the authenticated portal user

read-only
create-api-key

Create a new API key for accessing an API product under a usage plan

delete-api-key

Permanently delete an API key, revoking access to the associated API product

idempotent

APIs Used

gloo-gateway gloo-portal

Capability Spec

gateway-operations.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Solo.io Gateway Operations"
  description: >-
    Unified capability for operating Solo.io Gloo Gateway deployments. Combines
    the Gateway Management API for control plane administration (upstreams, virtual
    services, route tables, proxies, gateways) with the Portal Server API for
    developer portal management (API keys, usage plans). Used by platform
    engineers, API operators, and developer portal administrators.
  tags:
    - API Gateway
    - API Management
    - Cloud Native
    - Developer Portal
    - Envoy Proxy
    - Solo.io
    - Traffic Management
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      GLOO_GATEWAY_BEARER_TOKEN: GLOO_GATEWAY_BEARER_TOKEN
      GLOO_PORTAL_BEARER_TOKEN: GLOO_PORTAL_BEARER_TOKEN

capability:
  consumes:
    - import: gloo-gateway
      location: ./shared/gloo-gateway-management.yaml
    - import: gloo-portal
      location: ./shared/gloo-portal.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: solo-io-gateway-ops-api
      description: "Unified REST API for Solo.io Gloo Gateway platform operations."
      resources:
        - path: /v1/upstreams
          name: upstreams
          description: "Backend upstream service management"
          operations:
            - method: GET
              name: list-upstreams
              description: "List all upstream backend services"
              call: "gloo-gateway.list-upstreams"
              with:
                namespace: "rest.namespace"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/upstreams/{namespace}/{name}
          name: upstream-detail
          description: "Individual upstream details"
          operations:
            - method: GET
              name: get-upstream
              description: "Get upstream details"
              call: "gloo-gateway.get-upstream"
              with:
                namespace: "rest.namespace"
                name: "rest.name"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/virtual-services
          name: virtual-services
          description: "Virtual service routing rules"
          operations:
            - method: GET
              name: list-virtual-services
              description: "List all virtual services"
              call: "gloo-gateway.list-virtual-services"
              with:
                namespace: "rest.namespace"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/virtual-services/{namespace}/{name}
          name: virtual-service-detail
          description: "Individual virtual service configuration"
          operations:
            - method: GET
              name: get-virtual-service
              description: "Get virtual service details"
              call: "gloo-gateway.get-virtual-service"
              with:
                namespace: "rest.namespace"
                name: "rest.name"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/route-tables
          name: route-tables
          description: "Delegated route table management"
          operations:
            - method: GET
              name: list-route-tables
              description: "List all route tables"
              call: "gloo-gateway.list-route-tables"
              with:
                namespace: "rest.namespace"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/proxies
          name: proxies
          description: "Compiled Envoy proxy configurations"
          operations:
            - method: GET
              name: list-proxies
              description: "List all proxies"
              call: "gloo-gateway.list-proxies"
              with:
                namespace: "rest.namespace"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/gateways
          name: gateways
          description: "Gateway listener management"
          operations:
            - method: GET
              name: list-gateways
              description: "List all gateways"
              call: "gloo-gateway.list-gateways"
              with:
                namespace: "rest.namespace"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/health
          name: health
          description: "Control plane health"
          operations:
            - method: GET
              name: health-check
              description: "Check control plane health"
              call: "gloo-gateway.health-check"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/portal/apis
          name: portal-apis
          description: "Developer portal API catalog"
          operations:
            - method: GET
              name: list-portal-apis
              description: "List APIs in developer portal"
              call: "gloo-portal.list-apis"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/portal/usage-plans
          name: portal-usage-plans
          description: "Developer portal usage plans"
          operations:
            - method: GET
              name: list-usage-plans
              description: "List usage plans"
              call: "gloo-portal.list-usage-plans"
              outputParameters:
                - type: object
                  mapping: "$."

        - path: /v1/portal/api-keys
          name: portal-api-keys
          description: "Developer API key management"
          operations:
            - method: GET
              name: list-api-keys
              description: "List API keys"
              call: "gloo-portal.list-api-keys"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-api-key
              description: "Create API key"
              call: "gloo-portal.create-api-key"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9090
      namespace: solo-io-gateway-ops-mcp
      transport: http
      description: "MCP server for AI-assisted Solo.io Gloo Gateway platform operations."
      tools:
        - name: list-upstreams
          description: "List all upstream backend services registered with Gloo Gateway, optionally filtered by namespace"
          hints:
            readOnly: true
            openWorld: true
          call: "gloo-gateway.list-upstreams"
          with:
            namespace: "tools.namespace"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-upstream
          description: "Get details of a specific upstream service including health checks and TLS config"
          hints:
            readOnly: true
          call: "gloo-gateway.get-upstream"
          with:
            namespace: "tools.namespace"
            name: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-virtual-services
          description: "List all virtual services with domains, routing rules, and security policies"
          hints:
            readOnly: true
            openWorld: true
          call: "gloo-gateway.list-virtual-services"
          with:
            namespace: "tools.namespace"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-virtual-service
          description: "Get full virtual service configuration including routes, rate limiting, and authentication"
          hints:
            readOnly: true
          call: "gloo-gateway.get-virtual-service"
          with:
            namespace: "tools.namespace"
            name: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-route-tables
          description: "List route tables used for delegated routing configuration across teams"
          hints:
            readOnly: true
            openWorld: true
          call: "gloo-gateway.list-route-tables"
          with:
            namespace: "tools.namespace"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-route-table
          description: "Get route table with all routes, matchers, and upstream destinations"
          hints:
            readOnly: true
          call: "gloo-gateway.get-route-table"
          with:
            namespace: "tools.namespace"
            name: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-proxies
          description: "List compiled Envoy proxy configurations generated from gateway resources"
          hints:
            readOnly: true
            openWorld: true
          call: "gloo-gateway.list-proxies"
          with:
            namespace: "tools.namespace"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-proxy
          description: "Get compiled proxy configuration with all listeners, routes, and clusters"
          hints:
            readOnly: true
          call: "gloo-gateway.get-proxy"
          with:
            namespace: "tools.namespace"
            name: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-gateways
          description: "List all gateway resources defining listener addresses, ports, and TLS"
          hints:
            readOnly: true
            openWorld: true
          call: "gloo-gateway.list-gateways"
          with:
            namespace: "tools.namespace"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-gateway
          description: "Get gateway listener configuration including TLS settings and virtual service bindings"
          hints:
            readOnly: true
          call: "gloo-gateway.get-gateway"
          with:
            namespace: "tools.namespace"
            name: "tools.name"
          outputParameters:
            - type: object
              mapping: "$."

        - name: gateway-health-check
          description: "Check health status of Gloo Gateway control plane and its components"
          hints:
            readOnly: true
          call: "gloo-gateway.health-check"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-portal-apis
          description: "List all APIs published in the Gloo developer portal"
          hints:
            readOnly: true
            openWorld: true
          call: "gloo-portal.list-apis"
          with:
            offset: "tools.offset"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-portal-api
          description: "Get details of a specific portal API including schema and usage plans"
          hints:
            readOnly: true
          call: "gloo-portal.get-api"
          with:
            apiId: "tools.apiId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: get-portal-api-schema
          description: "Retrieve the OpenAPI or GraphQL schema for a portal API"
          hints:
            readOnly: true
          call: "gloo-portal.get-api-schema"
          with:
            apiId: "tools.apiId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-usage-plans
          description: "List available usage plans with rate limits and API product access"
          hints:
            readOnly: true
          call: "gloo-portal.list-usage-plans"
          outputParameters:
            - type: object
              mapping: "$."

        - name: list-api-keys
          description: "List API keys for the authenticated portal user"
          hints:
            readOnly: true
          call: "gloo-portal.list-api-keys"
          outputParameters:
            - type: object
              mapping: "$."

        - name: create-api-key
          description: "Create a new API key for accessing an API product under a usage plan"
          hints:
            readOnly: false
          call: "gloo-portal.create-api-key"
          with:
            name: "tools.name"
            usagePlanId: "tools.usagePlanId"
            apiProductId: "tools.apiProductId"
          outputParameters:
            - type: object
              mapping: "$."

        - name: delete-api-key
          description: "Permanently delete an API key, revoking access to the associated API product"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "gloo-portal.delete-api-key"
          with:
            apiKeyId: "tools.apiKeyId"
          outputParameters:
            - type: object
              mapping: "$."