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: '$.'}]}