Gravitee · Capability

Gravitee Apis Discovery

Pulls live APIs (v2 + v4) from a Gravitee APIM Management instance into Naftiko Fleet so Backstage shows every Gravitee-managed API alongside Naftiko-declared capabilities — including state, lifecycle, plans, and entrypoint config. Single pane of glass for "what API surface is governed and gated by Gravitee."

Run with Naftiko NaftikoGraviteePartnershipDiscoveryAPIMBackstage

What You Can Do

GET
List apis
/environments/{env_id}/apis
GET
Get api
/environments/{env_id}/apis/{api_id}
POST
Deploy api
/environments/{env_id}/apis/{api_id}/deploy
POST
Start api
/environments/{env_id}/apis/{api_id}/start
POST
Stop api
/environments/{env_id}/apis/{api_id}/stop

MCP Tools

list-apis

List Gravitee-managed APIs in an environment.

read-only
get-api

Get a single Gravitee API with full definition (state, lifecycle, entrypoints, plans).

read-only
deploy-api

Deploy a Gravitee API to its gateways.

start-api

Start a Gravitee API (move from STOPPED to STARTED state).

stop-api

Stop a Gravitee API (move to STOPPED state).

Capability Spec

gravitee-apis-discovery.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  title: Gravitee APIs Discovery
  description: >-
    Pulls live APIs (v2 + v4) from a Gravitee APIM Management instance
    into Naftiko Fleet so Backstage shows every Gravitee-managed API
    alongside Naftiko-declared capabilities — including state, lifecycle,
    plans, and entrypoint config. Single pane of glass for "what API
    surface is governed and gated by Gravitee."
  tags:
    - Naftiko
    - Gravitee
    - Partnership
    - Discovery
    - APIM
    - Backstage
  created: '2026-05-15'
  modified: '2026-05-15'

binds:
  - namespace: gravitee-env
    description: Gravitee APIM Management base URL + bearer token (organization API token).
    keys:
      GRAVITEE_APIM_BASE: GRAVITEE_APIM_BASE
      GRAVITEE_APIM_TOKEN: GRAVITEE_APIM_TOKEN

capability:
  consumes:
    - namespace: gravitee
      type: http
      baseUri: '{{GRAVITEE_APIM_BASE}}'
      authentication:
        type: bearer
        token: '{{GRAVITEE_APIM_TOKEN}}'
      resources:
        - name: list-apis
          path: '/management/v2/environments/{{env_id}}/apis'
          operations:
            - name: list-apis
              method: GET
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: page, in: query, type: integer, required: false }
                - { name: perPage, in: query, type: integer, required: false }
        - name: api
          path: '/management/v2/environments/{{env_id}}/apis/{{api_id}}'
          operations:
            - name: get-api
              method: GET
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: api_id, in: path, required: true }
        - name: api-deploy
          path: '/management/v2/environments/{{env_id}}/apis/{{api_id}}/deployments'
          operations:
            - name: deploy-api
              method: POST
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: api_id, in: path, required: true }
        - name: api-state
          path: '/management/v2/environments/{{env_id}}/apis/{{api_id}}/_start'
          operations:
            - name: start-api
              method: POST
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: api_id, in: path, required: true }
        - name: api-stop
          path: '/management/v2/environments/{{env_id}}/apis/{{api_id}}/_stop'
          operations:
            - name: stop-api
              method: POST
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: api_id, in: path, required: true }

  exposes:
    - type: rest
      address: 0.0.0.0
      port: 8080
      namespace: gravitee-apis-discovery-rest
      description: REST surface for Naftiko Fleet to discover Gravitee-managed APIs.
      resources:
        - name: list-apis
          path: '/environments/{env_id}/apis'
          operations:
            - name: list-apis
              method: GET
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: page, in: query, type: integer, required: false }
                - { name: perPage, in: query, type: integer, required: false }
              call: gravitee.list-apis
        - name: api
          path: '/environments/{env_id}/apis/{api_id}'
          operations:
            - name: get-api
              method: GET
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: api_id, in: path, type: string, required: true }
              call: gravitee.get-api
        - name: deploy-api
          path: '/environments/{env_id}/apis/{api_id}/deploy'
          operations:
            - name: deploy-api
              method: POST
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: api_id, in: path, type: string, required: true }
              call: gravitee.deploy-api
        - name: start-api
          path: '/environments/{env_id}/apis/{api_id}/start'
          operations:
            - name: start-api
              method: POST
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: api_id, in: path, type: string, required: true }
              call: gravitee.start-api
        - name: stop-api
          path: '/environments/{env_id}/apis/{api_id}/stop'
          operations:
            - name: stop-api
              method: POST
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: api_id, in: path, type: string, required: true }
              call: gravitee.stop-api

    - type: mcp
      address: 0.0.0.0
      port: 3010
      namespace: gravitee-apis-discovery-mcp
      description: MCP server exposing Gravitee API discovery + lifecycle to AI agents.
      tools:
        - name: list-apis
          description: List Gravitee-managed APIs in an environment.
          hints: { readOnly: true }
          inputParameters:
            - { name: env_id, type: string, required: true, description: Gravitee environment ID. }
            - { name: page, type: integer, required: false, description: Page number. }
            - { name: perPage, type: integer, required: false, description: Page size. }
          call: gravitee.list-apis
        - name: get-api
          description: Get a single Gravitee API with full definition (state, lifecycle, entrypoints, plans).
          hints: { readOnly: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: api_id, type: string, required: true }
          call: gravitee.get-api
        - name: deploy-api
          description: Deploy a Gravitee API to its gateways.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: api_id, type: string, required: true }
          call: gravitee.deploy-api
        - name: start-api
          description: Start a Gravitee API (move from STOPPED to STARTED state).
          hints: { destructiveHint: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: api_id, type: string, required: true }
          call: gravitee.start-api
        - name: stop-api
          description: Stop a Gravitee API (move to STOPPED state).
          hints: { destructiveHint: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: api_id, type: string, required: true }
          call: gravitee.stop-api