Gravitee · Capability

Gravitee Alert Engine Bridge

Configures Gravitee Alert Engine triggers (latency, error-rate, quota, anomaly, AI-token-spend) and bridges fired alerts back into Naftiko's notification + observability pipeline. Lets a Naftiko capability declare alerting intent once and have both Gravitee Alert Engine and Naftiko-side webhooks react to the same signals.

Run with Naftiko NaftikoGraviteePartnershipAlertsNotificationsObservability

What You Can Do

GET
List alert triggers
/environments/{env_id}/alert-triggers
POST
Create alert trigger
/environments/{env_id}/alert-triggers
GET
Get alert trigger
/environments/{env_id}/alert-triggers/{trigger_id}
PUT
Update alert trigger
/environments/{env_id}/alert-triggers/{trigger_id}
DELETE
Delete alert trigger
/environments/{env_id}/alert-triggers/{trigger_id}
GET
List alert events
/environments/{env_id}/alert-events
GET
List notifiers
/environments/{env_id}/notifiers
POST
Create notifier
/environments/{env_id}/notifiers

MCP Tools

list-alert-triggers

List Gravitee Alert Engine triggers in an environment.

read-only
create-alert-trigger

Create a new Gravitee Alert Engine trigger (latency, errors, quota, AI-token-spend, etc.).

get-alert-trigger

Get a single Gravitee Alert Engine trigger.

read-only
update-alert-trigger

Update a Gravitee Alert Engine trigger.

delete-alert-trigger

Delete a Gravitee Alert Engine trigger.

list-alert-events

List fired Gravitee alert events (filterable by trigger or time window).

read-only
list-notifiers

List configured Gravitee notification channels (Slack, Webhook, Email).

read-only
create-notifier

Create a new Gravitee notification channel.

Capability Spec

gravitee-alert-engine-bridge.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  title: Gravitee Alert Engine Bridge
  description: >-
    Configures Gravitee Alert Engine triggers (latency, error-rate,
    quota, anomaly, AI-token-spend) and bridges fired alerts back into
    Naftiko's notification + observability pipeline. Lets a Naftiko
    capability declare alerting intent once and have both Gravitee
    Alert Engine and Naftiko-side webhooks react to the same signals.
  tags:
    - Naftiko
    - Gravitee
    - Partnership
    - Alerts
    - Notifications
    - Observability
  created: '2026-05-15'
  modified: '2026-05-15'

binds:
  - namespace: gravitee-env
    description: Gravitee APIM Management endpoint + 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: alert-triggers
          path: '/management/v2/environments/{{env_id}}/alert-triggers'
          operations:
            - name: list-alert-triggers
              method: GET
              inputParameters:
                - { name: env_id, in: path, required: true }
            - name: create-alert-trigger
              method: POST
              inputParameters:
                - { name: env_id, in: path, required: true }
        - name: alert-trigger
          path: '/management/v2/environments/{{env_id}}/alert-triggers/{{trigger_id}}'
          operations:
            - name: get-alert-trigger
              method: GET
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: trigger_id, in: path, required: true }
            - name: update-alert-trigger
              method: PUT
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: trigger_id, in: path, required: true }
            - name: delete-alert-trigger
              method: DELETE
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: trigger_id, in: path, required: true }
        - name: alert-events
          path: '/management/v2/environments/{{env_id}}/alert-events'
          operations:
            - name: list-alert-events
              method: GET
              inputParameters:
                - { name: env_id, in: path, required: true }
                - { name: since, in: query, required: false }
                - { name: trigger_id, in: query, required: false }
        - name: notifications
          path: '/management/v2/environments/{{env_id}}/notifiers'
          operations:
            - name: list-notifiers
              method: GET
              inputParameters:
                - { name: env_id, in: path, required: true }
            - name: create-notifier
              method: POST
              inputParameters:
                - { name: env_id, in: path, required: true }

  exposes:
    - type: rest
      address: 0.0.0.0
      port: 8080
      namespace: gravitee-alert-engine-bridge-rest
      description: REST surface for managing Gravitee Alert Engine triggers + events.
      resources:
        - name: alert-triggers
          path: '/environments/{env_id}/alert-triggers'
          operations:
            - name: list-alert-triggers
              method: GET
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
              call: gravitee.list-alert-triggers
            - name: create-alert-trigger
              method: POST
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
              call: gravitee.create-alert-trigger
        - name: alert-trigger
          path: '/environments/{env_id}/alert-triggers/{trigger_id}'
          operations:
            - name: get-alert-trigger
              method: GET
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: trigger_id, in: path, type: string, required: true }
              call: gravitee.get-alert-trigger
            - name: update-alert-trigger
              method: PUT
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: trigger_id, in: path, type: string, required: true }
              call: gravitee.update-alert-trigger
            - name: delete-alert-trigger
              method: DELETE
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: trigger_id, in: path, type: string, required: true }
              call: gravitee.delete-alert-trigger
        - name: alert-events
          path: '/environments/{env_id}/alert-events'
          operations:
            - name: list-alert-events
              method: GET
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
                - { name: since, in: query, type: string, required: false }
                - { name: trigger_id, in: query, type: string, required: false }
              call: gravitee.list-alert-events
        - name: notifiers
          path: '/environments/{env_id}/notifiers'
          operations:
            - name: list-notifiers
              method: GET
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
              call: gravitee.list-notifiers
            - name: create-notifier
              method: POST
              inputParameters:
                - { name: env_id, in: path, type: string, required: true }
              call: gravitee.create-notifier

    - type: mcp
      address: 0.0.0.0
      port: 3010
      namespace: gravitee-alert-engine-bridge-mcp
      description: MCP server for managing Gravitee Alert Engine triggers and reading fired events.
      tools:
        - name: list-alert-triggers
          description: List Gravitee Alert Engine triggers in an environment.
          hints: { readOnly: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
          call: gravitee.list-alert-triggers
        - name: create-alert-trigger
          description: Create a new Gravitee Alert Engine trigger (latency, errors, quota, AI-token-spend, etc.).
          hints: { destructiveHint: false }
          inputParameters:
            - { name: env_id, type: string, required: true }
          call: gravitee.create-alert-trigger
        - name: get-alert-trigger
          description: Get a single Gravitee Alert Engine trigger.
          hints: { readOnly: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: trigger_id, type: string, required: true }
          call: gravitee.get-alert-trigger
        - name: update-alert-trigger
          description: Update a Gravitee Alert Engine trigger.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: trigger_id, type: string, required: true }
          call: gravitee.update-alert-trigger
        - name: delete-alert-trigger
          description: Delete a Gravitee Alert Engine trigger.
          hints: { destructiveHint: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: trigger_id, type: string, required: true }
          call: gravitee.delete-alert-trigger
        - name: list-alert-events
          description: List fired Gravitee alert events (filterable by trigger or time window).
          hints: { readOnly: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
            - { name: since, type: string, required: false }
            - { name: trigger_id, type: string, required: false }
          call: gravitee.list-alert-events
        - name: list-notifiers
          description: List configured Gravitee notification channels (Slack, Webhook, Email).
          hints: { readOnly: true }
          inputParameters:
            - { name: env_id, type: string, required: true }
          call: gravitee.list-notifiers
        - name: create-notifier
          description: Create a new Gravitee notification channel.
          hints: { destructiveHint: false }
          inputParameters:
            - { name: env_id, type: string, required: true }
          call: gravitee.create-notifier