Traefik Labs · Capability

Traefik Gateway Operations

Workflow capability for operating a Traefik reverse proxy / API gateway. Surfaces routing configuration (HTTP/TCP/UDP routers, services, middlewares) so platform engineers and SREs can audit, debug, and document the live gateway from a single REST surface or MCP toolset.

Run with Naftiko API GatewayConfigurationKubernetesLoad BalancerOperationsReverse ProxyTraefik

What You Can Do

GET
List http routers — List HTTP routers.
/v1/http/routers
GET
Get http router — Get a router by name.
/v1/http/routers
GET
List http services — List HTTP services.
/v1/http/services
GET
Get http service — Get a service by name.
/v1/http/services
GET
List http middlewares — List HTTP middlewares.
/v1/http/middlewares
GET
Get http middleware — Get a middleware by name.
/v1/http/middlewares
GET
List tcp routers — List TCP routers.
/v1/tcp/routers
GET
List udp routers — List UDP routers.
/v1/udp/routers
GET
Get rawdata — Get raw configuration.
/v1/rawdata

MCP Tools

list-http-routers

List all HTTP routers including rules

read-only idempotent
get-http-router

Get a single HTTP router by name. Use to drill into a routing rule.

read-only idempotent
list-http-services

List HTTP backend services and load balancer configuration.

read-only idempotent
list-http-middlewares

