Kong · Capability

Kong Routes Publish

When a Naftiko capability ships a REST expose, publishes the matching Kong Service + Route via the Kong Gateway Admin API so the gateway starts routing traffic to the new capability on the same release — no manual gateway-admin glue between Naftiko ship and Kong route.

Run with Naftiko NaftikoKongPartnershipRoutesPublishLifecycle

What You Can Do

POST
Create service
/services
PATCH
Update service
/services/{service_id}
DELETE
Delete service
/services/{service_id}
POST
Create service route
/services/{service_id}/routes
PATCH
Update route
/routes/{route_id}
DELETE
Delete route
/routes/{route_id}

MCP Tools

create-service

Create a new Kong Service backing a Naftiko REST expose.

update-service

Update a Kong Service.

delete-service

Delete a Kong Service.

create-service-route

Create a new Kong Route on a Kong Service (host/path/method matching).

update-route

Update a Kong Route.

delete-route

Delete a Kong Route.

Capability Spec

kong-routes-publish.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  title: Kong Routes Publish
  description: >-
    When a Naftiko capability ships a REST expose, publishes the matching
    Kong Service + Route via the Kong Gateway Admin API so the gateway
    starts routing traffic to the new capability on the same release —
    no manual gateway-admin glue between Naftiko ship and Kong route.
  tags:
    - Naftiko
    - Kong
    - Partnership
    - Routes
    - Publish
    - Lifecycle
  created: '2026-05-15'
  modified: '2026-05-15'

binds:
  - namespace: kong-admin
    description: Kong Gateway Admin API endpoint + token.
    keys:
      KONG_ADMIN_BASE: KONG_ADMIN_BASE
      KONG_ADMIN_TOKEN: KONG_ADMIN_TOKEN

capability:
  consumes:
    - namespace: kong
      type: http
      baseUri: '{{KONG_ADMIN_BASE}}'
      authentication:
        type: bearer
        token: '{{KONG_ADMIN_TOKEN}}'
      resources:
        - name: services
          path: '/services'
          operations:
            - name: create-service
              method: POST
        - name: service
          path: '/services/{{service_id}}'
          operations:
            - name: update-service
              method: PATCH
              inputParameters:
                - { name: service_id, in: path, required: true }
            - name: delete-service
              method: DELETE
              inputParameters:
                - { name: service_id, in: path, required: true }
        - name: service-routes
          path: '/services/{{service_id}}/routes'
          operations:
            - name: create-service-route
              method: POST
              inputParameters:
                - { name: service_id, in: path, required: true }
        - name: routes
          path: '/routes/{{route_id}}'
          operations:
            - name: update-route
              method: PATCH
              inputParameters:
                - { name: route_id, in: path, required: true }
            - name: delete-route
              method: DELETE
              inputParameters:
                - { name: route_id, in: path, required: true }

  exposes:
    - type: rest
      address: 0.0.0.0
      port: 8080
      namespace: kong-routes-publish-rest
      description: REST surface for publishing Naftiko REST exposes as Kong Services + Routes.
      resources:
        - name: services
          path: '/services'
          operations:
            - name: create-service
              method: POST
              call: kong.create-service
        - name: service
          path: '/services/{service_id}'
          operations:
            - name: update-service
              method: PATCH
              inputParameters:
                - { name: service_id, in: path, type: string, required: true }
              call: kong.update-service
            - name: delete-service
              method: DELETE
              inputParameters:
                - { name: service_id, in: path, type: string, required: true }
              call: kong.delete-service
        - name: service-routes
          path: '/services/{service_id}/routes'
          operations:
            - name: create-service-route
              method: POST
              inputParameters:
                - { name: service_id, in: path, type: string, required: true }
              call: kong.create-service-route
        - name: routes
          path: '/routes/{route_id}'
          operations:
            - name: update-route
              method: PATCH
              inputParameters:
                - { name: route_id, in: path, type: string, required: true }
              call: kong.update-route
            - name: delete-route
              method: DELETE
              inputParameters:
                - { name: route_id, in: path, type: string, required: true }
              call: kong.delete-route

    - type: mcp
      address: 0.0.0.0
      port: 3010
      namespace: kong-routes-publish-mcp
      description: MCP server for publishing Naftiko-built REST exposes as Kong Services + Routes.
      tools:
        - name: create-service
          description: Create a new Kong Service backing a Naftiko REST expose.
          hints: { destructiveHint: false }
          call: kong.create-service
        - name: update-service
          description: Update a Kong Service.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: service_id, type: string, required: true }
          call: kong.update-service
        - name: delete-service
          description: Delete a Kong Service.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: service_id, type: string, required: true }
          call: kong.delete-service
        - name: create-service-route
          description: Create a new Kong Route on a Kong Service (host/path/method matching).
          hints: { destructiveHint: false }
          inputParameters:
            - { name: service_id, type: string, required: true }
          call: kong.create-service-route
        - name: update-route
          description: Update a Kong Route.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: route_id, type: string, required: true }
          call: kong.update-route
        - name: delete-route
          description: Delete a Kong Route.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: route_id, type: string, required: true }
          call: kong.delete-route