Gravitee · Capability

Gravitee.io APIM Management API — Plans

Gravitee.io APIM Management API — Plans. 6 operations. Lead operation: List Plans on an API. Self-contained Naftiko capability covering one Gravitee business surface.

Run with Naftiko GraviteePlans

What You Can Do

GET
Listapiplans — List Plans on an API
/v1/environments/{envid}/apis/{apiid}/plans
POST
Createapiplan — Create a Plan on an API
/v1/environments/{envid}/apis/{apiid}/plans
GET
Getapiplan — Get a Plan by Identifier
/v1/environments/{envid}/apis/{apiid}/plans/{planid}
PUT
Updateapiplan — Update a Plan
/v1/environments/{envid}/apis/{apiid}/plans/{planid}
POST
Closeapiplan — Close a Plan
/v1/environments/{envid}/apis/{apiid}/plans/{planid}/close
POST
Publishapiplan — Publish a Plan
/v1/environments/{envid}/apis/{apiid}/plans/{planid}/publish

MCP Tools

list-plans-api

List Plans on an API

read-only idempotent
create-plan-api

Create a Plan on an API

get-plan-identifier

Get a Plan by Identifier

read-only idempotent
update-plan

Update a Plan

idempotent
close-plan

Close a Plan

publish-plan

Publish a Plan

Capability Spec

apim-plans.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Gravitee.io APIM Management API — Plans
  description: 'Gravitee.io APIM Management API — Plans. 6 operations. Lead operation: List Plans on an API. Self-contained
    Naftiko capability covering one Gravitee business surface.'
  tags:
  - Gravitee
  - Plans
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GRAVITEE_API_KEY: GRAVITEE_API_KEY
capability:
  consumes:
  - type: http
    namespace: apim-plans
    baseUri: https://{host}/management/v2
    description: Gravitee.io APIM Management API — Plans business capability. Self-contained, no shared references.
    resources:
    - name: environments-envId-apis-apiId-plans
      path: /environments/{envId}/apis/{apiId}/plans
      operations:
      - name: listapiplans
        method: GET
        description: List Plans on an API
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createapiplan
        method: POST
        description: Create a Plan on an API
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: environments-envId-apis-apiId-plans-planId
      path: /environments/{envId}/apis/{apiId}/plans/{planId}
      operations:
      - name: getapiplan
        method: GET
        description: Get a Plan by Identifier
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: planId
          in: path
          type: string
          required: true
      - name: updateapiplan
        method: PUT
        description: Update a Plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: planId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: environments-envId-apis-apiId-plans-planId-_close
      path: /environments/{envId}/apis/{apiId}/plans/{planId}/_close
      operations:
      - name: closeapiplan
        method: POST
        description: Close a Plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: planId
          in: path
          type: string
          required: true
    - name: environments-envId-apis-apiId-plans-planId-_publish
      path: /environments/{envId}/apis/{apiId}/plans/{planId}/_publish
      operations:
      - name: publishapiplan
        method: POST
        description: Publish a Plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: planId
          in: path
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.GRAVITEE_API_KEY}}'
  exposes:
  - type: rest
    namespace: apim-plans-rest
    port: 8080
    description: REST adapter for Gravitee.io APIM Management API — Plans. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/environments/{envid}/apis/{apiid}/plans
      name: environments-envid-apis-apiid-plans
      description: REST surface for environments-envId-apis-apiId-plans.
      operations:
      - method: GET
        name: listapiplans
        description: List Plans on an API
        call: apim-plans.listapiplans
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createapiplan
        description: Create a Plan on an API
        call: apim-plans.createapiplan
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/environments/{envid}/apis/{apiid}/plans/{planid}
      name: environments-envid-apis-apiid-plans-planid
      description: REST surface for environments-envId-apis-apiId-plans-planId.
      operations:
      - method: GET
        name: getapiplan
        description: Get a Plan by Identifier
        call: apim-plans.getapiplan
        with:
          planId: rest.planId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updateapiplan
        description: Update a Plan
        call: apim-plans.updateapiplan
        with:
          planId: rest.planId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/environments/{envid}/apis/{apiid}/plans/{planid}/close
      name: environments-envid-apis-apiid-plans-planid-close
      description: REST surface for environments-envId-apis-apiId-plans-planId-_close.
      operations:
      - method: POST
        name: closeapiplan
        description: Close a Plan
        call: apim-plans.closeapiplan
        with:
          planId: rest.planId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/environments/{envid}/apis/{apiid}/plans/{planid}/publish
      name: environments-envid-apis-apiid-plans-planid-publish
      description: REST surface for environments-envId-apis-apiId-plans-planId-_publish.
      operations:
      - method: POST
        name: publishapiplan
        description: Publish a Plan
        call: apim-plans.publishapiplan
        with:
          planId: rest.planId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: apim-plans-mcp
    port: 9090
    transport: http
    description: MCP adapter for Gravitee.io APIM Management API — Plans. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: list-plans-api
      description: List Plans on an API
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: apim-plans.listapiplans
      outputParameters:
      - type: object
        mapping: $.
    - name: create-plan-api
      description: Create a Plan on an API
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: apim-plans.createapiplan
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-plan-identifier
      description: Get a Plan by Identifier
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: apim-plans.getapiplan
      with:
        planId: tools.planId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-plan
      description: Update a Plan
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: apim-plans.updateapiplan
      with:
        planId: tools.planId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: close-plan
      description: Close a Plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: apim-plans.closeapiplan
      with:
        planId: tools.planId
      outputParameters:
      - type: object
        mapping: $.
    - name: publish-plan
      description: Publish a Plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: apim-plans.publishapiplan
      with:
        planId: tools.planId
      outputParameters:
      - type: object
        mapping: $.