List HTTP middlewares (rate limit

read-only idempotent
list-tcp-routers

List TCP routers (raw TCP / TLS passthrough).

read-only idempotent
list-udp-routers

List UDP routers.

read-only idempotent
get-rawdata

Dump the entire dynamic Traefik configuration as a single object for audit or backup.

read-only idempotent

Capability Spec

gateway-operations.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Traefik Gateway Operations
  description: Workflow capability for operating a Traefik reverse proxy / API gateway. Surfaces routing
    configuration (HTTP/TCP/UDP routers, services, middlewares) so platform engineers and SREs can audit,
    debug, and document the live gateway from a single REST surface or MCP toolset.
  tags:
  - API Gateway
  - Configuration
  - Kubernetes
  - Load Balancer
  - Operations
  - Reverse Proxy
  - Traefik
  created: '2026-05-15'
  modified: '2026-05-15'
binds:
- namespace: env
  keys:
    TRAEFIK_API_URL: TRAEFIK_API_URL
capability:
  consumes:
  - type: http
    namespace: traefik-api
    baseUri: '{{env.TRAEFIK_API_URL}}'
    description: Traefik Proxy REST API.
    resources:
    - name: http
      path: /api/http
      description: HTTP routing surface.
      operations:
      - {name: list-http-routers,     method: GET, description: List HTTP routers., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
      - {name: get-http-router,       method: GET, description: Get an HTTP router by name., inputParameters: [{name: name, in: path, type: string, required: true, description: Router name in form name@provider.}], outputRawFormat: json, outputParameters: [{name: result, type: object, value: '$.'}]}
      - {name: list-http-services,    method: GET, description: List HTTP services., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
      - {name: get-http-service,      method: GET, description: Get an HTTP service., inputParameters: [{name: name, in: path, type: string, required: true, description: Service name.}], outputRawFormat: json, outputParameters: [{name: result, type: object, value: '$.'}]}
      - {name: list-http-middlewares, method: GET, description: List HTTP middlewares., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
      - {name: get-http-middleware,   method: GET, description: Get an HTTP middleware., inputParameters: [{name: name, in: path, type: string, required: true, description: Middleware name.}], outputRawFormat: json, outputParameters: [{name: result, type: object, value: '$.'}]}
    - name: tcp
      path: /api/tcp
      description: TCP routing surface.
      operations:
      - {name: list-tcp-routers,     method: GET, description: List TCP routers., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
      - {name: get-tcp-router,       method: GET, description: Get a TCP router., inputParameters: [{name: name, in: path, type: string, required: true, description: TCP router name.}], outputRawFormat: json, outputParameters: [{name: result, type: object, value: '$.'}]}
      - {name: list-tcp-services,    method: GET, description: List TCP services., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
      - {name: list-tcp-middlewares, method: GET, description: List TCP middlewares., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
    - name: udp
      path: /api/udp
      description: UDP routing surface.
      operations:
      - {name: list-udp-routers,  method: GET, description: List UDP routers., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
      - {name: list-udp-services, method: GET, description: List UDP services., outputRawFormat: json, outputParameters: [{name: result, type: array, value: '$.'}]}
    - name: rawdata
      path: /api/rawdata
      description: Complete dynamic configuration.
      operations:
      - {name: get-rawdata, method: GET, description: Get the complete dynamic configuration data., outputRawFormat: json, outputParameters: [{name: result, type: object, value: '$.'}]}
  exposes:
  - type: rest
    port: 8080
    namespace: traefik-gateway-operations-api
    description: Unified REST surface for inspecting Traefik routing configuration.
    resources:
    - path: /v1/http/routers
      name: http-routers
      operations:
      - {method: GET, name: list-http-routers,     description: List HTTP routers., call: traefik-api.list-http-routers,     outputParameters: [{type: array, mapping: '$.'}]}
      - {method: GET, name: get-http-router,       description: Get a router by name., call: traefik-api.get-http-router,       outputParameters: [{type: object, mapping: '$.'}]}
    - path: /v1/http/services
      name: http-services
      operations:
      - {method: GET, name: list-http-services,    description: List HTTP services., call: traefik-api.list-http-services,    outputParameters: [{type: array, mapping: '$.'}]}
      - {method: GET, name: get-http-service,      description: Get a service by name., call: traefik-api.get-http-service,      outputParameters: [{type: object, mapping: '$.'}]}
    - path: /v1/http/middlewares
      name: http-middlewares
      operations:
      - {method: GET, name: list-http-middlewares, description: List HTTP middlewares., call: traefik-api.list-http-middlewares, outputParameters: [{type: array, mapping: '$.'}]}
      - {method: GET, name: get-http-middleware,   description: Get a middleware by name., call: traefik-api.get-http-middleware,   outputParameters: [{type: object, mapping: '$.'}]}
    - path: /v1/tcp/routers
      name: tcp-routers
      operations:
      - {method: GET, name: list-tcp-routers,      description: List TCP routers., call: traefik-api.list-tcp-routers,      outputParameters: [{type: array, mapping: '$.'}]}
    - path: /v1/udp/routers
      name: udp-routers
      operations:
      - {method: GET, name: list-udp-routers,      description: List UDP routers., call: traefik-api.list-udp-routers,      outputParameters: [{type: array, mapping: '$.'}]}
    - path: /v1/rawdata
      name: rawdata
      operations:
      - {method: GET, name: get-rawdata,           description: Get raw configuration., call: traefik-api.get-rawdata,           outputParameters: [{type: object, mapping: '$.'}]}
  - type: mcp
    port: 9090
    namespace: traefik-gateway-operations-mcp
    transport: http
    description: MCP server exposing Traefik gateway operations tools for AI agents.
    tools:
    - {name: list-http-routers,     description: List all HTTP routers including rules, entry points, middleware chains, and service assignments., hints: {readOnly: true, idempotent: true}, call: traefik-api.list-http-routers,     outputParameters: [{type: array, mapping: '$.'}]}
    - {name: get-http-router,       description: Get a single HTTP router by name. Use to drill into a routing rule., hints: {readOnly: true, idempotent: true}, call: traefik-api.get-http-router,       outputParameters: [{type: object, mapping: '$.'}]}
    - {name: list-http-services,    description: List HTTP backend services and load balancer configuration., hints: {readOnly: true, idempotent: true}, call: traefik-api.list-http-services,    outputParameters: [{type: array, mapping: '$.'}]}
    - {name: list-http-middlewares, description: List HTTP middlewares (rate limit, auth, headers, compress, retry, etc.)., hints: {readOnly: true, idempotent: true}, call: traefik-api.list-http-middlewares, outputParameters: [{type: array, mapping: '$.'}]}
    - {name: list-tcp-routers,      description: List TCP routers (raw TCP / TLS passthrough)., hints: {readOnly: true, idempotent: true}, call: traefik-api.list-tcp-routers,      outputParameters: [{type: array, mapping: '$.'}]}
    - {name: list-udp-routers,      description: List UDP routers., hints: {readOnly: true, idempotent: true}, call: traefik-api.list-udp-routers,      outputParameters: [{type: array, mapping: '$.'}]}
    - {name: get-rawdata,           description: Dump the entire dynamic Traefik configuration as a single object for audit or backup., hints: {readOnly: true, idempotent: true}, call: traefik-api.get-rawdata,           outputParameters: [{type: object, mapping: '$.'}]}